Вверх ↑
Ответов: 1087
Рейтинг: 223
#1: 2026-03-28 11:29:56 ЛС | профиль | цитата
Gitarist,
  1. Схема выдаёт все подключаемые устройства в порт USB

Add(MainForm,2953706,77,105)
{
Point(onClose)
link(onCreate,9196942:doString,[])
link(onClose,9170472:doConsoleTerminate,[])
}
Add(FormatStr,9196942,126,119)
{
Mask="$query = """SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBControllerDevice'"""\r\n\r\nRegister-CimIndicationEvent -Query $query -SourceIdentifier 'USBArrival' -Action {$instance = $EventArgs.NewEvent.TargetInstance;Write-Host $($instance.Dependent)} | Out-Null\r\n\r\nwhile ($true) { Start-Sleep 1 }"
link(onFString,9170472:doConsoleExec,[])
}
Add(WinExec,9170472,182,105)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
link(onConsoleResult,2020972:doWork2,[])
link(onConsoleError,2020972:doWork3,[(235,132)])
}
Add(Memo,1346352,357,119)
{
Left=75
Top=45
Width=280
Height=200
Align=5
Font=[Lucida Console,12,0,0,204]
Antialiased=1
ScrollBars=3
}
Add(HubEx,2020972,231,119)
{
link(onEvent,12632313:doCharset,[])
}
Add(Charset,12632313,259,119)
{
link(onCharset,7052637:doReplace,[])
}
Add(Replace,7052637,308,119)
{
SubStr="\n"
DestStr="\r\n"
link(onReplace,1346352:doAdd,[])
}

  2. Схема выдаёт только HID устройства (клавиатура, мышь и т.д.) подключаемые к порт USB

Add(MainForm,2929814,126,105)
{
Point(onClose)
link(onCreate,9196942:doString,[])
link(onClose,9170472:doConsoleTerminate,[])
}
Add(FormatStr,9196942,175,119)
{
Mask="$query = @' \r\nSELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity' AND (TargetInstance.PNPClass = 'Keyboard' OR TargetInstance.PNPClass = 'HIDClass' OR TargetInstance.PNPClass = 'Mouse')\r\n'@\r\nRegister-CimIndicationEvent -Query $query -SourceIdentifier 'HID_Arrival' -Action {\r\n $instance = $EventArgs.NewEvent.TargetInstance\r\n $time = Get-Date -Format 'HH:mm:ss'\r\n \r\n Write-Host """[$time] Обнаружено устройство!"""\r\n Write-Host """ Тип: $($instance.PNPClass)"""\r\n Write-Host """ Имя: $($instance.Caption)"""\r\n Write-Host """ ID: $($instance.DeviceID)"""\r\n Write-Host """---------------------------"""\r\n} | Out-Null\r\n\r\nwhile ($true) { Start-Sleep 1 }"
link(onFString,9170472:doConsoleExec,[])
}
Add(WinExec,9170472,231,105)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
link(onConsoleResult,2020972:doWork2,[])
link(onConsoleError,2020972:doWork3,[(284,132)])
}
Add(Memo,1346352,406,119)
{
Left=75
Top=45
Width=280
Height=200
Align=5
Font=[Lucida Console,12,0,0,204]
Antialiased=1
ScrollBars=3
}
Add(HubEx,2020972,280,119)
{
link(onEvent,12632313:doCharset,[])
}
Add(Charset,12632313,308,119)
{
link(onCharset,7052637:doReplace,[])
}
Add(Replace,7052637,357,119)
{
SubStr="\n"
DestStr="\r\n"
link(onReplace,1346352:doAdd,[])
}

  3. Выдаёт "Y" при подключении Mass Storage device и "N" при подключении всех остальных устройств.

Add(MainForm,2929814,231,105)
{
Point(onClose)
link(onCreate,9196942:doString,[])
link(onClose,9170472:doConsoleTerminate,[])
}
Add(FormatStr,9196942,280,119)
{
Mask="$query = 'SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2'\r\n\r\n$action = {\r\n $usbDrives = Get-CimInstance Win32_PnPEntity | Where-Object { $_.Service -eq 'USBSTOR' }\r\n\r\n if ($usbDrives) {\r\n Write-Host 'Y'\r\n } else {\r\n Write-Host 'N'\r\n }\r\n}\r\n\r\nGet-EventSubscriber -SourceIdentifier 'USBMonitor' -ErrorAction SilentlyContinue | Unregister-Event\r\nRegister-WmiEvent -Query $query -SourceIdentifier 'USBMonitor' -Action $action | Out-Null\r\nwhile($true) { Start-Sleep -Seconds 1 }\r\n"
link(onFString,9170472:doConsoleExec,[])
}
Add(WinExec,9170472,336,105)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleTerminate)
link(onConsoleResult,2020972:doWork2,[])
link(onConsoleError,2020972:doWork3,[(389,132)])
}
Add(Memo,1346352,511,119)
{
Left=75
Top=45
Width=280
Height=200
Align=5
Font=[Lucida Console,12,0,0,204]
Antialiased=1
ScrollBars=3
}
Add(HubEx,2020972,385,119)
{
link(onEvent,12632313:doCharset,[])
}
Add(Charset,12632313,413,119)
{
link(onCharset,7052637:doReplace,[])
}
Add(Replace,7052637,462,119)
{
SubStr="\n"
DestStr="\r\n"
link(onReplace,1346352:doAdd,[])
}


P.S. Выкладывать на форум схему, которая может заблокировать клавиатуру и мышь у пользователя, это такое себе…
карма: 20

0