イベントをリッスンするSystem.Management.WqlEventQueryがあります。"__InstanceOperationEvent"
このイベントは、、、およびイベントの基本クラスであるため"__InstanceCreationEvent"
、3 つすべてをキャプチャします。"__InstanceDeletionEvent"
"__InstanceModificationEvent"
WqlEventQuery.Conditionがの場合、"TargetInstance ISA 'Win32_LogicalDisk'"
予想どおり、論理ディスクのイベントのみを取得します。
ただし、WqlEventQuery.Conditionがの場合でも、 Win32_LogicalDiskイベント"(TargetInstance ISA 'Win32_LogicalDisk' or TargetInstance ISA 'Win32_MappedLogicalDisk')"
しか取得できません。または、 CIM_LogicalDiskがWin32_LogicalDiskとWin32_MappedLogicalDiskの両方の基本クラスであるため、WqlEventQuery.Conditionを として使用することもできます。残念ながら、この代替クエリもWin32_LogicalDiskイベントのみを返します。"TargetInstance ISA 'CIM_LogicalDisk'"
要約すると、 Win32_MappedLogicalDiskイベントをキャプチャできないようです。私の推測では、ネットワーク共有を右クリックしてネットワーク ドライブとして新しいドライブ文字にマップすると、このようなイベントが生成されるはずです。この新しいマップされたドライブがエクスプローラーに正常に表示されているにもかかわらず、私のプログラムはイベントを受け取りません。
私の仮定は間違っていますか?Win32_MappedLogicalDriveとは何ですか、またはDriveTypeが "NetworkDrive"であるWin32_LogicalDriveとの違いは何ですか? WMI を使用してネットワーク ドライブの接続/切断のイベントをキャプチャするにはどうすればよいですか?
更新:この問題について詳しく投稿しました : http://social.technet.microsoft.com/Forums/en-US/ocsmanagement/thread/1c92f08b-b9c9-4f27-a1bb-0c16a8868d19管理者アカウントで重複したドライブ マッピングを作成する以外に回避策はありません。