如何判断驱动器是DVD还是虚拟驱动器,测试路径是不够的?

时间:2015-06-24 12:38:28

标签: powershell

作为学习使用PowerShell的一部分,我一直在研究如何找到免费的驱动器号。这个SO question是一个很好的起点: 但是,如果PC上有DVD驱动器和/或虚拟驱动器,那么真正的管道

ls function:[d-z]: -n | where { !(test-path $_) } 

将声称这些驱动器的字母是免费的(因为没有安装任何内容)。是否有一些简单的算法将这些驱动器从列表中取出 - 假设该命令必须在所有机器上运行,而不是使用明确的驱动器存在知识?

1 个答案:

答案 0 :(得分:1)

WMI类Win32_CDROMDrive已经知道存在的cd / dvd rom驱动器。使用我们可以排除那些生成驱动器列表的信息。

$cddrives = (Get-WmiObject Win32_CDROMDrive).Drive
ls function:[d-z]: -N | Where-Object {$cddrives -notcontains $_ -and !(test-path $_)}

仅供参考ls = Get-ChildItem-N是对参数-Name

的明确简短参考