使用 .NET Framework 4 编写的 WinRM 和 powershell 模块
我已通过 WinRM 成功连接到远程 powershell 会话。它就像一个魅力。当我尝试导入使用为 .NET Framework 4 构建的程序集的模块时,问题就开始了。
在本地工作时遇到了相同的问题,但通过调整 powershell.exe 的 app.config 可以轻松解决。尝试在远程主机上执行相同的操作,但它不起作用。我猜 WinRM 有它自己的运行空间,与 powershell.exe 无关。
有没有办法配置 WinRM 以使其在 .NET 4 下运行?
I have successfully connected to a remote powershell session through WinRM. It works like a charm. Problem begins when I try to import a module which uses an assembly built for .NET framework 4.
When working locally had the same problem but was easily solved by adjusting the app.config of powershell.exe. Tried doing the same on remote host but it doesn't work. I guess WinRM has it's own runspace that isn't related to powershell.exe.
Is there a way to configure WinRM so that it runs under .NET 4?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试在 64 位操作系统中创建 ac:\windows\System32\wsmprovhost.exe.config 文件和 ac:\windows\SysWOW64\wsmprovhost.exe.config 文件,如下所示:
Try creating a c:\windows\System32\wsmprovhost.exe.config file and a c:\windows\SysWOW64\wsmprovhost.exe.config file in 64bit OS like this:
在远程会话中,您通过 $PSversionTable 看到了什么?我认为在 PowerSHell 2.0 中,远程运行空间会自动配置为使用 .NET Framework 2.0。当您在 PowerShell 中启用远程处理时,它会设置一个侦听器并将其连接到 PowerShell.exe。我还没有找到配置使用 .NET 4.0 的方法。但是,PowerSHell 3.0 似乎默认使用 .NET 4。
In a remote session what do you see with $PSversionTable? I think in PowerSHell 2.0 the remote runspace is configured automatically to use .NET Framework 2.0. When you enable remoting in PowerShell, it setups a listener and hooks it up to PowerShell.exe. I haven't found a way to to configure to use .NET 4.0. However, it looks like PowerSHell 3.0 uses .NET 4 by default.