2016-07-28 349 views
0

在win10上,我们有可能挂载iso文件。 对于每个安装的iso系统创建虚拟CD/DVD-ROM驱动器。 看到这些驱动器,我们可以使用PowerShell:如何删除虚拟CD/DVD-ROM

PS C:\> gwmi win32_cdromdrive 

Caption Drive Manufacturer VolumeName 
------- ----- ------------ ---------- 
Microsoft Virtual DVD-ROM Volume{b62e0d58-541d-11e6-a1f7-005056873534} (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM Volume{d2c8b686-5410-11e6-a1f6-005056873534} (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM CdRom13 (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM CdRom14 (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM CdRom15 (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM CdRom16 (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM CdRom19 (Standard CD-ROM drives) 
Microsoft Virtual DVD-ROM Volume{b62e1bc8-541d-11e6-a1f7-005056873534} (Standard CD-ROM drives) 
NECVMWar VMware IDE CDR10 ATA Device D: (Standard CD-ROM drives) 

现在我的问题是如何使用WINAPI/PowerShell的任何删除这些设备?

我知道,当你使用Dismount-DiskImage卸载特定映像时,它们被删除,但我想要“强制”选项。

回答

0
$sh = New-Object -ComObject "Shell.Application" 
$sh.Namespace(17).Items() | 
    Where-Object { $_.Type -eq "CD Drive" } | 
     foreach { $_.InvokeVerb("Eject") } 

位置对象{$ _。键入-eq“CD驱动器”}你能正确的ISO驱动器上点击你所看到的文件系统?

+0

工程就像一个魅力thx! 如果有人想要为特定驱动程序触发此操作 '$ driveEject = New-Object -comObject Shell.Application' '$ driveEject.Namespace(17).ParseName(“E:”)。InvokeVerb(“Eject” )' – user3305379