我安装了PowerShell v3并从本地工作站启动ISE。当我打开服务器的远程选项卡(安装了win2K8R2 WMF 3)时,我似乎得到了一个powerShell V1会话。我通过检查$ host变量检查了这个。
> 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 :
此服务器安装了WMF 3.0,当我从服务器本地打开ISE或PowerShell提示时,我得到了一个v3会话。
其他计算机不显示此行为,并在本地或通过远程选项卡
打开时运行powershell v3我无法解决此问题。我希望远程选项卡打开v3会话。
有什么想法吗?
答案 0 :(得分: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
答案 1 :(得分:0)
我确定原来的海报已经开始了,但是如果有人在这里寻找答案那就是。似乎有些模块会检查powershell版本是否符合规范,并查看ServerRemoteHost版本而不是Powershell本身。这只是模块定义中的错误形式。 PSRemoteRegistry就是这样一个例子。
要解决此问题(或者更确切地说,解决此问题),只需编辑相关模块的.psd1文件,然后将版本要求更改回1.0。
PowerShellVersion ='1.0'
PowerShellHostName =''
PowerShellHostVersion ='1.0'
问题解决了。