Script Powershell para iniciar o processo no evento USB não funciona devido ao dispositivo ter várias partições

0

Eu usei este guia para configurar um Script do PowerShell que deve executar meu software de backup quando eu conecto um dispositivo com um determinado rótulo, no entanto, isso não parece funcionar no meu caso devido a minha unidade externa ter múltiplas partições e o script detectar o evento apenas para a partição que não é necessária e ignorar a necessária. O que posso fazer para contornar esse problema? Eu incluí o mesmo script que usei abaixo, devo acrescentar que não tive nenhuma experiência anterior com o PowerShell. Obrigado antecipadamente!

#Requires -version 2.0
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 ($driveLabel -eq 'MyPassport')
{
write-host (get-date -format s) " Starting task in 3 seconds..."
start-sleep -seconds 3
start-process "C:\Program Files\FreeFileSync\FreeFileSync.exe" "C:\FFS Config\Batch\iTunes.ffs_batch"
}
}
Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier volumeChange
    
por Romtromon 29.01.2018 / 05:39

0 respostas