2

I am new to powershell and I am writing a script that will do something when a removable drive is connected. I have tried the script with three usb flash drives and everything works great. I tried with my toshiba canvio basic external hdd and it does not work(the task is not executed). I am using a windows 10 computer.

This is the powershell command i use to check for usb activity

 $wmiParameters = @{
  Query            = "select * from __InstanceCreationEvent within 5 where TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 2"
  SourceIdentifier = "USBDrive"
  MessageData      = "Test"
  TimeOut          = 500
  Action           = { & $PSScriptRoot\script.ps1 }
}
Register-WmiEvent @wmiParameters

I also noticed that when the execute the cmdlet Get-Volume the drivetype of the toshiba hdd is fixed but my the flash drives have drivetype removable and i don't know how the affects my script or how to fix it.

Results for cmdlet Get-Volume

How can i modify my code so it can capture my external hdd or how can i modify my settings to so that my external hdd is seen as removable drive? Thanks you.

alexa
  • 21
  • 1
  • TargetInstance.DriveType = 2 is the culprit, change it to accept 2 & 3 (Local Disk) https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicaldisk and you're golden. – Martheen Jan 04 '21 at 10:07
  • @Martheen Thank very much. It worked. – alexa Jan 04 '21 at 19:55
  • Great, please create a self answer with your working code to help others who will find this question in the future https://stackoverflow.com/help/self-answer – Martheen Jan 05 '21 at 04:49

0 Answers0