こんにちは。 Windows テクノロジー サポートの松田です。
Windows 7 や Windows Server 2008 R2 にて System のイベント ログに以下のようなイベント ログが記録されることがあります。
-------------------------------ログの名前: Systemソース: Microsoft-Windows-FilterManager日付: 2011/XX/XX X:XX:XXイベント ID: 3タスクのカテゴリ: なしレベル: エラーキーワード: ユーザー: SYSTEMコンピューター: XXXXXXX説明:フィルター マネージャーがボリューム '\Device\HarddiskVolumeXX' に接続できませんでした。このボリュームは、再起動するまでフィルターリングできません。最終状態は 0xc03a001c です。-------------------------------
イベント ログに記録されている 0xc03a001c は STATUS_VHD_INVALID_STATE でありVHD が無効な状態であることを意味しています。このイベントは、VHD を取り外したものの、引き続き VHD にアクセスを試みたプロセスがあり、そのアクセスが失敗 (取り外し済みなため当然失敗します) したことをフィルター マネージャーが検知していることを示しています。
このイベントが記録される状況として、以下のような状況が報告されています。 - Windows Server バックアップを実行した場合 - DetachVirtualDisk() 関数を利用して VHD を取り外した場合 - 管理ツールや Diskpart.exe を利用して VHD を取り外した場合
Windows Server バックアップもデータのバックアップを実施する際に VHD を内部で作成して処理を行うため、いずれの場合も VHD を取り外した際に記録されることがわかります。
アクセスしたプロセスは、以下の方法で確認することができます。
-- 該当プロセスの特定方法 --1. 該当のイベントログを開き、[詳細] タブを選択します。2. "XML" で表示を選択します。3. "Execution ProcessID" に記録されている PID を記録します。4. コマンドプロンプトを起動して以下のコマンドを実行します。> tasklist /SVC5. 手順 3 で確認した PID を保持するプロセスを特定します。
この手順を使うことで、取り外した VHD にアクセスを行っているプロセスを特定することができます。
なお、現在までには、以下のプロセスやサービスが、原因として報告されています。 - Windows Search サービス (Windows 7 で既定で有効) - ウィルス対策ソフト - その他の常駐のシステム監視ソフト
Windows Search では、該当ボリュームへのインデックスができなくなりますが、すでに取り外されている領域であるため、Windows Search サービス自体への影響はありませんので、イベントログ自体を無視していただいても問題はありません。
また、どうしても気になるという場合は、以下の手順で Windows Search サービスを停止する方法もあります。
-- Windows Search の停止手順 --1. [スタート] - [管理ツール] - [サービス] を選択します。2. [Windows Search] を右クリックし、[停止] を選択します。
なお、Windows Server バックアップの実行時や、きちんと VHD を取り外した際にもエラーとしてイベントに出力されてしまうので、本動作は好ましくない動作として、開発部門にフィードバックされていますが、今のところの回避策としてはイベント自体を無視していただくか、アクセスするプロセスやサービス自体を止める必要があります。
Windows Search 以外のソフトウェアやサービスについては、それぞれの製品の作成元にエラーが発生することによる影響を問い合わせていただく必要があるので、ご注意ください。
※ 2011/08/04 理解に間違いがあったので修正しました。
こんにちは、プラットフォームサポートの丸山です。
今日はネットワーク共有プリンターのトラブルシューティングに役に立つかもしれないお話です。
Windows XP や Windows Server 2003 までのコンピューターでは、ネットワーク共有プリンターを使用した場合のクライアント端末とサーバー端末との間では、名前付きパイプを使用して RPC 通信を行いますが、Windows Vista 以降のコンピュータでは、クライアント端末と、サーバー端末との間の通信方式として、可能であれば TCP 直接接続を使用して RPC 通信を使用するように変更されています。
この変更により、新しい RPC 通信では、クライアント端末とサーバー端末との間で多数の TCP セッションが作成されるため、多数のクライアントを抱えるネットワーク共有プリンターでは、ネットワーク機器の最大セッション数に達したり、ファイアウォールにブロックされたりして、ネットワーク共有プリンターが正しく動作しない問題が発生することがあります。
※たとえば、プリンターとFAX画面で、プリンターのステータスが [準備完了] にならず、[オフライン] と表示されたり、[接続できません] と表示されてしまう状況などがあげられます。
このようなとき、Windows 7 以降のクライアント端末では、EnableProtocols というレジストリ値を使用して、クライアント側の TCP 直接接続の RPC 通信を無効化することができますが、クライアント端末が Windows Vista や Windows Server 2008 である場合、また、クライアント端末が多く、すべてのクライアント端末でのレジストリ変更が難しいような状況では、以下の手順にて、プリント サーバー側で TCP 直接接続の RPC 通信を無効化してみることをおすすめします。
それでは、具体的な手順です。
サーバー側のレジストリ設定を変更して、スプーラーサービスを再起動するだけです。
以上で設定は完了です。
図 : 設定完了後のレジストリエディタの画面
DisableRpcTcp レジストリ値は、スプーラー サービスで使用されるプロトコルを変更する設定であり、スプーラー サービスと通信を行うアプリケーション以外への影響はありません。
DisableRpcTcp 値を設定した場合には、TCP 直接接続を使用した RPC 通信を行う代わりに、Windows Server 2003 などで使用されていた従来の名前付きパイプによる RPC 通信が使用されることになります。
名前付きパイプを使用した RPC 通信を使用すると、RPC の処理にオーバーヘットが発生し、応答待ちが発生するタイミングが多くなりますので、大量の印刷処理を行うプリント サーバーなどでは、パフォーマンスが若干低下するなどの影響が出ることがあります。
RPC 通信で使用可能なトランスポートの違いについて説明があります。
Connection-Oriented RPC Transportshttp://msdn.microsoft.com/en-us/library/cc243784.aspx
こちらは、EnableProtocols レジストリ値に関する技術情報ご案内です。
Windows 7 clients may not be able to print to Windows Server 2003 print serverhttp://support.microsoft.com/kb/2269469/
これら情報が、少しでもお役に立てれば幸いです。
それではまた。