微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 .Net 5.0 运行远程 PowerShell 脚本

如何解决使用 .Net 5.0 运行远程 PowerShell 脚本

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.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 举报,一经查实,本站将立刻删除。