在c#-ConvertToJson错误中运行Powershell脚本

时间:2014-03-07 17:25:49

标签: c# powershell

我想在c#中运行power shell脚本。

使用有关在CodeProject(http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C

中的c#中运行powershell脚本的教程

我能够运行'大多数'ps脚本(它们在PS中运行完美),但是我需要的那个,在尝试使用-Co​​nvertFrom-Json命令时收到错误。

脚本错误:术语“ConvertFrom-Json”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

我是新手,所以不确定它的过时库或其他依赖项是否有用?

2 个答案:

答案 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