gpt4 book ai didi

c# - Win32_PhysicalMedia 为非管理员用户返回不同的序列号

转载 作者:太空狗 更新时间:2023-10-29 21:27:43 26 4
gpt4 key购买 nike

我使用以下查询来获取硬盘序列号。

ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

它为管理员用户和非管理员用户返回不同的序列号,如下所示:

管理员 - WD-WCAYUS426947非管理员 - 2020202057202d44435759415355323439363734

当尝试将非管理员序列号转换为十六进制到字符转换器时,它给出了 W -DCWYASU249674,这实际上是每 2 个字符进行一次字符交换。

有什么想法可以在不修改非十六进制格式的情况下获取正确的序列号吗?

最佳答案

如评论中所述:这似乎是 Windows 中 Unresolved 错误,尽管 Microsoft knows about it .

解决它的方法是转换十六进制字符串并交换数字,我写了一个方法来为您完成此操作,您可以根据需要随意编辑它:

    public static string ConvertAndSwapHex(string hex)
{
hex = hex.Replace("-", "");
byte[] raw = new byte[hex.Length / 2];
for (int i = 0; i < raw.Length; i++)
{
int j = i;
if (j != 0)
{
j = (j % 2 == 1 ? j-1 : j+1);
}
raw[j] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
}
return System.Text.Encoding.UTF8.GetString(raw).Trim(' ', '\t', '\0');
}

关于c# - Win32_PhysicalMedia 为非管理员用户返回不同的序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com