Windows のサービスの制御
PowerShell を使う場合
-
指定のサービスを列挙
PS> gsv | ? { $_.Name -match "sqlserver" } Status Name DisplayName ------ ---- ----------- Running MSSQLSERVER SQL Server (MSSQLSERVER) Running MSSQLServerOLAP... SQL Server Analysis Services (MSSQL... Stopped SQLSERVERAGENT SQL Server エージェント (MSSQLSERVER)
-
指定かつ動作しているサービスの列挙
PS> gsv | ? { $_.Name -match "sql" -and $_.Status -match "Run" } Status Name DisplayName ------ ---- ----------- Running MSSQLFDLauncher SQL Full-text Filter Daemon Launche... Running MSSQLSERVER SQL Server (MSSQLSERVER) Running MSSQLServerOLAP... SQL Server Analysis Services (MSSQL... Running SQLWriter SQL Server VSS Writer
以下でもよい
PS> gsv | ? Name -match "sql" | ? Status -match "Run"
-
動作しているサービスを停止させる
PS> gsv | ? Name -match "mssql" | Stop-Service
開始させる場合は、
Stop-Service
の代わりにStart-Service
を使う。ただし、後述の「スタートアップの種類」を考慮しないため、設定によっては OS起動時にサービスが起動される場合がある。
-
スタートアップで自動起動させなくする (
「手動」
に)。PS> gsv | ? Name -match "mssql" | Set-Service -StartupType Manual
「自動」に戻す場合:
-StartupType Automatic
と指定する。【メモ】 「サービス停止」と同時に「自動起動させない」ために、
-Status Stopped
を使いたくなるが、以下のように依存関係がある場合には停止できない模様。 前述のStop-Service
を使うのが確実なようだ。PS> gsv | ? Name -match "mssql" | Set-Service -Status Stopped -StartupType Manual Set-Service : サービス 'SQL Server (MSSQLSERVER) (MSSQLSERVER)' には依存サービスがあるため、停止できません。 発生場所 行:1 文字:31 + ... Name -match "mssql" | Set-Service -Status Stopped -StartupType Manual + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.ServiceProcess.ServiceController:ServiceController) [Set-Servi ce]、ServiceCommandException + FullyQualifiedErrorId : ServiceHasDependentServicesNoForce,Microsoft.PowerShell.Commands.SetServiceCommand
参考
- Microsoft TechNet
- Get-Service (gsv)
- Set-Service
- Stop-Service (sasv)
- Start-Service (spsp)