C#中的方法调用是这样的-
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.ReferenceAssembly1.1.0",因为它显示为Visual Studio 2019中的推荐包,用于解决;Runspace"PowerShell";等
然而,当";Runspace";或";PowerShell";创建。例外是这样的——";公共语言运行时检测到一个无效程序">
我发现了这篇帖子,意识到我确实收到了NuGet包的警告-
"包"Microsoft.PowerShell.5.ReferenceAssembly1.1.0"已使用".NETFramework,Version=v4.6.1,.NETFramework,版本=v4.6.2,.NETFramework版本=v4.7,.NETFramework版本=v4.7.1,.NETFramework版本=v4.7.2,.NETFramework,版本=v4.8,而不是项目目标框架"net5.0"。此程序包可能与您的项目不完全兼容">
根据帖子中的建议,我安装了Powershell Core 7.1.3,但警告和异常没有得到解决。然后我切换到";。Net Standard 2.0";,从那以后,这个项目就是一个类库,但没有任何变化。相同的警告消息和异常。
如何使用"进行远程PowerShell调用;。Net Core 5.0〃;(或".Net Standard 2.0"(?
如果要以.Net 5为目标,则要使用的正确nuget包是Microsoft.PowerShell.SDK