對於我來說它的工作原理,
Test-Path d:\
返回true,它只是需要一些時間。
當卷出現您可以使用它來接收事件:
$query = "SELECT * FROM Win32_VolumeChangeEvent"
Register-WMIEvent -Query $query -Action {$global:a=$Args[0];$global:b=$Args[1];$global:c=$event;write-host "done"}
# Now plug your stick
# Then have a look to :
$b.NewEvent
__GENUS : 2
__CLASS : Win32_VolumeChangeEvent
__SUPERCLASS : Win32_DeviceChangeEvent
__DYNASTY : __SystemClass
__RELPATH :
__PROPERTY_COUNT : 4
__DERIVATION : {Win32_DeviceChangeEvent, __ExtrinsicEvent, __Event, __IndicationRelated...}
__SERVER :
__NAMESPACE :
__PATH :
DriveName : D:
EventType : 2
SECURITY_DESCRIPTOR :
TIME_CREATED : 130368370362465996
PSComputerName :
# Now unplug your stick
# Then have a look to :
$b.NewEvent
__GENUS : 2
__CLASS : Win32_VolumeChangeEvent
__SUPERCLASS : Win32_DeviceChangeEvent
__DYNASTY : __SystemClass
__RELPATH :
__PROPERTY_COUNT : 4
__DERIVATION : {Win32_DeviceChangeEvent, __ExtrinsicEvent, __Event, __IndicationRelated...}
__SERVER :
__NAMESPACE :
__PATH :
DriveName : D:
EventType : 3
SECURITY_DESCRIPTOR :
TIME_CREATED : 130368373636563263
PSComputerName :
謝謝您的答覆。我必須在我使用的PowerShell版本(3.5)和操作系統(Windows 7)之間有一些不兼容性。你使用的是什麼版本的Powershell和Windows? – user3309111
我在PowerShell 3.0和PowerShell 4.0上測試它(不知道PowerShell 3.5)。你的麻煩可能來自電腦的USB驅動程序,你可以嘗試另一個。 – JPBlanc