我想通过 PowerShell 弹出/卸载外部 USB 驱动器。
意思是,我想准确复制这些 UI 操作的行为(通过 Windows UI 弹出驱动器):
目前我正在使用这个脚本:
$drive_letter="G"
$vol = get-wmiobject -Class Win32_Volume | where{$_.Name -eq $drive_letter+":\"}
$vol.DriveLetter = $null
$vol.Put()
$vol.Dismount($false, $false)
Run Code Online (Sandbox Code Playgroud)
但是,当我再次连接驱动器时,它不会显示在驱动器列表中。我认为这是因为驱动器号与驱动器的 GUID 相关联,并且因为:$vol.DriveLetter = $null。
我也尝试过这个:
$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("G:").InvokeVerb("Eject")
Run Code Online (Sandbox Code Playgroud)
但没有成功。
对于它的价值,$driveEject.Namespace(17).ParseName("G:")回报:
Application : System.__ComObject
Parent : System.__ComObject
Name : Backup (G:)
Path : G:\
GetLink :
GetFolder : System.__ComObject
IsLink : False
IsFolder : True
IsFileSystem : True
IsBrowsable : False
ModifyDate : 12/30/1899 12:00:00 …Run Code Online (Sandbox Code Playgroud)