コマンドライン命令を使用して Windows サービスを管理する

コマンドライン命令を使用して Windows サービスを管理する

多くのシステム管理者や IT プロフェッショナルは、特に Windows 環境内で、コマンド ラインから直接システム タスクを実行する効率的な方法を常に模索しています。Windows サービスは、システムとアプリケーションの両方でシームレスな操作を維持する上で重要な役割を果たします。サービス マネージャーなどのグラフィカル インターフェイスに頼るのではなく、コマンド ライン経由で Wi​​ndows サービスを管理すると、柔軟性とスピードが向上します。このガイドでは、ターミナルから直接 Windows サービスを管理するためのさまざまなコマンド ライン ツールについて詳しく説明します。

1. Windowsサービスを管理するsc.exe

コマンドsc.exeライン ユーティリティは、ユーザーが Windows サービスを管理できるようにする非常に便利なツールです。このユーティリティを使用すると、グラフィカルなサービス マネージャーを使用しなくても、コマンドラインからシームレスにサービスを構成、監視、制御できます。

サービスステータスを確認するsc

特定のサービスのステータスを確認するには、sc query serviceNameコマンドを使用します。例:

sc query MySQL80

このコマンドは、MySQL80 サービスの状態に関する詳細を表示します。

scでサービスステータスを確認する

示されているように、これは MySQL が現在マシン上で非アクティブであることを示しています。

サービスを開始するsc

特定のサービスを有効にするには、次のコマンドを使用します。

sc start MySQL80

サービスを開始した後、次の方法でそのステータスを確認できます。

sc query MySQL80

サービス開始Sc

サービスの停止sc

システム リソースを再利用するためにサービスを停止する必要がある場合は、次を実行します。

sc stop MySQL80

次を実行してこのアクションを確認します。

sc query MySQL80

サービスを停止する

新しいサービスを作成するsc

新しいサービスを確立するための構文は次のようになります。

sc create mte binPath="C:\Users\HP\Desktop\Examples\Service.exe"start= auto

サービス Sc の作成

既存のサービスを更新するsc

次のコマンドを使用して既存のサービスの構成を変更します。

sc config serviceName start= demand

サービス Sc の変更

サービスを削除するsc

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

sc delete serviceName

サービス Sc を削除

2.netコマンドでWindowsサービスを管理する

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

netコマンドを使用してサービスを開始および停止する

サービスを管理するには、次のコマンドを実行します。

net start serviceName net stop serviceName

netコマンドでサービスを開始または停止する

サービスの一時停止と再開

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

net pause ServiceName net continue ServiceName

サービスの一時停止と再開ネットコマンド

サービスステータスを確認するnet

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

net start | findstr "ServiceName"

netコマンドでサービスステータスを確認する

このコマンドは、サービスが実行中の場合はサービス名を返します。出力がない場合は、サービスがアクティブではないことを意味します。

リモートサービス管理

以下を使用してリモート マシン上のサービスを管理します。

net start ServiceName /S RemotePC net stop ServiceName /S RemotePC

3. PowerShell コマンドレットを使用して Windows サービスを管理する

PowerShell では、サービス管理用に設計されたコマンドレットを使用して、より高度な制御が可能になります。、、、などのコマンドレットを利用することでGet-Service、ユーザーはさらに高度な機能を備えたタスクを実行できます。Start-ServiceStop-ServiceRestart-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

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

出典と画像

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です