c# - 在 C3 powershell 中使用 ScriptBlock 和 WSManConnectionInfo
问题描述
我在使用带有 WSManConnectionInfo 的运行空间执行脚本块时遇到问题。
我的代码:
WSManConnectionInfo connectionInfo = new WSManConnectionInfo();
connectionInfo.ComputerName = vmHost;
connectionInfo.Credential = psCredential;
Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo);
runspace.Open();
using (var ps = PowerShell.Create())
{
ps.Runspace = runspace;
Command invokeCommand = new Command("Invoke-Command");
invokeCommand.Parameters.Add("VMName", "TestVM");
invokeCommand.Parameters.Add("Credential", guestCredential);
ScriptBlock test = ScriptBlock.Create("Get-Process");
invokeCommand.Parameters.Add("ScriptBlock", test);
ps.Commands.AddCommand(invokeCommand);
output = ps.Invoke();
}
我收到以下错误:{“无法绑定参数'ScriptBlock'。无法将“System.String”类型的“Get-Process”值转换为“System.Management.Automation.ScriptBlock”类型。”}
如果我将运行空间更改为以下内容,它可以正常工作,但我需要使用 WSMANConnection 联系 HyperV 环境:
var initial = InitialSessionState.CreateDefault();
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
有什么建议么?
解决方案
推荐阅读
- sql - android 的 SQLite 中的窗口函数
- react-native - 如何在打开底片时获得黑色透明的 react-native-raw-bottom-sheet?
- scala - 使用scala返回对列表之间的关系列表
- angular - Angular中的基本按键检测未按预期工作
- java - oracle 查询在索引处给出缺少 IN 或 OUT 参数:: 1 错误
- c - 如何从 libzip 保存二进制文件
- c# - 定义警报生成器的代码在哪里?MainPage.cs 还是 MainActivity.cs?
- c# - 调用API时如何在C#(MVC或Core)中获取ViewBag的值?
- r - 如何在R中以aaaa-mm-dd格式制作日期直方图
- php - 跨域收不到邮件