PowerShell 管理 Windows Service 與系統維護指令教學

PowerShell 管理 Windows Service 與系統維護指令教學

本文完整整理 Windows PowerShell 的系統維護與服務管理指令,包含服務啟動、停止、重啟、自動啟動設定、批次管理與常用維護指令,附範例與備註,適合系統管理員與 DevOps 團隊使用。

PowerShell 管理 Windows Service

Windows Service 是長時間運行的背景程式,如 IIS、SQL Server 或自訂服務。使用 PowerShell 可以快速啟動、停止、重啟服務,並支援批次操作與排程自動化。

基本指令與語法說明

  • Get-Service -Name "服務名稱":查看指定服務狀態
  • Start-Service -Name "服務名稱":啟動服務
  • Stop-Service -Name "服務名稱":停止服務
  • Restart-Service -Name "服務名稱":重啟服務
  • Set-Service -Name "服務名稱" -StartupType Automatic:設定服務開機自動啟動

操作範例

查看服務狀態

Get-Service -Name "wuauserv"  # 查看 Windows Update 服務狀態

啟動服務

Start-Service -Name "wuauserv"  # 啟動 Windows Update

停止服務

Stop-Service -Name "wuauserv"  # 停止 Windows Update

重啟服務

Restart-Service -Name "wuauserv"  # 重新啟動 Windows Update

設定自動啟動

Set-Service -Name "wuauserv" -StartupType Automatic  # 設定開機自動啟動

批次管理多個服務

$services = @("wuauserv","Spooler","LanmanServer")
foreach ($svc in $services) {
    Restart-Service -Name $svc
    Write-Host "$svc 已重啟"
}
# 批次重啟服務,提高維護效率

排程自動化服務管理

schtasks /create /tn "CheckServices" /tr "powershell.exe -File C:\Scripts\ServiceCheck.ps1" /sc daily /st 03:00
# 將 PowerShell 腳本加入排程,每日自動檢查服務

PowerShell 常用維護指令

除了服務管理,PowerShell 提供多種系統維護指令,可協助檔案管理、使用者管理與系統監控。

使用者與群組管理

Get-LocalUser
New-LocalUser -Name "Jack" -Password (ConvertTo-SecureString "Pass123!" -AsPlainText -Force)
Remove-LocalUser -Name "Jack"
Add-LocalGroupMember -Group "Administrators" -Member "Jack"

檔案與資料夾管理

Get-ChildItem -Path C:\Windows\System32 -Recurse
Copy-Item -Path "C:\Temp\File.txt" -Destination "D:\Backup\" -Recurse
Move-Item -Path "C:\Temp\File.txt" -Destination "D:\Backup\"
Remove-Item -Path "C:\Temp\File.txt"

系統資訊與監控

Get-Process
Stop-Process -Name notepad
Get-EventLog -LogName System -Newest 20
Clear-EventLog -LogName System

自動化排程任務

schtasks /create /tn "BackupTask" /tr "powershell.exe -File C:\Scripts\backup.ps1" /sc daily /st 02:00
schtasks /run /tn "BackupTask"
schtasks /delete /tn "BackupTask"

FAQ 常見問題

如何查看 Windows Service 狀態?

使用 Get-Service -Name '服務名稱' 查看服務狀態,快速了解是否正在運行。

如何啟動或停止 Windows Service?

使用 Start-ServiceStop-Service 搭配 -Name 指定服務即可操作。

如何設定服務自動啟動?

使用 Set-Service -Name '服務名稱' -StartupType Automatic 設定服務開機自動啟動。

PowerShell 可以批次重啟多個服務嗎?

可以使用 foreach 迴圈搭配 Restart-Service 指令批次操作多個服務。

如何查詢本地使用者帳號?

使用 Get-LocalUser 查看系統所有本地使用者帳號。

如何新增本地使用者並設定密碼?

使用 New-LocalUser -Name '帳號名稱' -Password (ConvertTo-SecureString '密碼' -AsPlainText -Force) 建立新使用者帳號。

如何查看系統檔案與資料夾?

使用 Get-ChildItem -Path '資料夾路徑' 列出資料夾內檔案與子目錄,搭配 -Recurse 可遞迴查詢。

如何自動化排程 PowerShell 任務?

使用 schtasks /create 搭配腳本檔案建立每日或每週自動執行的排程任務。

    PAGE TOP