PowerShell 基本操作與實務案例完整教學
PowerShell 是 Windows 系統管理與自動化操作的核心工具。本文從使用者角度整理完整 PowerShell 基本操作與實務案例,包括系統資訊查詢、檔案與資料夾管理、服務與程序管理、網路管理及使用者與權限管理,附指令模板、真實範例與操作說明,讓新手也能快速上手,輕鬆管理 Windows 系統並自動化日常任務。
系統資訊查詢
使用 PowerShell 可以快速查詢電腦硬體與作業系統資訊,方便排查問題或自動化收集系統資料。以下範例從使用者角度拆解指令,告訴你每個欄位要填什麼。
| 指令 | 用途 | 備註 |
|---|---|---|
| Get-ComputerInfo | Select-Object <欄位名稱> | 查詢電腦資訊,可篩選欄位 | 範例可查 CPU、記憶體、主機名稱等 |
| Get-Date | 顯示系統日期與時間 | 可搭配 -Format 格式化日期 |
| Get-Host | 查詢 PowerShell 版本 | 確認執行環境與 Cmdlet 支援 |
# 案例一:查本機 CPU 與主機名稱
Get-ComputerInfo | Select-Object CsName, CsProcessors
# 說明:顯示本機名稱與 CPU 型號、數量
# 運作方式:結果會列出 CsName 和 CsProcessors 欄位內容,方便檢查硬體資訊
# 案例二:查詢系統日期與時間
Get-Date -Format "yyyy/MM/dd HH:mm:ss"
# 說明:取得目前系統時間,並以指定格式顯示
# 運作方式:可用於比對日誌或自動化腳本記錄時間
# 案例三:查看 PowerShell 版本
Get-Host
# 說明:列出 PowerShell 版本與執行環境資訊
# 運作方式:幫助判斷 Cmdlet 支援與模組相容性
檔案與資料夾管理
PowerShell 可操作檔案與資料夾,包括列出、複製、移動、刪除。以下範例告訴你哪個欄位要填寫,並提供可執行實例。
| 指令 | 用途 | 備註 |
|---|---|---|
| Get-ChildItem <資料夾路徑> | 列出目錄內容 | 可搭配 -Recurse 遞迴列出子目錄 |
| Copy-Item <來源檔案路徑> <目標資料夾路徑> -Force | 複製檔案或資料夾 | -Force 可覆蓋目標檔案 |
| Move-Item <來源檔案路徑> <目標資料夾路徑> -Force | 移動檔案或資料夾 | -Force 可覆蓋目標 |
| Remove-Item <檔案或資料夾> -Recurse | 刪除檔案或資料夾 | -Recurse 可刪除整個資料夾 |
# 案例一:列出 C:\Users 目錄內容
Get-ChildItem C:\Users -Recurse
# 說明:列出 Users 資料夾下所有檔案與子資料夾
# 運作方式:可快速查看目錄結構,適合排查檔案
# 案例二:複製檔案到備份資料夾
Copy-Item C:\Temp\config.xml D:\Backup\config.xml -Force
# 說明:將 config.xml 複製到 D:\Backup\ 資料夾,如果已存在會覆蓋
# 運作方式:適合自動化備份腳本
# 案例三:移動日誌檔案
Move-Item C:\Temp\log.txt D:\Archive\log.txt -Force
# 說明:將 log.txt 移到 Archive 資料夾,若存在同名檔案會覆蓋
# 運作方式:整理檔案或自動化歸檔
# 案例四:刪除舊資料夾
Remove-Item C:\Temp\OldFolder -Recurse
# 說明:刪除整個 OldFolder 資料夾
# 運作方式:清理暫存或不再使用的資料夾
服務管理
使用 PowerShell 可以管理 Windows 服務,包括查詢、啟動、停止。下方指令模板與範例,幫助你快速上手服務管理。
| 指令 | 用途 | 備註 |
|---|---|---|
| Get-Service <服務名稱> | 查詢服務狀態 | 不加參數列出所有服務 |
| Start-Service <服務名稱> | 啟動服務 | 確保服務未在運行時使用 |
| Stop-Service <服務名稱> | 停止服務 | 停止服務前需確認依賴關係 |
| Restart-Service <服務名稱> | 重新啟動服務 | 適合套用設定後重啟 |
# 案例一:查詢 Windows Update 服務狀態
Get-Service wuauserv
# 說明:檢查服務是否運行
# 運作方式:結果列出服務名稱、狀態及服務類型
# 案例二:啟動 Print Spooler 服務
Start-Service Spooler
# 說明:啟動列印緩衝服務
# 運作方式:確保可以使用印表機
# 案例三:停止 Windows Update 服務
Stop-Service wuauserv
# 說明:暫停自動更新服務
# 運作方式:避免更新干擾排程或安裝
程序管理
PowerShell 可查詢與管理進程,協助監控系統資源或終止不必要的程序。
| 指令 | 用途 | 備註 |
|---|---|---|
| Get-Process <進程名稱> | 查詢進程資訊 | 不加名稱列出所有進程 |
| Stop-Process -Name <進程名稱> -Force | 終止進程 | -Force 強制終止 |
# 案例一:查詢 Chrome 進程
Get-Process chrome
# 說明:顯示所有 Chrome 進程資訊
# 運作方式:可查看 CPU、記憶體使用量
# 案例二:終止指定進程
Stop-Process -Name notepad -Force
# 說明:強制關閉記事本
# 運作方式:釋放資源或終止失去回應的程式
網路管理
PowerShell 可管理網路設定與檢查連線狀態,快速排查網路問題。
| 指令 | 用途 | 備註 |
|---|---|---|
| Test-Connection <目標 IP 或主機名稱> | 測試連線 | 類似 ping 指令 |
| Get-NetIPAddress | 查詢本機網路設定 | 顯示 IP、子網路、預設閘道 |
| Get-NetAdapter | 查詢網卡狀態 | 顯示連線狀態與速度 |
# 案例一:測試連線到 google.com
Test-Connection google.com -Count 4
# 說明:連線測試 4 次
# 運作方式:返回延遲時間,幫助排查網路問題
# 案例二:查詢本機 IP 設定
Get-NetIPAddress
# 說明:列出所有網卡 IP 資訊
# 運作方式:方便確認網路設定是否正確
使用者與權限管理
PowerShell 可管理本機帳號與群組,快速建立、查詢或刪除使用者帳號。
| 指令 | 用途 | 備註 |
|---|---|---|
| Get-LocalUser | 查詢本機使用者 | 列出帳號名稱與狀態 |
| New-LocalUser -Name <名稱> -Password (ConvertTo-SecureString <密碼> -AsPlainText -Force) | 建立新使用者 | 密碼需轉換成 SecureString |
| Remove-LocalUser -Name <名稱> | 刪除使用者 | 慎用,會移除使用者資料 |
# 案例一:列出本機使用者
Get-LocalUser
# 說明:顯示所有本機帳號與啟用狀態
# 運作方式:快速查看現有帳號資訊
# 案例二:建立新使用者 testuser
New-LocalUser -Name "testuser" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
# 說明:建立帳號 testuser,密碼為 P@ssw0rd
# 運作方式:帳號建立完成後可加入群組或設定權限
# 案例三:刪除使用者 testuser
Remove-LocalUser -Name "testuser"
# 說明:刪除帳號 testuser
# 運作方式:帳號及相關資料將被移除,請小心使用
FAQ 常見問題
PowerShell 適合新手使用嗎?
PowerShell 非常適合新手,指令結構清楚且有實務案例演練,能快速掌握 Windows 系統管理與自動化操作。
如何查看 PowerShell 版本?
使用 Get-Host 指令可以查看版本,每個版本支援的 Cmdlet 不同,確認版本有助於選擇正確指令與模組。
如何備份檔案與資料夾?
使用 Copy-Item 指令搭配 -Force 可覆蓋已存在檔案,適合建立自動化備份腳本。
如何管理服務?
使用 Get-Service、Start-Service、Stop-Service 指令,可查詢及控制服務狀態,管理前建議先確認依賴關係避免影響系統運作。
