
多くのシステム管理者や IT プロフェッショナルは、特に Windows 環境内で、コマンド ラインから直接システム タスクを実行する効率的な方法を常に模索しています。Windows サービスは、システムとアプリケーションの両方でシームレスな操作を維持する上で重要な役割を果たします。サービス マネージャーなどのグラフィカル インターフェイスに頼るのではなく、コマンド ライン経由で Windows サービスを管理すると、柔軟性とスピードが向上します。このガイドでは、ターミナルから直接 Windows サービスを管理するためのさまざまなコマンド ライン ツールについて詳しく説明します。
1. Windowsサービスを管理するsc.exe
コマンドsc.exe
ライン ユーティリティは、ユーザーが Windows サービスを管理できるようにする非常に便利なツールです。このユーティリティを使用すると、グラフィカルなサービス マネージャーを使用しなくても、コマンドラインからシームレスにサービスを構成、監視、制御できます。
サービスステータスを確認するsc
特定のサービスのステータスを確認するには、sc query serviceName
コマンドを使用します。例:
sc query MySQL80
このコマンドは、MySQL80 サービスの状態に関する詳細を表示します。

示されているように、これは MySQL が現在マシン上で非アクティブであることを示しています。
サービスを開始するsc
特定のサービスを有効にするには、次のコマンドを使用します。
sc start MySQL80
サービスを開始した後、次の方法でそのステータスを確認できます。
sc query MySQL80

サービスの停止sc
システム リソースを再利用するためにサービスを停止する必要がある場合は、次を実行します。
sc stop MySQL80
次を実行してこのアクションを確認します。
sc query MySQL80

新しいサービスを作成するsc
新しいサービスを確立するための構文は次のようになります。
sc create mte binPath="C:\Users\HP\Desktop\Examples\Service.exe"start= auto

既存のサービスを更新するsc
次のコマンドを使用して既存のサービスの構成を変更します。
sc config serviceName start= demand

サービスを削除するsc
サービスを完全に削除するには、次のコマンドを実行します。
sc delete serviceName

2.net
コマンドでWindowsサービスを管理する
このnet
コマンドを使用すると、ユーザーはグラフィカル インターフェイスを必要とせずに Windows サービスを管理できます。これにより、サービスの開始、停止、一時停止、再開、および照会を効率的に実行できます。
net
コマンドを使用してサービスを開始および停止する
サービスを管理するには、次のコマンドを実行します。
net start serviceName
net stop serviceName

サービスの一時停止と再開
許可されているサービスの場合、以下を使用して操作を一時停止および再開できます。
net pause ServiceName
net continue ServiceName

サービスステータスを確認するnet
サービス ステータスを直接報告するわけではnet
ありませんが、次のものを使用できます。
net start | findstr "ServiceName"

このコマンドは、サービスが実行中の場合はサービス名を返します。出力がない場合は、サービスがアクティブではないことを意味します。
リモートサービス管理
以下を使用してリモート マシン上のサービスを管理します。
net start ServiceName /S RemotePC
net stop ServiceName /S RemotePC
3. PowerShell コマンドレットを使用して Windows サービスを管理する
PowerShell では、サービス管理用に設計されたコマンドレットを使用して、より高度な制御が可能になります。、、、などのコマンドレットを利用することでGet-Service
、ユーザーはさらに高度な機能を備えたタスクを実行できます。Start-Service
Stop-Service
Restart-Service
コマンドレットを使用してサービスの状態を確認する
サービスのステータスを検査するには、以下を使用します。
Get-Service -Name MySQL80

PowerShell でサービスをクエリする
コマンドレットを使用して、状態に基づいてサービスをフィルタリングします。たとえば、実行中のサービスを一覧表示するには、次のようにします。
Get-Service | Where-Object { $_. Status -eq 'Running' }

PowerShell コマンドレットを使用してサービスを管理する
以下を使用してサービスを開始および停止します。
Start-Service -Name MySQL80
Stop-Service -Name MySQL80
ステータスを再度確認します。
Get-Service -Name MySQL80

PowerShell コマンドレットを使用してサービスのスタートアップの種類を変更する
サービスのスタートアップの種類を変更するには、次のようにして自動、手動、または無効に設定できます。
Set-Service -Name ServiceName -StartupType Automatic
Set-Service -Name ServiceName -StartupType Manual
Set-Service -Name ServiceName -StartupType Disabled
これにより、運用上の好みに合わせたシームレスな管理が可能になります。
PowerShell によるリモート管理
リモート マシン上のサービスを確認または制御するには、以下を使用します。
Get-Service -Name ServiceName -ComputerName RemotePC
この機能は、複数のコンピュータ環境でサービスを管理する場合に特に役立ちます。
4.サービス管理タスクを自動化する
PowerShell のスクリプト機能により、管理者はサービス管理を自動化し、手動による介入を最小限に抑えることができます。たとえば、サービスの状態を継続的に監視し、サービスがダウンした場合に再起動するスクリプトを作成できます。
自動化スクリプトの例
MySQL80 サービスが動作しているかどうかを確認し、動作していない場合は再起動するスクリプトを検討します。
$serviceName = "MySQL80" $service = Get-Service -Name $serviceName if ($service. Status -ne "Running") { Restart-Service -Name $serviceName -Force Write-Output "$serviceName was stopped and has been restarted." } else { Write-Output "$serviceName is already running." }
Windows では、スクリプトの実行はデフォルトで制限されています。したがって、実行を有効にするには、次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned

作成されたスクリプトを実行するには、その場所に移動して次を実行します。
.\serviceScript.ps1

sc.exe
、、 PowerShellなどのコマンド ライン ツールのパワーを活用することでnet
、グラフィカルなサービス マネージャーを使用しなくても、Windows サービスに対する完全な権限を取得できます。各メソッドは、サービスを開始、停止、および構成するための効果的な手段を提供します。さらに、PowerShell のスクリプト機能により、広範な自動化が可能になり、重要なサービスが稼働し続けると同時に、システムのパフォーマンスと信頼性が向上します。
よくある質問
1. Windows サービスとは何ですか?
Windows サービスは、ユーザー セッションとは独立して実行されるバックグラウンド プロセスであり、オペレーティング システムとアプリケーションに不可欠な機能を提供します。
2. Windows マシンでどのサービスが実行されているかを知るにはどうすればよいですか?
PowerShell でsc query
や などのコマンドを使用すると、実行中のサービスを確認できます。Get-Service
3.コマンドラインを使用してサービスをリモートで管理できますか?
net
はい、スイッチと組み合わせたコマンドを使用する/S
か、パラメーターを指定した PowerShell コマンドレットを使用して、リモート コンピューター上のサービスを管理できます-ComputerName
。
コメントを残す ▼