我想在c#中运行power shell脚本。
使用有关在CodeProject(http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C)
中的c#中运行powershell脚本的教程我能够运行'大多数'ps脚本(它们在PS中运行完美),但是我需要的那个,在尝试使用-ConvertFrom-Json命令时收到错误。
脚本错误:术语“ConvertFrom-Json”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我是新手,所以不确定它的过时库或其他依赖项是否有用?
答案 0 :(得分:6)
由于在Powershell 3.0中引入了ConvertFrom-Json,请确保您创建的运行空间也是Powershell 3.0+。您可以通过在C#代码的上下文中执行$Host.Version
并查看返回的Version对象来执行此操作。它的主要版本应为3或4。
如果它是3.0+,因为ConvertFrom-Json是通过模块Microsoft.PowerShell.Utility
包含的,所以请确保在ConvertFrom-Json之前执行Import-Module Microsoft.PowerShell.Utility
加载模块。该模块可能是通过正常的会话初始化脚本加载的,但是当从代码执行时,它可能没有执行那些。
答案 1 :(得分:0)
system("powershell -command '<some commands> | ConvertFrom-Json | <other commands>' ");
也会抛出相同的错误
在这种情况下,您需要将单引号更改为双引号,并使用转义符,以使双引号得以通过。
我认为是因为this?