繁体   English   中英

Powershell.exe (v 2.0) 的路径

[英]Path to Powershell.exe (v 2.0)

Powershell(2.0 版)位于何处? Powershell.exe 的路径是什么? 我安装了 Windows Server 2008 和 Powershell。 当我查看此文件夹时:

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。 但是当我输入

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,输出将是:

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 有你想要的信息?

PS .> $PsHome
C:\Windows\System32\WindowsPowerShell\v1.0

PS .> Get-Help about_automatic_variables

TOPIC
    about_Automatic_Variables ...

这是一种方法...

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

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

(Get-Command powershell.exe).Definition

它始终是 C:\\Windows\\System32\\WindowsPowershell\\v1.0。 这是因为向后兼容性是我在某处听到或读到的。

要获取当前运行的 PowerShell 的完整路径,您可以使用以下命令:

[System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName

生成的路径包括 PowerShell 可执行文件名,它允许您区分 PowerShell 和 PowerShell ISE(与 $PsHome 不同,后者仅显示 PowerShell 文件夹)。 此外,与 Get-Process 不同的是,它不受系统上运行的其他进程的影响,因此您始终可以获得当前架构(32 位或 64 位)的正确路径。

GetCurrentProcess 方法在 .NET Framework 1.1 和 .NET Core 1.0 中可用,因此这应该适用于任何版本的 .NET/PowerShell。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM