C# のパラメーターを使用して powershell スクリプトを呼び出そうとしています。c# コードで powershell コマンド全体を文字列として指定するのではなく、powershell スクリプト ファイルだけをパラメータと共に指定するオプションはありますか。
質問する
9187 次
2 に答える
8
Google で簡単に検索すると、本当に必要なものがすべて表示されます。これはhttp://www.devx.com/tips/Tip/42716からのものです
参照が必要になりSystem.Management.Automation
、使用します
using System.Management.Automation;
using System.Management.Automation.Runspaces;
PowerScript 環境をホストする実行空間を作成します。
Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
実行空間を使用して、コマンドレット用の新しいパイプラインを作成します。
Pipeline pipeline = runSpace.CreatePipeline();
実行するコマンドレットを表す Command オブジェクトを作成し、それらをパイプラインに追加します。この例では、すべてのプロセスを取得し、メモリ使用量で並べ替えます。
Command getProcess = new Command("Get-Process");
Command sort = new Command("Sort-Object");
sort.Parameters.Add("Property", "VM");
pipeline.Commands.Add(getProcess);
pipeline.Commands.Add(sort);
上記のコードは、次の PowerShell コマンド ラインと同じように機能します。
PS > Get-Process | Sort-Object -Property VM
最後に、パイプラインでコマンドを実行し、出力に対して何かを行います。
Collection output = pipeline.Invoke();
foreach (PSObject psObject in output)
{
Process process = (Process)psObject.BaseObject;
Console.WriteLine("Process name: " + process.ProcessName);
}
于 2013-04-02T11:49:18.077 に答える