【发布时间】:2021-01-22 22:31:42
【问题描述】:
我正在尝试从MSFT_Disk 对象中获取MSFT_Partitions 的列表并遍历它们。
这是我到目前为止一直在使用的代码,但它总是输出System.Management.ManagementException: 'Invalid query ' 异常。
这是我目前正在使用的代码:
public static void GetDiskInfo() {
var rawDiskInfos = new ManagementObjectSearcher("root\\Microsoft\\Windows\\Storage", "SELECT * FROM MSFT_Disk");
foreach(var rawDiskInfo in rawDiskInfos.Get()) {
Console.WriteLine(rawDiskInfo["FriendlyName"]);
GetPartitionInfo(rawDiskInfo["ObjectId"]);
}
}
public static void GetPartitionInfo(object objectId) {
ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\Microsoft\\Windows\\Storage");
var query = new ObjectQuery("ASSOCIATORS OF {MSFT_Disk.ObjectId=\"" + objectId + "\"} WHERE AssocClass = MSFT_DiskToPartition");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach(var partiton in queryCollection) {
Console.WriteLine(partiton["Guid"]);
}
}
我已经尝试了很多我在网上找到的解决方案,但所有解决方案都导致了相同的异常。
非常感谢您的帮助!
【问题讨论】: