Powershell.exe的路径(v 2.0)

jjo*_*ras 106 powershell path

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
Run Code Online (Sandbox Code Playgroud)

我只有Powershell v1.0.但是当我打字的时候

PS C:\> $Host.version

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


PS C:\>
Run Code Online (Sandbox Code Playgroud)

它表明我安装了v2.0.

doo*_*bop 160

我相信它在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
Run Code Online (Sandbox Code Playgroud)

如果您运行的是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

  • “为了混淆无辜者”将是我最喜欢的名言之一。 (5认同)
  • 这就像将 64 位应用程序放入“system32”文件夹中一样。 (3认同)
  • 也许这是他们想要保持兼容性的硬编码路径的情况?_微软就是微软_ (2认同)

Sim*_*n B 45

我认为$ PsHome有你想要的信息吗?

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

PS .> Get-Help about_automatic_variables

TOPIC
    about_Automatic_Variables ...


Nat*_*ley 24

这是一种方式......

(Get-Process powershell | select -First 1).Path
Run Code Online (Sandbox Code Playgroud)

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

(Get-Command powershell.exe).Definition
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,这是一个比目前投票到35的更好的答案.最初的问题似乎是关于可执行文件的路径,版本信息是问题的附带信息.这个答案直接解决了这个问题,甚至绕过了"应该是"的答案,让一个人确切地知道exe在他们自己的系统上的位置,即使该系统与默认系统不同.(这就是我来这里寻找的,所以我很感激.) (3认同)

Jac*_*lor 13

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

[System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName
Run Code Online (Sandbox Code Playgroud)

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

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


rav*_*nth 11

它总是C:\ Windows\System32\WindowsPowershell\v1.0.它就是这样,因为后来的兼容性是我在某处听到或读到的.

  • %SystemRoot%\ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe。如果SystemRoot不是“ C:\ Windows” (2认同)