
Windows 電腦的功能遠超過微軟圖形介面所能展現的範圍。在眾所周知的點擊功能背後,隱藏著強大的命令列實用程式 PowerShell,它能夠展現 Windows 典型選單和設定中無法實現的功能。儘管經過數十年的改進,Windows 的許多實用工具仍然只能透過命令列存取。
有趣的是,這些工具並不太複雜,也並非僅供開發人員或系統管理員使用。雖然 Windows 具備基本功能,但圖形介面卻無法呈現這些功能。微軟有意以這種方式設計 Windows,是為了保持簡潔易用的體驗。為每個 PowerShell 功能新增一個 GUI 會導致工具數量過多,介面也變得過於複雜。
這種設計選擇使得無數用戶沒有意識到這些隱藏在命令列中的寶貴功能。
檢索電腦上儲存的Wi-Fi密碼
快速存取已儲存的無線網路

您是否曾經遇到需要與訪客分享 Wi-Fi 密碼卻忘記的情況?您使用過的所有 Wi-Fi 密碼都儲存在 Windows 電腦上。然而,微軟並沒有提供透過標準介面直接查看這些密碼的選項。雖然您可以透過控制面板存取目前連接的網路密碼,但您之前連接過的其他網路的密碼怎麼辦呢?
幸運的是,Windows 系統自帶了netsh wlan show profiles命令,它可以列出裝置上保存的所有 Wi-Fi 網路設定檔。透過組合使用一系列指令,您可以輕鬆取得所有儲存的 Wi-Fi 密碼。雖然最初的命令看起來很複雜,但一旦您掌握了管道、cmdlet 和參數的概念,它就變得易於理解。命令如下:
(netsh wlan show profiles) | Select-String "All User Profile"| %{$name=$_. Line. Split(':')[1].Trim().Replace('"', ''); $_} | %{(netsh wlan show profile name="$name"key=clear)} | Select-String "Key Content"| %{$password=$_. Line. Split(':')[1].Trim(); [PSCustomObject]@{WIFI_NAME=$name; PASSWORD=$password}}
此命令會列舉您的 Wi-Fi 設定檔並檢索每個設定檔的相應密碼。片刻之後,您將獲得一個有序的列表,其中顯示了每個網路的名稱及其密碼。就我個人而言,我曾多次使用此命令來設定新設備或幫助需要連接到我忘記的網路的朋友。
我不用每次都輸入這個命令,而是將其儲存為 PS1 檔案(用於儲存 PowerShell 腳本),並保存在指定的資料夾中。如果經常使用,也可以使用 AutoHotkey 為 PowerShell 指令建立快捷鍵,實現即時存取。
識別佔用儲存空間的重複文件
透過消除重複來節省儲存空間

許多用戶都為混亂的下載資料夾而苦惱。我也遇到同樣的問題,直到我發現了一個實用的 PowerShell 功能。 Windows 缺乏內建的方法來透過其標準介面檢測重複文件,導致許多人在不知不覺中累積了相同文件、圖像和影片的多個副本。
PowerShell透過簡潔的管道命令提供了解決方案:
Get-ChildItem -File | Group-Object Length | Where-Object {$*.Count -gt 1} | ForEach-Object {$*.Group | Get-FileHash} | Group-Object Hash | Where-Object {$*.Count -gt 1} | ForEach-Object { Write-Host "Duplicate files:"; $*.Group. Path; Write-Host "---"}
此命令會為每個檔案的內容產生一個唯一的雜湊值,即使檔案名稱不同,也能辨識真正的重複檔案。我經常在我的“下載”資料夾中執行此命令,每次刪除重複文件後都能恢復大量空間,這讓我非常驚訝。
Windows 圖形使用者介面 (GUI) 中缺少此功能,可能是因為重複偵測會佔用大量資源,尤其是在處理大型檔案時。微軟可能認為大多數用戶不會經常使用此功能,因此增加介面的複雜性是合理的。
同時測試多個站點的互聯網連接
透過基本速度測試來識別連線問題

當網路連線變得緩慢時,大多數使用者會本能地依賴速度測試。然而,這些測試僅提供單一伺服器的數據。如果問題出在特定網站或線上服務上,該怎麼辦? Windows 沒有提供內建的 GUI 工具來同時檢查多個網站的連接性,但 PowerShell 可以簡化這項任務。
您可以使用簡單的Test-Connection指令一次檢查各個目的地:
Test-Connection google.com, facebook.com, youtube.com, microsoft.com
此命令會同時 ping 所有四個站點,並顯示每個站點的回應時間。您可以快速判斷是某個服務出現問題,還是整個網路連線都很慢。當我的網路不穩定時,我經常使用這個命令,因為它能更清楚地顯示正在發生的情況。
Test-Connection google.com, cloudflare.com, amazon.com -Count 10
此變體會向每個網站發送 10 次 ping,從而提供可取平均值的數據。如果某個網站的回應時間持續過長,而其他網站則表現良好,那麼您可以斷定,根本問題不在於您的網路連線。
確認下載的文件合法且安全
透過文件哈希驗證確保安全

許多使用者喜歡在 Microsoft Store 之外下載可執行檔。為了驗證下載內容的安全性,您應該能夠檢查它們是否直接來自開發者。許多合法軟體供應商會在其下載內容中發布哈希值,作為唯一的指紋,如果檔案的任何部分被修改,這些雜湊值就會改變。
PowerShell 包含Get-FileHash命令,該命令可讓您查看下載的檔案雜湊值(將「filename.exe」替換為您的特定檔案名稱):
Get-FileHash "filename.exe"
此指令會產生一個 SHA256 雜湊值,可將其與軟體發布者提供的官方雜湊值進行比較。如果匹配,則表示文件與發布者預期的完全一致;如果不一致,則表示下載過程中可能出現了問題,或者文件已被篡改。
使用 PowerShell 解鎖隱藏功能
討論的 PowerShell 功能凸顯了隱藏在 Windows 友善介面之下的強大功能。 PowerShell 看似複雜,但其實並非如此。我個人只使用少數幾個命令,但足以存取許多用戶認為 Windows 中根本不存在的一些重要功能。
這些功能並非缺乏,只是隱藏在許多人可能從未探索過的命令列介面背後。掌握這些基本指令的知識,可以將日常的煩惱轉化為快速的解決方案。下次在 Windows 介面中遇到限制時,請記住 PowerShell 或許能提供您想要的答案。
發佈留言