Powershell.exe(v 2.0)的路径

Path to Powershell.exe (v 2.0)

Powershell(2.0版)在哪里? 通往Powershell.exe的路径是什么? 我安装了Windows Server 2008和Powershell。 当我查看此文件夹时:

1
2
3
4
5
6
7
8
9
PS C:\Windows\System32\WindowsPowerShell> dir


    Directory: C:\Windows\System32\WindowsPowerShell


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         20.4.2010     17:09            v1.0

我只有Powershell v1.0。 但是当我打字

1
2
3
4
5
6
7
8
PS C:\> $Host.version

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1


PS C:\>

它表明我已经安装了v2.0。


我相信它在C:\Windows\System32\WindowsPowershell\v1.0\中。为了混淆无辜者,MS将其保存在标有" v1.0"的目录中。在Windows 7上运行此命令,并通过$Host.Version(确定已安装的PowerShell版本)检查版本号,显示版本为2.0。

另一个选项是在命令提示符下键入$PSVersionTable。如果运行的是v2.0,则输出为:

1
2
3
4
5
6
7
8
9
Name                           Value
----                           -----
CLRVersion                     2.0.50727.4927
BuildVersion                   6.1.7600.16385
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

如果您正在运行1.0版,则该变量不存在,并且将没有输出。

本地化PowerShell版本1.0、2.0、3.0、4.0:

  • 64位版本:C: Windows System32 WindowsPowerShell v1.0
  • 32位版本:C: Windows SysWOW64 WindowsPowerShell v1.0


我认为$ PsHome具有您所需要的信息吗?

1
2
3
4
5
6
7
PS .> $PsHome
C:\Windows\System32\WindowsPowerShell\v1.0

PS .> Get-Help about_automatic_variables

TOPIC
    about_Automatic_Variables ...


这是一种方法

1
(Get-Process powershell | select -First 1).Path

这可能是一个更好的方法,因为它返回路径上的第一个匹配项,就像您从命令提示符处运行Powershell一样...

1
(Get-Command powershell.exe).Definition


始终为C: Windows System32 WindowsPowershell v1.0。之所以如此,是因为我在某处听到或阅读了向后兼容性。