Stellen Sie fest, ob eine SD-Karte über PowerShell eingelegt wurde

1103
saygon

Ich möchte PowerShell verwenden, um festzustellen, ob eine SD-Karte vorhanden ist. Nachdem eine SD-Karte erkannt wurde, sollte ein PowerShell-Skript einige Dateien automatisch auf die SD-Karte kopieren.

Ich habe bereits ein PS-Skript gefunden und ausprobiert, aber es werden nur USB-Sticks erkannt.

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
Ich habe keine SD-Karte zur Hand, deshalb kann ich meinen Vorschlag nicht testen. Versuchen Sie jedoch, "if ($ eventType -eq 2)" in "if ($ eventType -eq 4)" zu ändern. Das Skript achtet dann nicht auf * Geräteankunft * (neuer Laufwerksbuchstabe hinzugefügt?), Sondern auf das Andocken neuer Hardware. Ich gehe auch davon aus, dass Sie bereits 'if ($ driveLetter -eq' E: '- und $ driveLabel -eq' Test 1 ') `an Ihre eigenen Bedürfnisse angepasst haben. nixda vor 8 Jahren 0
Hallo nixda und danke für deine Antwort. Ich habe das Skript bereits geändert, es wird jedoch keine SD-Karte erkannt. Der Hauptgrund (denke ich), warum das Skript nicht funktioniert, ist, wenn Sie über einen integrierten SD-Kartenleser verfügen und die SD-Karte auswerfen. Sie können den Kartenleser jedoch immer unter zugeordnetem Buchstaben unter Datenträgerverwaltung finden. saygon vor 8 Jahren 0
Ich denke, du hast recht mit dem Laufwerksbuchstaben. Deshalb dachte ich, dass die Ankunft von Geräten nicht funktionieren wird. Nachdem ich jetzt [MSDN] (https://msdn.microsoft.com/de-de/library/aa394124 (v = vs.85) .aspx) gelesen habe, heißt es, dass * Änderungen in der Hardwarekonfiguration (Andocken und Entkoppeln) enthält. *. Das Andocken wird also wahrscheinlich auch nicht funktionieren. Hmmm nixda vor 8 Jahren 0

0 Antworten auf die Frage