PowerShell 的位置

Migel Hewage Nimesha 2023年1月30日 2022年5月16日
  1. 使用 Host.version 在 Windows Server 2008 中查詢 PowerShell.exe 的位置
  2. Get-Process 在 Windows Server 2008 中查詢 PowerShell.exe 的位置
PowerShell 的位置

從 Windows 7 開始,PowerShell 是預設安裝在每臺 Windows PC 中的用於指令碼編寫、自動化要求和 CI/CD 系統管理的命令列介面。

它用於彌合 Windows 使用者和類 Linux 系統使用者之間的差距。

本文主要是關於以不同方式查詢 PowerShell.exe 檔案位置。

所提供解決方案的重點使用者群是 Windows Server 2008 使用者。但是,它適用於 Windows 7 版本以上的使用者。

使用 Host.version 在 Windows Server 2008 中查詢 PowerShell.exe 的位置

當你使用高於 1.0 版的 Windows PowerShell 版本時,你將很難找到通向 Windows PowerShell 的正確路徑。就我而言,我的 Windows 10 PC 上安裝了 PowerShell 版本 5。

然而,當執行在 Windows PowerShell dir 中開啟目錄的命令時,顯示的版本是 v1.0。

PS C:\Windows\System32\WindowsPowerShell> dir

輸出:

Directory: C:\Windows\System32\WindowsPowerShell
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          4/9/2021   7:23 PM                v1.0

這裡發生的是由於微軟的目錄命名引起的混亂。

它顯示長度名稱為 v1.0,但這不是我的 PC 的 PowerShell 應用程式的實際版本名稱。因此,我們將使用 $Host.version 命令來查詢正確的 PowerShell 版本。

PS C:\Windows\System32\WindowsPowerShell> $Host.version

此程式碼的輸出顯示了正確的 PowerShell 主要和次要版本。

PS C:\Windows\System32\WindowsPowerShell> $Host.version
Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

如你所見,版本是 Windows PowerShell 5.1,而不是版本 v1.0。

造成這種混亂的原因是開發人員正在更新版本。但是,資料夾名稱與 v1.0 相同。在 v1.0 資料夾目錄中,你可以看到 Windows PowerShell 5.1 的 .exe 檔案。

如果你找到正確的位置,你必須進入 v1.0 資料夾並獲取 .exe 檔案。要找到正確的版本資訊,你需要執行 PowerShell 的 $Host.version 命令。

Get-Process 在 Windows Server 2008 中查詢 PowerShell.exe 的位置

在 Windows PC 中查詢 PowerShell.exe 檔案的位置路徑的一種便捷方法是通過 Get-Process 命令。

你無需定向到 PowerShell 資料夾即可執行命令。下面是直接顯示 PowerShell.exe 檔案路徑的命令。

PS C:\Users\Agni> (Get-Process powershell | select -First 1).Path

輸出:

PS C:\Users\Agni> (Get-Process powershell | select -First 1).Path
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

因此,這種方法可以被認為是確定所需 .exe 檔案的正確路徑的輕鬆方法。但是,你無法像我們在之前的方法中那樣識別 PowerShell 的版本。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.