2014-01-21 19 views
2

我從Visual Studio創建PowerShell cmdlet,但無法找到如何從我的C#文件中調用cmdlet,或者甚至有可能嗎?我毫無困難地逐個運行我的cmdlet,但我想設置一個cmdlet以在續集中運行多個cmdlet。如何從Visual Studio中的C#調用PoweShell cmdlet

謝謝

回答

7

是的,你可以從你的C#代碼調用cmdlet。

你需要這兩個命名空間:

using System.Management.Automation; 
using System.Management.Automation.Runspaces; 

打開運行空間:

Runspace runSpace = RunspaceFactory.CreateRunspace(); 
runSpace.Open(); 

創建一個管道:

Pipeline pipeline = runSpace.CreatePipeline(); 

創建命令:

Command cmd= new Command("APowerShellCommand"); 

您可以添加參數:

cmd.Parameters.Add("Property", "value"); 

將它添加到管道:

pipeline.Commands.Add(cmd); 

運行命令(S):

Collection output = pipeline.Invoke(); 
foreach (PSObject psObject in output) 
{ 
    ....do stuff with psObject (output to console, etc) 
} 

這是否回答你的問題?

+1

不應該pipeline.Commands.Add(getProcess);成爲pipeline.Commands.Add(cmd); - 否則看起來很不錯的答案。 –

+0

@simonatrcl是的,謝謝。編輯。 – tnw

+0

教我一些東西,無論如何!乾杯 - –

相關問題