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

977
saygon

Я хотел бы использовать 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 
2
У меня нет удобной SD-карты, поэтому я не могу проверить свое предложение. Но попробуйте изменить `if ($ eventType -eq 2)` на `if ($ eventType -eq 4)`. Затем сценарий отслеживает не «прибытие устройства» (добавлена ​​новая буква диска?), А скорее на стыковку нового оборудования. Я также предполагаю, что вы уже изменили `if ($ driveLetter -eq 'E:' -and $ driveLabel -eq 'Test 1')` для своих собственных нужд? nixda 7 лет назад 0
Привет никсда и спасибо за ваш ответ. Я уже модифицировал скрипт, но он все еще не обнаруживает SD-карту. Основная причина (я думаю) того, что скрипт не работает, заключается в том, что если у вас есть встроенное устройство чтения SD-карт и вы извлекаете SD-карту, вы все равно можете найти устройство чтения карт в разделе «Управление дисками» с назначенной буквой. saygon 7 лет назад 0
Я думаю, что вы правы насчет буквы диска. Вот почему я думал, что прибытие устройства не будет работать. Теперь, когда я прочитал [MSDN] (https://msdn.microsoft.com/en-us/library/aa394124 (v = vs.85) .aspx) еще раз, он говорит * включает изменения в конфигурации оборудования (стыковка и расстыковка) *. Так что стыковка, вероятно, тоже не сработает. Хммм nixda 7 лет назад 0

0 ответов на вопрос