如何获取特定驱动器wscript的信息 [英] how to get information for specific drive wscript
本文介绍了如何获取特定驱动器wscript的信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我发现下面的代码几乎完全符合我的要求,但对于我系统中的每个驱动器。我只想为一个特定的驱动器获取它。有没有办法修改以下
strComputer =。
设置objWMIService = GetObject(winmgmts:_
&{impersonationLevel = impersonate}!\\& strComputer&\\\\\\\\\\\\\\\\\\\\设置colDiskPartitions = objWMIService.ExecQuery _
(从Win32_DiskPartition中选择*)
对于colDiskPartitions中的每个objPartition
Wscript.EchoBlock Size:& vbTab& objPartition.BlockSize
Wscript.EchoBootable:& vbTab& objPartition.Bootable
Wscript.EchoBoot Partition:& vbTab& objPartition.BootPartition
Wscript.EchoDescription:& vbTab& objPartition.Description
Wscript.EchoDevice ID:& vbTab& objPartition.DeviceID
Wscript.EchoDisk Index:& vbTab& objPartition.DiskIndex
Wscript.EchoIndex:& vbTab& objPartition.Index
Wscript.EchoName:& vbTab& objPartition.Name
Wscript.Echo块数:& vbTab& _
objPartition.NumberOfBlocks
Wscript.EchoPrimary Partition:& vbTab& _
objPartition.PrimaryPartition
Wscript.EchoSize:& vbTab& objPartition.Size
Wscript.EchoStarting Offset:& vbTab& _
objPartition.StartingOffset
Wscript.EchoType:& vbTab& objPartition.Type
下一步
解决方案
Win32_DiskPartition通过磁盘从零开始识别分区,然后在磁盘上从0开始分区号。
要获取分区到驱动器的映射,请使用Win32_LogicalDiskTopartition,参数Dependent将包含驱动器号,前面的内容将包含该驱动器号的磁盘和分区号。 br />
从Antecedant中提取Disk #x,Partition #x。
如果我想要驱动器C的信息:当Dependent包含C:然后Antecedent包含磁盘和分区,例如
先行词:\\mypcname \root \ cimv2:Win32_DiskPartition。 DeviceID =Disk#0,Partition#1
Dependent:\\mypcname\root\cimv2:Win32_LogicalDisk.DeviceID =C:
现在您可以使用磁盘#0,分区#1并在Win32_DiskPartitions查询中使用它。
SELECT * FROM Win32_DiskPartition WHERE Name ='Disk#0,Partition#1'
这将是驱动器C的信息:
我建议您使用Microsoft的WMICodeCreator工具快速测试WMI命令,它还为您编写代码,以便您可以剪切和糊。
Hi,
I found the below code to do almost exactly what I want but for every drive in my system. I only want to get it for one specific drive. Is there any way to modify the following
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
("Select * from Win32_DiskPartition where ")
For each objPartition in colDiskPartitions
Wscript.Echo "Block Size: " & vbTab & objPartition.BlockSize
Wscript.Echo "Bootable: " & vbTab & objPartition.Bootable
Wscript.Echo "Boot Partition: " & vbTab & objPartition.BootPartition
Wscript.Echo "Description: " & vbTab & objPartition.Description
Wscript.Echo "Device ID: " & vbTab & objPartition.DeviceID
Wscript.Echo "Disk Index: " & vbTab & objPartition.DiskIndex
Wscript.Echo "Index: " & vbTab & objPartition.Index
Wscript.Echo "Name: " & vbTab & objPartition.Name
Wscript.Echo "Number Of Blocks: " & vbTab & _
objPartition.NumberOfBlocks
Wscript.Echo "Primary Partition: " & vbTab & _
objPartition.PrimaryPartition
Wscript.Echo "Size: " & vbTab & objPartition.Size
Wscript.Echo "Starting Offset: " & vbTab & _
objPartition.StartingOffset
Wscript.Echo "Type: " & vbTab & objPartition.Type
Next
解决方案
Win32_DiskPartition identifies partitions by Disk starting at zero followed by partition number on the Disk starting at 0.
To get the map of partitions to drives use the Win32_LogicalDiskTopartition, parameter Dependant will contain the drives letter Antecedent will contain the Disk and Partition numbers for that drive letter.
Extract the "Disk #x, Partition #x" from the Antecedant.
So if I want info for drive C: when Dependent contains C: then Antecedent contains the disk and partition e.g.
Antecedent: \\mypcname\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
Dependent: \\mypcname\root\cimv2:Win32_LogicalDisk.DeviceID="C:"
Now you can take the "Disk #0, Partition #1" and use it in your Win32_DiskPartitions query.
"SELECT * FROM Win32_DiskPartition WHERE Name='Disk #0, Partition #1'"
And that will be the information for drive C:
I recommend you use the WMICodeCreator tool from Microsoft to quickly test out WMI commands, it also writes the code for you so you can cut and paste.
这篇关于如何获取特定驱动器wscript的信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文