核心指令
| 服務 | 停止指令 | 啟動指令 |
| SQL Server (預設實例) | net stop mssqlserver | net start mssqlserver |
| SQL Server (具名實例) | net stop MSSQL$InstanceName | net start MSSQL$InstanceName |
| SQL Server Agent | net stop sqlserveragent | net start sqlserveragent |
| MySQL | net stop mysql | net start mysql |
| IIS (舊版) | net stop iisadmin /y | net start w3svc |
一鍵重啟批次檔範例 (restart_services.cmd)
@echo off
echo === 停止服務 ===
net stop mssqlserver
net stop sqlserveragent
net stop mysql
REM net stop iisadmin /y
echo === 等待 3 秒 ===
timeout /t 3 /nobreak >nul
echo === 啟動服務 ===
net start mssqlserver
net start sqlserveragent
net start mysql
REM net start w3svc
echo === 完成 ===
pause
使用建議
- 以 **系統管理員身分執行** (UAC 提權)。
- 將 `.cmd` 檔置於桌面或常用工具目錄,建立捷徑並設定「以系統管理員身分執行」。
- 生產環境建議加入服務狀態檢查、日誌記錄、錯誤碼判斷與通知機制 (如發送郵件/Teams)。
- SQL Server 記憶體佔用大,重啟前建議先執行
CHECKPOINT 刷新髒頁,縮短恢復時間。
進階:PowerShell 版 (更強大的錯誤處理與遠端執行)
$services = @('MSSQLSERVER', 'SQLSERVERAGENT', 'MySQL')
foreach ($svc in $services) {
try {
Stop-Service -Name $svc -Force -ErrorAction Stop
Write-Host "Stopped $svc" -ForegroundColor Yellow
} catch { Write-Warning "Stop $svc failed: $_" }
}
Start-Sleep 3
foreach ($svc in $services) {
try {
Start-Service -Name $svc -ErrorAction Stop
Write-Host "Started $svc" -ForegroundColor Green
} catch { Write-Error "Start $svc failed: $_" }
}