我想通过C#代码添加Powershell命令或脚本(什么是正确的?)变量声明,默认值存储在C#变量中。 例如,在Powershell中我输入以下行
$user = 'Admin'
我想在C#代码中添加这一行。
powershell.AddScript(String.Format("$user = \"{0}\"", userName));
或
powershell.AddCommand(String.Format("$user = \"{0}\"", userName));
我尝试使用AddCommand()但它会抛出异常。我使用PS 2.0。
答案 0 :(得分:4)
根据这篇文章How to run PowerShell scripts from C#,你需要这样的东西:
// create Powershell runspace
Runspace runspace = RunspaceFactory.CreateRunspace();
// open it
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(String.Format("$user = \"{0}\"", userName));
pipeline.Commands.AddScript("#your main script");
// execute the script
Collection<psobject> results = pipeline.Invoke();
// close the runspace
runspace.Close();
另请参阅Stackoverflow上的Run Powershell-Script from C# Application问题。