1

我使用“System.Management.Automation.dll”从 C# 代码执行 PowerShell 命令。但我无法执行 Service Fabric 命令。

当我执行 Service Fabric 命令时,出现以下错误

未加载指定的模块“ServiceFabric”,因为在任何模块目录中都找不到有效的模块文件

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

我使用的代码是

 var shell = PowerShell.Create();
 shell.Commands.AddScript("Import-Module ServiceFabric");
 shell.Commands.AddScript("Connect-ServiceFabricCluster");
 var result = shell.Invoke();

当我直接从 PowerShell 命令窗口执行这些命令时,它们成功运行。

上面的代码适用于其他 PowerShell 命令

我还尝试使用物理路径“C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ServiceFabric”加载模块,但也没有用。

4

1 回答 1

1

你为什么要从 C# 调用 powershell 命令?所有的 powershell 命令都与 API 相同——也就是说,对于每个命令,都有一个可以直接使用的 API。只需创建一个 FabricClient 并调用您需要的任何方法。

于 2015-12-30T18:39:24.407 回答