问题描述
public void GetKey()
{
WSManConnectionInfo connectioninfo = new WSManConnectionInfo();
var ss = new NetworkCredential("xxx.yyyy\\Administrator","PassFail2Hehe");
connectioninfo.ComputerName = "<some IP Address>";
connectioninfo.Credential = new PSCredential(ss.UserName,ss.SecurePassword);
//Runspace runspace = RunspaceFactory.CreateRunspace(connectioninfo);
//runspace.open();
using (PowerShell ps = PowerShell.Create())
{
var re = ps.AddScript("Get-Service");
var results = re.Invoke();
}
}
我正在使用 NuGet 包“Microsoft.PowerShell.5.ReferenceAssemblies 1.1.0”,因为它在 Visual Studio 2019 中显示为推荐的包,用于解析“运行空间”、“PowerShell”等的类型。>
但是,在创建“Runspace”或“PowerShell”实例时出现异常。异常是这样的 - “公共语言运行时检测到无效程序。”
我发现了 this 帖子并意识到我确实收到了 NuGet 包的警告 -
"包 'Microsoft.PowerShell.5.ReferenceAssemblies 1.1.0' 已使用 '.NETFramework,Version=v4.6.1' 恢复, .NETFramework,Version=v4.6.2,.NETFramework,Version=v4.7,Version=v4.7.1,Version=v4.7.2,Version=v4.8' 而不是项目目标框架 'net5.0'。此软件包可能与您的项目不完全兼容。”
按照帖子中的建议,我安装了 Powershell Core 7.1.3,但是警告和异常没有解决。然后我切换到“.Net Standard 2.0”,因为它的项目是一个类库,但没有任何改变。相同的警告消息和异常。
如何使用“.Net Core 5.0”(或“.Net Standard 2.0”)进行远程 PowerShell 调用?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)