VBScript
Некоторое время назад я устранял подобную проблему, и по этому случаю я написал простой сценарий. Чтобы запустить его, сохраните скрипт в новом файле .vbs
и запустите его через командную строку:
cscript /nologo "X:\Path\to\script.vbs"
Вот код:
If WScript.Arguments.Count = 0 Then
maxEvents = 10
Else
maxEvents = WScript.Arguments(0)
End If
Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
Set wmiQuery = wmiService.ExecNotificationQuery _
("SELECT * FROM __InstanceDeletionEvent WITHIN 1" & _
"WHERE TargetInstance ISA 'Win32_PnPEntity'")
separator = String(40, "-")
For i = 1 To maxEvents
With wmiQuery.NextEvent.TargetInstance
WScript.Echo separator & _
vbCrLf & "Event " & i & " - " & Now & _
vbCrLf & separator & _
vbCrLf & .Name & _
vbCrLf & .DeviceID
End With
Next
Как это устроено
Необязательный параметр используется для установки максимального количества событий для сбора. Если сумма не указана, будут записаны первые 10 событий перед выходом.
Затем скрипт продолжит регистрацию провайдера событий, нацеленного на устройства Plug and Play, которые удаляются или отключаются. Интервал опроса установлен на 1 секунду.
Каждый раз, когда появляется уведомление о событии, скрипт выводит результаты на экран, пока не будет достигнута сумма события. Информация включает в себя: номер события; Дата и время; имя устройства и идентификатор.
дальнейшее чтение