使用PowerShell WMI或Diskpart检测所选磁盘上的未安装卷

时间:2012-01-22 01:50:47

标签: windows-7 powershell command-line wmi-query wmic

如何将已卸载的卷链接到物理磁盘?

假设我需要在{3}或Diskpart或PowerShell WMI编号的磁盘3上查找并挂载未安装的卷。如何通过脚本找出未安装的磁盘3卷?或者,或者,给定的未安装卷(没有DriveLetter)驻留在哪个物理磁盘上?

卸载卷时,不存在逻辑磁盘或挂载点。我想可以使用GetRelated方法找到关系,但我找不到适合该任务的代码示例。

2 个答案:

答案 0 :(得分:2)

尝试一下,它会:

  • 使用WMI
  • 获取给定驱动器索引$targetDisk的所有未安装分区
  • 使用diskpart脚本将目标磁盘上的已发现分区装载到下一个可用的驱动器号。

使用GetRelated方法就是了解您需要关联的内容。它有助于了解WMI类代表您要查找的内容Win32_DiskPartition。在您的情况下,您希望找到与逻辑磁盘(未安装)无关的分区,因此我们会查找没有关联Win32_DiskPartition的{​​{1}}实例。

由于您只想在特定物理磁盘上卸载卷,因此我们需要进一步关联类。为此,我们需要获取Win32_LogicalDisk关联的Win32_DiskPartition实例。

Win32_DiskDrive

答案 1 :(得分:0)

将此代码集成到上面的答案中:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_Volume Where Name = 'D:\\'")

For Each objItem in colItems
    objItem.AddMountPoint("W:\\Scripts\\")
Next

它通过使用Volume DeviceID而不是DriveLetter在Windows 7 PowerShell中查找,并将卷与磁盘3相关联,如上面的答案所示。可以使用类似的方法(AddMountPoint或Mount),但不使用Diskpart。