Определить, была ли вставлена 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
У меня нет удобной 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 ответов на вопрос
Похожие вопросы
-
12
Почему папка / winsxs становится такой большой и ее можно уменьшить?
-
2
Повышенные привилегии для запуска приложений в Windows?
-
14
PDF Viewer в Windows
-
-
7
Какие службы Windows можно безопасно отключить?
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
1
Windows теряет макет экрана
-
1
Есть ли способ предотвратить установку / обновление, чтобы засорять мой жесткий диск загадочными пап...
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
6
Просмотр журнала в Windows
-
3
Фоновая проблема Windows с двумя экранами