Определить, была ли вставлена ​​SD-карта через PowerShell

Я хотел бы использовать PowerShell для определения наличия SD-карты. После обнаружения SD-карты сценарий PowerShell должен автоматически скопировать некоторые файлы на SD-карту.

Я уже нашел и попробовал скрипт PS, но он обнаруживает только флешки.

Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange
write-host (get-date -format s) " Beginning script..."
do{
    $newEvent = Wait-Event -SourceIdentifier volumeChange
    $eventType = $newEvent.SourceEventArgs.NewEvent.EventType
    $eventTypeName = switch($eventType)
    {
        1 {"Configuration changed"}
        2 {"Device arrival"}
        3 {"Device removal"}
        4 {"docking"}
    }
    write-host (get-date -format s) " Event detected = " $eventTypeName
    if ($eventType -eq 2)
    {
        $driveLetter = $newEvent.SourceEventArgs.NewEvent.DriveName
        $driveLabel = ([wmi]"Win32_LogicalDisk='$driveLetter'").VolumeName
        write-host (get-date -format s) " Drive name = " $driveLetter
        write-host (get-date -format s) " Drive label = " $driveLabel
        # Execute process if drive matches specified condition(s)
        if ($driveLetter -eq 'E:' -and $driveLabel -eq 'Test 1')
        {
            write-host (get-date -format s) " Starting task in 3 seconds..."
            start-sleep -seconds 3
            start-process "E:test.bat"
        }
    }
    Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier volumeChange

1 ответ

Когда вы открываете USB или SD-карту в Windows, она регистрирует запуск "Службы виртуальных дисков" в журнале системных событий в Windows.

С этим в мыслях:

  1. Вставьте SD-карту и откройте системный журнал в Event Viewer.
  2. Вверху (или около верха) будет "Служба виртуальных дисков".
  3. Выделите эту запись, а затем нажмите на вкладку "Подробности" ниже.
  4. При необходимости нажмите на знак плюс рядом с "Система".
  5. Внутри будет правильный "EventID" для SD-карт, поэтому используйте его для своего скрипта.
  6. Теперь щелкните правой кнопкой мыши ту же "Службу виртуального диска" (из шага 2).
  7. Выберите "Прикрепить задачу к этому событию..."
  8. Перейдите через "Мастер создания основных задач" к "Действие" и выберите "Запустить программу".
  9. Введите путь к сценарию PowerShell и выберите "Готово".
Другие вопросы по тегам