繁体   English   中英

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

[英]Running Powershell script in c# -ConvertToJson error

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

使用 CodeProject 中关于在 c# 中运行 powershell 脚本的教程( http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C

我能够运行“大多数”ps 脚本(它们在 PS 中完美运行),但是我需要的脚本在尝试使用 -ConvertFrom-Json 命令时收到错误消息。

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

我是新手,所以不确定它是否过时的库或使其工作所需的其他依赖项?

由于 ConvertFrom-Json 是在 Powershell 3.0 中引入的,因此请确保您创建的运行空间也是 Powershell 3.0+。 您可以通过在 C# 代码的上下文中执行$Host.Version并查看返回的 Version 对象来完成此操作。 它的主要版本应该是 3 或 4。

如果它是 3.0+,因为 ConvertFrom-Json 是通过模块Microsoft.PowerShell.Utility包含的,请确保通过在 ConvertFrom-Json 之前执行Import-Module Microsoft.PowerShell.Utility来加载该模块。 该模块可能是通过您的普通会话初始化脚本加载的,但是当从代码执行时,它可能不会执行这些脚本。

system("powershell -command '<some commands> | ConvertFrom-Json | <other commands>' ");

也会抛出同样的错误

在这种情况下,您需要将单引号更改为双引号并使用转义字符,以便传递双引号。

我想这是因为这个吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM