いくつかのプリンタを搭載したWindowsServer 2003を使用していますが、イベントビューアに次のメッセージが表示されてPrint Spoolerサービスがクラッシュすることがあります:障害のあるアプリケーションspoolsv.exe、バージョン5.2.3790.0、障害のあるモジュールZSR.DLL、バージョン6.20.1625.0 、障害アドレス0x0001f979。もちろん、これを完全に防ぐのはいいことですが、それまでは自動的に再起動したいと思います。 [プロパティ/リカバリ]タブの[1回目/ 2回目/後続の障害]で[サービスの再起動]に設定しましたが、再起動しません。手動で起動すると、正常に動作します。自動的に再起動するように設定するにはどうすればよいですか?
タスクを定期的に実行するようにスケジュールできます
net stop spooler
net start spooler
ただし、問題の根本は、破損したプリントドライバである可能性があります。プリンターを削除した後、すべてのプリンタードライバーをクリアしてみてください。更新されたドライバーをダウンロードし、プリンターを再度追加します。
問題はHP1020レーザープリンターにあるようですが、私には当然のことです。これらの1020は、非常に手頃なWindowsホストベースのプリンターであり、HPによって作成されたドライバーは完全ではないため、プリントサーバーで使用すると本当にひどいものになります。
私たちは、従業員がそれらを購入するのをやめ、代わりに、適切なイーサネットカードが入っているHPの最下位に行くように頼む傾向がありました。 1020は自宅での使用は問題ありませんが、ビジネス環境では使用できません。
スプーラのクラッシュ、DLLの問題、および HPフォーラム などのこれらのプリンタを使用するためのWeb上のDEPとの競合に関する長い議論があります。
しかし、私の提案は、トラブルシューティングの時間を節約し、それをビンに入れて、まともな何かを手に入れることです。
プリンタードライバーをクリーンアップしようと思います。プリンタドライバをアンインストールして、ベンダーから最新のものを再インストールしてみてください。
プリンタドライバのトラブルシューティングの良いページはここにあります: プリンタドライバをクリーンアップする方法 。
このような単純なvbsスクリプトをスケジュールして、必要に応じてローカルコンピューターでスプーラーサービスを定期的に再起動できます。
strComputer = "。" strSvcName = "Spooler" set objWMI = GetObject( "winmgmts:\\"&strComputer& "\ root\cimv2") set objService = objWMI.Get( "Win32_Service .Name = '"&strSvcName&"' ") If objService.State =" Stopped "Then objService.StartService() End If
ただし、これは問題の回避策にすぎません。すべてのドライバーをチェックして、最新であるかどうかを確認できます。
Net Stop Spooler && Net Start Spooler
それをスケジュールされたタスクに押し込み、数分ごとに実行すると、おそらくカバーされます。
個人的には、どのプリンタードライバーがzsr.dllをインストールし、それを削除/再インストールするかを調べています。破損している可能性があり、交換する必要があります。
Service Hawkなどのサードパーティのサービス監視ツールをインストールして、再起動することができます。それでうまくいくでしょう。
私の2セントを追加するには:zsr.dllはWindows dllファイルではないため、プリンタードライバーdll(おそらくHP)である必要があります。私のアドバイスは、サーバー上のプリンタードライバーを更新し、サービスの回復オプションを設定して、障害が発生したときにサービスを再起動することです。私見、これは、スケジュールに従ってサービスを停止および再開するためにバッチファイルをスケジュールするよりも優れたオプションです。