ฉันใช้สคริปต์ PowerShell ต่อไปนี้เพื่อตรวจสอบเมื่อมีการติดตั้งไดรฟ์ข้อมูลเฉพาะเพื่อให้ฉันสามารถเรียกใช้สคริปต์ที่จะย้ายไฟล์จากเครื่องของฉันไปยังอุปกรณ์ (ฉันไม่ทราบมากเกี่ยวกับสคริปต์ PowerShell ฉันพบออนไลน์)
#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 ($driveLetter -eq 'G:' -and $driveLabel -eq 'My Book')
{
write-host (get-date -format s) " Starting task in 5 seconds..."
start-sleep -seconds 5
start-process "F:\copy_backups.bat"
}
}
Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier volumeChange
G เป็นฟิสิคัลภายนอก hdd และ F เป็นคอนเทนเนอร์ truecrypt ภายใน G เมื่อสคริปต์ตรวจพบว่าอุปกรณ์ถูกต้องถูกเมาท์เป็น G มันจะหลับ 5 วินาทีเพื่อให้เวลา truecrypt ในการเมานต์ F แล้วรันสคริปต์ที่พบใน F กิจกรรมการเปลี่ยนแปลงปริมาณนั้นจะถูกสร้างขึ้นเฉพาะเมื่อมีการเชื่อมต่อ / ยกเลิกการเชื่อมต่อไดรฟ์ทางกายภาพ (อย่างน้อยนั่นเป็นเพียงครั้งเดียวที่สคริปต์ได้รับเหตุการณ์) เนื่องจากการเชื่อมต่อ G และการติดตั้ง / ยกเลิกการติดตั้ง F ฉันต้องการที่จะตรวจสอบเมื่อมีการติดตั้งคอนเทนเนอร์ truecrypt โดยไม่มีอะไรเปลี่ยนแปลง สิ่งนี้จะต้องเป็นไปได้ในระดับหนึ่งเพราะ windows explorer จะอัพเดตไดรฟ์ของมันจะปรากฏขึ้นเมื่อคอนเทนเนอร์ถูกเมาท์หรือถอดออก ขอบคุณสำหรับความช่วยเหลือ