停止または開始でスタックするWindowsサービスを強制終了します
「Stopping
」でスタックされているWindowsサービスプロセスを手動で強制終了する方法 」または「Starting
" 州?ほとんどのWindows管理者は、サービスを開始/停止/再起動しようとすると問題に直面しますが、停止でスタックします。 (または開始 ) スターテス。サービス管理コンソール(services.msc
)からこのサービスを停止することはできません )、このサービスのすべてのコントロールボタンが非アクティブになる(グレー表示)ため。最も簡単な方法はWindowsを再起動することですが、常に受け入れられるとは限りません。システムを再起動せずに、スタックしたWindowsサービスまたはプロセスを強制的に強制終了できる別の方法を見てみましょう。
サービスを停止しようとしてから30秒以内にサービスが停止しない場合、Windowsは次のメッセージを表示します:
Windows Could not stop the xxxxxx service on Local Computer Error 1053: The service did not respond in a timely fashion.サービスコントロールマネージャーがサービスの開始または停止を待機するタイムアウトは、 ServicesPipeTimeoutを使用して変更できます。 レジストリパラメータ。指定されたタイムアウト内にサービスが開始されない場合、Windowsはイベントビューアにエラーを送信します(イベントID:7000、7009、7011、タイムアウトに達した30000ミリ秒 )。このタイムアウトを60秒に増やすことができます。例:
reg add HKLM\SYSTEM\CurrentControlSet\Control /v ServicesPipeTimeout /t REG_SZ /d 600000 /f
これは、すべてのプロセスを適切に終了してファイルを閉じるのに十分な時間がない重いサービス(MS SQL Serverなど)を開始/停止する場合に役立ちます。
コマンドプロンプトからこのようなサービスを停止しようとすると、次のようになります。net stop wuauserv
、メッセージが表示されます:
The service is starting or stopping. Please try again later.
または:
Windows could not stop the Service on Local Computer. [SC] ControlService Error 1061: The service cannot accept control messages at this time.
内容:
- TaskKillを使用してスタックしたWindowsサービスを強制的に強制終了するにはどうすればよいですか?
- PowerShellでスタックしたWindowsサービスを強制的に停止する
- ResMonを使用したハングサービスの待機チェーンの分析
- ProcessExplorerを使用してハングしたサービスを強制終了する
TaskKillを使用してスタックしたWindowsサービスを強制的に強制終了する方法
スタックしたサービスを停止する最も簡単な方法は、組み込みの taskkillを使用することです。 コマンドラインツール。まず、 PIDを見つける必要があります (プロセス識別子)サービスの。例として、WindowsUpdateサービスを見てみましょう。そのシステム名はwuauserv
です。 (名前はservices.msc
のサービスプロパティで確認できます コンソール)。
昇格したコマンドプロンプトでこのコマンドを実行します(重要です。そうしないと、アクセス拒否エラーが表示されます):
sc queryex wuauserv
この場合、wuauservサービスのPIDは9186です。
PID 9186でスタックしたプロセスを強制終了するには、次のコマンドを実行します。
taskkill /PID 9168 /F
SUCCESS: The process with PID 9168 has been terminated.
このコマンドは、サービスプロセスを強制的に終了します。これで、sc start servicename
を使用してサービスを開始できます。 コマンドまたはサービス管理コンソールを介して
サービスプロセスのPIDを手動でチェックしなくても、ハングしたサービスをよりエレガントに停止できます。 taskkillツールには/FIがあります オプション。これにより、フィルターを使用して必要なサービスまたはプロセスを選択できます。次のコマンドで特定のサービスを強制終了できます:
taskkill /F /FI "SERVICES eq wuauserv"
または、次のコマンドを使用して、サービス名をすべてスキップし、ハング状態のすべてのサービスを強制終了することができます。
taskkill /F /FI "status eq not responding"
その後、停止状態のスタックであるサービスは停止するはずです。
taskkillユーティリティを使用して、リモートコンピュータのハングサービスを強制的に停止することもできます。
taskkill /S mun-fs01 /F /FI "SERVICES eq wuauserv"
PowerShellを使用して、サービスを強制的に停止することもできます。次のコマンドを使用すると、停止状態のサービスのリストを取得できます。
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}
または開始状態:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'start pending'}
停止プロセス コマンドレットを使用すると、見つかったすべてのサービスのプロセスを終了できます。次のPowerShellスクリプトは、Windowsでスタックしているすべてのサービスプロセスを終了します。
$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message "Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}
Get-CimInstance
を使用する必要があります Get-WmiObject
の代わりに 新しいPowerShellCore6.x/7.xのコマンドレット。スクリプトの最初のコマンドを次のように置き換えます:
$Services = Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'
ResMonを使用したハングサービスの待機チェーンの分析
resmon.exe を使用して、サービスがハングする原因となったプロセスを検出できます。 (リソースモニター)。
- [リソースモニター]ウィンドウで、[CPU]タブに移動し、ハングしたサービスプロセスを見つけます。
- アイテムを選択しますウェイトチェーンの分析 コンテキストメニューから。
- 新しいウィンドウで、プロセスが別のプロセスを待機していることがわかります。プロセスを終了します。 svchost.exeまたは別のシステムプロセスを待機している場合は、それを終了する必要はありません。このプロセスの待機チェーンを分析してみてください。 svchost.exeが待機しているプロセスのPIDを見つけて、それを強制終了します。
ローカル管理者でさえ、SYSTEMアカウントで実行されている一部のプロセスを終了することはできません。実際のところ、管理者アカウントには、一部のプロセスやサービスに対する権限がありません。このようなプロセス(サービス)を停止するには、サービス(プロセス)へのアクセス許可をローカルのAdministratorsグループに付与してから、それらを強制終了する必要があります。これを行うには、2つの小さなツールが必要になります: psexec.exe およびProcessExplorer (MicrosoftのWebサイトで入手可能)。
- システム権限(runas SYSTEM)でProcessExplorerを起動するには、次のコマンドを使用します:
PSExec -s -i ProcExp.exe
- Process Explorerのプロセスリストで、スタックしたサービスプロセスを見つけて、そのプロパティを開きます。
- サービスに移動します タブをクリックし、サービスを見つけて、権限をクリックします ボタン;
- 管理者のサービス権限でフルコントロール権を付与します グループ。 変更を保存します。
- ここで、サービスプロセスを停止してみてください。サービスのアクセス許可は、サービスが再開されるまで一時的に付与されることに注意してください。サービスに永続的なアクセス許可を付与するには、「Windowsサービスにアクセス許可を設定する」の記事に従ってください。
-
Windows 11 でサービスを有効または無効にする方法
多くのアプリケーションと機能は、ユーザー入力を必要とせずにバックグラウンドで実行することにより、すべてのオペレーティング システムのスムーズな実行をサポートします。同じことが、Windows OS の背後にある主要な歯車であるサービスにも当てはまります。これらのコンポーネントにより、ファイル エクスプローラー、Windows Update、システム全体の検索などの基本的な Windows 機能が正しく動作することが保証されます。いつでも問題なく使用できるように準備して準備します。今日は、Windows 11 でサービスを有効または無効にする方法を見ていきます。 Windows 11 でサー
-
Windows 10 でサービス エラー 1053 を修正する
PC でサービスを開始しようとして、時間枠内にサービスが応答を拒否した場合、エラー 1053:サービスは適切なタイミングで開始または制御要求に応答しませんでした .カスタム サービスを起動できないさまざまなバリエーションでエラーが発生する可能性があります。残念ながら、カスタム ソフトウェアを開発しようとすると、PC でサービス エラー 1053 が頻繁に発生することを報告している開発者はほとんどいません。このガイドでは、エラー メッセージが表示される理由と、問題を解決するためのトラブルシューティング方法について説明します。それでは、読み続けてください! Windows 10 でサービス エ