Я пытаюсь написать vbscript, который можно протолкнуть через Kace K1000 и запустить в фоновом режиме на машинах, которые есть в нашей сети, чтобы обнаруживать, когда пользователь подключает флэш-диск / внешний диск, и проверять, не зашифрованы ли они.

Если диск не зашифрован, отправьте запрос / сообщение, в котором пользователю предлагается зашифровать диск. Если диск уже зашифрован, ничего не делайте, действуйте как обычно. ОС, с которой я работаю, это Windows 7 и 10.

Сценарий, который у меня пока есть:

    strComputer = "." 

//check instant event for usb detection

    Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set wmiEvent = wmi.ExecNotificationQuery("select * from __InstanceOperationEvent within 1 where TargetInstance ISA 'Win32_PnPEntity' and TargetInstance.Description='USB Mass Storage Device'")

//check to see if the drive is encrypted 

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2\Security\MicrosoftVolumeEncryption") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_EncryptableVolume",,48) 

    While True

    Case "__InstanceCreationEvent"  

    For Each objItem in colItems 

    If objItem.ProtectionStatus = 0 then

    Wscript.Echo "Unencrypted drive is detected, please encrypt drive " & objItem.DriveLetter

    else 
        end if 
    Next
    Wend

Я понимаю, что это не работает в данный момент, и я очень плохо знаком с vbscript и wmi, поэтому любая помощь будет отличной. Я дошел до поисков сценария, пока не решил обратиться за помощью.

Если у вас, ребята, есть какой-то другой способ сделать то, что я пытаюсь сделать, это тоже было бы здорово. Мы используем kace k1000 для управления нашими машинами, поэтому я должен быть в состоянии протолкнуть сценарий туда.

Спасибо

1 ответ1

0

Следующий (частично прокомментированный) скрипт работает в среде Windows, и я не могу предвидеть взаимодействие kace k1000 :

option explicit
On Error GoTo 0
Dim strResult, strComputer, wmi, wmiEvent , objWMIService, objItem, colItems, objEventObject
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer _
  & "\ROOT\CIMV2\Security\MicrosoftVolumeEncryption")       ' requires elevation
Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
' //check instant event for Logical Disk detection
Set wmiEvent = wmi.ExecNotificationQuery( _
    "select * from __InstanceOperationEvent within 1 " _
  & "where TargetInstance ISA 'Win32_LogicalDisk'")
While True
    ''  tell the script to wait until the next event of interest occurs
    Set objEventObject = wmiEvent.NextEvent()
    Select Case objEventObject.Path_.Class
        Case "__InstanceCreationEvent"
          '//check to see if the drive is encrypted 
          Set colItems = objWMIService.ExecQuery( _
              "SELECT * FROM Win32_EncryptableVolume",,48) 
          For Each objItem in colItems 
            If objItem.ProtectionStatus = 0 then
              strResult = strResult & vbNewLine & ":" & _
                objEventObject.TargetInstance.Description & _
                  ": Unencrypted drive " & objItem.DriveLetter
            End If 
          Next
        Case "__InstanceDeletionEvent"     '' merely for debugging
          strResult = strResult & vbNewLine & ":" & _
            objEventObject.TargetInstance.Description & ": An event was just deleted" 
    End Select
    If strResult <> "" Then Wscript.Echo Wscript.ScriptName & vbNewLine & strResult
    strResult = ""
 Wend

'' REMARK ''
'' //check instant event for usb detection
'' -- unsuccessful as `TargetInstance.Description` could vary for different drives
' Set wmiEvent = wmi.ExecNotificationQuery( _
'     "select * from __InstanceOperationEvent within 1 " _
'   & "where TargetInstance ISA 'Win32_PnPEntity'" _
'   & " and ( TargetInstance.Description='USB Mass Storage Device'" _
'   & "    or TargetInstance.Description='USB Flash Memory'" _ 
'   & "    or TargetInstance.Description='Disk drive')")

Вот исчерпывающее объяснение: как можно отслеживать различные типы событий с помощью всего одного сценария и как определить, когда подключается съемный диск

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .