특정 볼륨이 마운트 된시기를 감지하기 위해 다음 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는 G 내의 truecrypt 컨테이너입니다. 스크립트가 올바른 장치가 G로 마운트 된 것을 감지하면 5 초 동안 휴면하여 F를 마운트하는 데 truecrypt 시간을 준 다음 F에서 찾은 스크립트를 실행합니다. 볼륨 변경 이벤트는 물리적 드라이브가 연결 / 연결 해제 된 경우에만 생성됩니다 (적어도 스크립트가 이벤트를 수신하는 유일한 시간 임). G 연결을 그대로두고 F를 마운트 / 마운트 해제해도 스크립트가 트리거되지 않기 때문입니다. 다른 변경없이 truecrypt 컨테이너가 마운트 된시기를 감지하고 싶습니다. 컨테이너가 마운트 또는 마운트 해제 될 때 Windows 탐색기가 드라이브 표시를 업데이트하므로 일부 레벨에서는 이것이 가능해야합니다. 도와 주셔서 감사합니다.