I want to implement a function is about monitoring format volume
.
Is there any way to monitor the event of volume be formatted by using WMI or without using WMI?
I can use Register-WmiEvent
to register a Wmi Event monitor
to detect the plug/unplug of device (Below is sample code).
#Query for finding all device arrival events
$query = "SELECT * FROM Win32_VolumeChangeEvent WHERE EventType=2"
#Register an event subscription
Register-WmiEvent -SourceIdentifier "Qsirch-Monitor-Volume-Add" -Query $query -MessageData $yao -Action {
$volumeName = (Get-WMIObject -Class Win32_LogicalDisk -Filter "DeviceID='$($Event.SourceEventArgs.NewEvent.DriveName)'").VolumeName
Write-Host "$($Event.SourceEventArgs.NewEvent.DriveName) ($($volumeName)) was added"
} | Out-Null
When user create a new volume, this will print D: (New Volume) was added
.
So can I use Wmi Event
to achieve my goal?
Print D: was formatting
when volume D was formatting.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…