function Eject-FlashDrive { Write-Host "请选择要删除的U盘:" foreach ($device in (Get-WmiObject -Class Win32_LogicalDisk –filter "DriveType=2") | Out-GridView -PassThru ) { $sa = new-object -com Shell.Application $sa.Namespace(17).items() | ForEach { If ($_.Name -match $device.$DeviceID ) { $_.InvokeVerb("Eject") } } [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sa) Remove-Variable sa } }
本文链接: https://www.pstips.net/eject-u-drive.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
Shell.Application果然很强大,请教下如何学习它的一些细节功能。1.关于这种方法“$sa.Namespace(17)”请问你是怎么找到的。为什么这里是填17?2. [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sa) 我猜是销毁释放内存,能否解释下这句话的作用?谢谢
更新至:http://www.pstips.net/call-shell-application.html
还是不虚此行的
为什么我的光驱会被弹出
文章中的脚本会将可弹出的设备列在表格中,由你自己决定弹出那个。你可能选择的就是光驱。
我看到弹出那个是一个表格,但是好像就只有一个设备就是我的U盘
但是我看见表格里只有一个设备,是我的U盘