PowerShellでWindowsサービスとプロセスを操作する
PowerShellは、Windowsサービスとプロセスを管理するための多くのcmdletを提供します。この記事では、これらのcmdletを使用してサービスとプロセスを操作する方法について説明します。
基本的なことを学ぶ
まず、基本的な概念を学んでから始めましょう:
- サービス: 背景で動作するプログラムで、特定のタスクや機能を提供します。例えば、Windows Update Service、Printer Spooler、DHCP Client などです。
- プロセス: 動作中のプログラムのインスタンスです。各プロセスには独自のメモリー空間があり、マルチスレッドで動作することができます。
サービスを操作する
PowerShellは、以下のようなcmdletを提供します:
- Get-Service: ローカルコンピューター上のサービスに関する情報を取得します。
- Start-Service: 現在停止しているサービスをスタートします。
- Stop-Service: 現在動作中のサービスをストップします。
- Restart-Service: 現在動作中のサービスを再起動します。
次の例スクリプトでは、これらのcmdletを使用してサービスを操作する方法を示しています:
# ローカルコンピューター上の全サービスに関する情報を取得
Get-Service
# Windows Update Serviceをスタート (現在停止している場合)
Start-Service wuauserv
# Printer Spooler サービスをストップ (現在動作中の場合)
Stop-Service spooler
# DHCP Client サービスを再起動 (現在動作中の場合)
Restart-Service dhcp
プロセスを操作する
PowerShellは、以下のようなcmdletを提供します:
- Get-Process: ローカルコンピューター上のプロセスに関する情報を取得します。
- Start-Process: 新しいプロセスを作成し、指定された実行可能ファイルの新しいインスタンスを開始します。
- Stop-Process: 動作中のプロセスをストップします。
- Kill-Process: 動作中のプロセスを殺します (終了します)。
次の例スクリプトでは、これらのcmdletを使用してプロセスを操作する方法を示しています:
# ローカルコンピューター上の全プロセスに関する情報を取得
Get-Process
# Notepad.exe の新しいインスタンスを開始
Start-Process notepad.exe
# Notepad プロセスをストップ (現在動作中の場合)
Stop-Process -Name notepad
# Task Manager プロセスを殺します (現在動作中の場合)
Kill-Process -Id (Get-Process taskmgr).Id
サービスとプロセスをフィルタリングしてソートする
PowerShellは、サービスとプロセスをフィルタリングしてソートするための多くの方法を提供します:
- フィルタリング:
-Nameまたは-DisplayNameパラメーターを使用してサービスやプロセスをフィルタリングします。 - ソート:
-SortByパラメーターを使用してサービスやプロセスをソートします。
次の例スクリプトでは、これらの方法を使用してサービスとプロセスを操作する方法を示しています:
# ローカルコンピューター上の全サービスに関する情報を取得し、表示名でソート
Get-Service -SortBy DisplayName
# ローカルコンピューター上の全プロセスに関する情報を取得し、名前でフィルタリングして CPU でソート
Get-Process -Name notepad,chrome -SortBy CPU
# ローカルコンピューター上の全サービスに関する情報を取得し、名前でフィルタリングして状態でソート
Get-Service -Name wuauserv,dhcp -SortBy Status
結論
この記事では、PowerShell cmdlet を使用して Windows サービスとプロセスを操作する方法について説明しました。基本的な概念、サービスを操作する方法、プロセスを操作する方法、およびフィルタリングしてソートする方法などをカバーしています。
サービスやプロセスを操作する際には、常に注意を払う必要があります。これらの cmdlet を適切に使用しないとシステムの安定性やクラッシュをもたらす可能性があります。
追加リソース
次のステップ
PowerShell を使用して Windows サービスとプロセスを操作する方法を学んだ後、次のステップとしてより高度なトピックに取り組むことができます:
- エラーハンドリング: サービスの動作中のエラーを処理する方法について説明します。
- スクリプティングのベストプラクティス: ポワーシェルのスクリプティングに関するtipsとtricksを学ぶことができます。
可能性は無限大です!