VBScript
Cách đây một thời gian, tôi đã khắc phục sự cố tương tự và nhân dịp này tôi đã viết một kịch bản đơn giản. Để chạy nó, lưu tập lệnh trong một .vbstệp mới và chạy nó thông qua một dấu nhắc lệnh :
cscript /nologo "X:\Path\to\script.vbs"
Đây là mã:
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
Làm thế nào nó hoạt động
Một tham số tùy chọn được sử dụng để đặt số lượng sự kiện tối đa cần thu thập. Nếu không có số tiền được chỉ định, nó sẽ ghi lại 10 sự kiện đầu tiên trước khi thoát.
Tập lệnh sau đó sẽ tiến hành đăng ký một nhà cung cấp sự kiện nhắm mục tiêu các thiết bị Plug and Play bị xóa hoặc rút phích cắm. Khoảng thời gian bỏ phiếu được đặt thành 1 giây.
Mỗi khi có thông báo sự kiện, tập lệnh sẽ in kết quả trên màn hình cho đến khi đạt được số lượng sự kiện. Thông tin bao gồm: số sự kiện; ngày và giờ; tên thiết bị và ID.
đọc thêm