PowerShell 透過 Provider(提供者) 讓我們像操作檔案系統一樣存取各類資料存儲。每個 Provider 本質是一個動態連結庫,亦稱「管理單元」。
Get-PSProvider # 列出所有提供者
| Cmdlet | 功能 | 傳統指令 | 別名 |
|---|---|---|---|
| Get-Location | 目前目錄 | pwd | gl |
| Set-Location | 變更目錄 | cd, chdir | sl |
| New-Item | 新建檔案/資料夾 | - | ni |
| Rename-Item | 重新命名 | rn | rni |
| Copy-Item | 複製 | copy | cpi |
| Move-Item | 移動 | move | mi |
| Remove-Item | 刪除 | del | ri |
| Set-Item | 設定內容 | - | si |
| Clear-Item | 清除內容 | - | cli |
| mkdir | 建立資料夾 | md | - |
| Set-Content | 寫入內容 | - | sc |
| Get-Content | 讀取內容 | type | gc |
Get-PSDrive 列出所有磁碟機,每個 Provider 對應唯一 PSDrive(檔案系統與登錄表除外)。使用時需加冒號,如 alias:、c:。
類似 CMD set,進入 env: 磁碟機操作:
cd env:; ls # 列出所有環境變數
ls OS | Format-List * # 顯示 OS 變數所有屬性
New-Item -Path . -Name New -Value "New" # 建立新環境變數
Get-ChildItem 輸出的 Mode 首字元:d=資料夾、-=檔案;後四碼:a=封存、r=唯讀、h=隱藏、s=系統。預設不顯示隱藏檔,需加 -Force 參數。
PowerShell 內建函數引擎,cd function:; ls 列出所有函數,Get-Content clear-host 查看函數本體。可自訂函數封裝常用邏輯。
像操作檔案一樣存取 HKCU:、HKLM:;cert: 存取憑證存儲,可匯出 CSV:
cd cert:; ls -Recurse | Export-CSV "d:\Cert.csv"
本節內容雜但重要,為後續深入學習奠基。