0

I have PowerShell v3 installed and launch the ISE from my local workstation. When I open a remote tab to a server(win2K8R2 WMF 3 installed) I seem to get a powerShell V1 session. I checked this by inspecting the $host variable.

> Name             : ServerRemoteHost Version          : 1.0.0.0
> InstanceId       : f0b4913e-95a8-4d6b-9aaa-f869a5b2a8fd UI            
> : System.Management.Automation.Internal.Host.InternalHostUserInterface
> CurrentCulture   : en-US CurrentUICulture : en-US PrivateData      : 
> IsRunspacePushed :  Runspace         :

This server has WMF 3.0 installed and when I open either the ISE or a PowerShell prompt locally from the server, I get a v3 session.

Other machines do not display this behavior and do run powershell v3 when opened locally or via a remote tab

I'm at a loss to troubleshoot this behavior. I want the remote tab to open a v3 Session.

Any Thoughts?

4

2 回答 2

1

要检查正在运行的 PowerShell 版本,请使用变量$PSVersionTable.

中的值$PSVersionTable.PSVersion告诉 PowerShell 版本。

这是 $PSVersionTable 变量内容的示例。

Name                           Value
----                           -----
PSVersion                      3.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.17929
BuildVersion                   6.2.9200.16384
PSCompatibleVersions           {1.0, 2.0, 3.0}
PSRemotingProtocolVersion      2.2
于 2012-11-02T01:19:54.263 回答
0

我确定原始海报已经继续前进,但如果其他人正在寻找答案,那就是。似乎某些模块会检查 powershell 版本的合规性,并查看 ServerRemoteHost 版本而不是 Powershell 本身。这只是模块定义中的错误形式。PSRemoteRegistry 就是这样一个例子。

要解决问题(或者更确切地说,解决问题),只需编辑相关模块的 .psd1 文件并将版本要求更改回 1.0。

此模块所需的 Windows PowerShell 引擎的最低版本

PowerShellVersion = '1.0'

此模块所需的 Windows PowerShell 主机的名称

PowerShellHostName = ''

此模块所需的 Windows PowerShell 主机的最低版本

PowerShellHostVersion = '1.0'

问题解决了。

于 2014-01-06T17:43:32.140 回答