Тема: VBS: Не работает подписка на события WMI
Нижеуказанный код постоянной подписки на событие WMI использует в качестве потребителя CommandLineEventConsumer.
VBScript:
Set objService = GetObject("WINMGMTS:{impersonationLevel=Impersonate}!\\.\ROOT\CIMV2")
'/Создание фильтра событий(вставка USB-накопителя)/
'---------------------------------------------------------------------------
Set objFilter = objService.Get("__EventFilter").SpawnInstance_()
With objFilter
.Name = "MyEvent"
.QueryLanguage = "WQL"
.EventNamespace = "ROOT\CIMV2"
.Query = "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_LogicalDisk' AND TargetInstance.DriveType=2"
Set objFilterPath = .Put_()
.Put_()
End With
'/Потребитель событий/
'---------------------------------------------------------------------------
Set objConsumer = objService.Get("CommandLineEventConsumer").SpawnInstance_()
With objConsumer
.Name = "MyEventCallback"
.CommandLineTemplate = "cmd.exe /c calc"
.RunInteractively = True
.WorkingDirectory = "C:\WINDOWS\SYSTEM32\"
Set objConsumerPath = .Put_()
End With
'/Связка фильтра и потребителя/
'---------------------------------------------------------------------------
Set objBinding = objService.Get("__FilterToConsumerBinding").SpawnInstance_()
With objBinding
.Filter = objFilterPath
.Consumer = objConsumerPath
.Put_()
End With
MsgBox "Подписка" & vbCRLF & _
objFilterPath.Path & vbCRLF & _
objConsumerPath.Path, vbSystemModal + vbInformation, "Subscribe"При возникновении события вставки USB-flash накопителя должен создаваться новый процесс прописанный в параметрах экземпляра CommandLineEventConsumer. Однако ничего не работает, а в протокол выводится следующее:
wbemcore.log
GetUserDefaultLCID failed, restorting to system verion
wbemess.log
Could not determine logged on user
Failed to CreateProcess cmd.exe /c calc. Error 0x80041001
Dropping event destined for event consumer CommandLineEventConsumer="MyEventCallback" in namespace //./root/CIMV2
Failed to deliver an event to event consumer CommandLineEventConsumer="MyEventCallback" with error code 0x80041001. Dropping event.
В системе под учетной записью администратора, WinXP. Файлы scrcons.mof, wbemcons.mof - скомпиллированы.
Подскажите, в чем может заключаться причина неработоспособности скрипта?

