PowerShellからサービスの確認・停止・開始する方法

powershell コンピュータ
powershell

Get-ServiceコマンドレットでWindowsのサービスの一覧が表示されます。

沢山のサービスが表示されますので、WindwsPrefetch(SysMain)とWindwsSerarch(WSearch)で絞り込みます。

Get-Service | ? { @("WSearch","SysMain").Contains($_.Name) }

結果

Status   Name               DisplayName
------   ----               -----------
Running  SysMain            SysMain
Running  WSearch            Windows Search

Runningとのことですので実行中であることが確認出来ます。

WindwsSerarchはファイルのインデックスを作成することで検索速度を高めるサービスで、WindwsPrefetch(SysMain)はアプリケーションを起動速度を高めるためにキャッシュを作るサービスだったかと思います。いずれにしてもストレージが高速なSSDでは効果が薄そうなサービスです。停止しても支障が無さそうなサービスですので停止してみます。

サービスの停止

Get-Service | ? { @("WSearch","SysMain").Contains($_.Name) } | Stop-Service

(多分要管理権限)

結果

Status   Name               DisplayName
------   ----               -----------
Stopped  SysMain            SysMain
Stopped  WSearch            Windows Search

Stoppedですので停止した模様です。

GUIで確認

実行中の表示が無いので停止しているようです。ただスタートアップは自動のままですのでPCを再起動するとまたサービスが起動すると思われます。

サービスの開始(再開)

Get-Service | ? { @("WSearch","SysMain").Contains($_.Name) } | Start-Service
Status   Name               DisplayName
------   ----               -----------
Running  SysMain            SysMain
Running  WSearch            Windows Search

再開したようです。

サービスを停止と開始する方法をまなびましたが、次に、サービスが自動起動しないようにしてみます。

Get-Service | ? { @("WSearch","SysMain").Contains($_.Name) } | Set-Service -StartupType Manual

Set-ServiceのStartupTypeをManualにすることで自動起動をしない設定にしてみます。

現在は実行中ですが、スタートアップの種類が手動になっていますので次回PCが再起動の際は自動起動することは無いはずです。
起動させたい場合はStart-Serviceを使うことに成ります。

コメント