2

Web サービスを作成しました。Web サービスから PowerShell スクリプトを実行したいと考えています。Web サービスが保存されているサーバーの c:\ に .ps1 ファイルを保存しました。Web サービスを呼び出すと、「 --name of method -- という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません」というエラーが表示されます。

サーバーからWebサービスを呼び出すと、正常に動作します。

これが私の方法です:

[WebMethod]
public void RunUserProfileSync(string scriptText)
{
    RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

    Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
    runspace.Open();

    RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);

    Pipeline pipeline = runspace.CreatePipeline();
    pipeline.Commands.Add(scriptText);

    // Execute PowerShell script
    pipeline.Invoke();
}

そのため、webmethod を呼び出すときに、パラメーターに "c:\nameoffile.ps1" を配置します。

これを修正するにはどうすればよいですか?

4

2 に答える 2

2

Add メソッドの代わりにAddScriptメソッドを使用する必要があります。現在、スクリプトには複数のコマンドが含まれている可能性がありますが、単一のコマンドを検索しようとしています。

編集: ファイルの内容を読み取って AddScript に渡すこともできます。

于 2013-01-10T19:53:25.083 に答える