ManagementClass("Win32_Processor")获取CPUID失败的时候怎么利用WMITools为CPUID赋值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ManagementClass("Win32_Processor")获取CPUID失败的时候怎么利用WMITools为CPUID赋值?相关的知识,希望对你有一定的参考价值。

这个是我的方法
Function CPU_Id2() As String
Try
Dim cpuId As String = String.Empty
Dim mc As ManagementClass = New ManagementClass("Win32_Processor")
Dim moc As ManagementObjectCollection = mc.GetInstances()
For Each WmiObj As ManagementObject In moc
cpuId = WmiObj("ProcessorId")
Exit For
Next
mc.Dispose()
moc.Dispose()
Return cpuId
Catch ex As Exception
Return ""
End Try
End Function

ManagementClass("Win32_Processor")获取CPUID的时候,有些电脑没问题,有些电脑获取出来是空字符串。

下面是网上查的解决方法,但是不知道怎么利用WMITools为CPUID赋值

使用ManagementClass("Win32_Processor")获取cpuid失败,代码如下:

ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)

_S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();
break;


当获取ProcessorId时失败,提示该值为Null,对于有些计算机成功对于有些计算机失败。 查看了一些ManagementClass 相关资料:[.NET 框架中的WMI命名空间][WMI 介绍及简单应用].解决办法如下:

1、判断出问题出在WMI上;

2、下载WMI管理工具WMITools.exe,下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en

3、检查ProcessorId是否为空,如果为空,那么利用WMITools为其赋值。

4、调试上面代码_S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();就可以顺利通过了。

第三部那就不知道怎么做了。请高手帮忙,很急啊。

参考技术A 使用ManagementClass("Win32_Processor")获取cpuid失败,代码如下:
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)

_S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();
break;

当获取ProcessorId时失败,提示该值为Null,对于有些计算机成功对于有些计算机失败。 查看了一些ManagementClass 相关资料:[.NET 框架中的WMI命名空间][WMI介绍及简单应用].解决办法如下:
1、判断出问题出在WMI上;
2、下载WMI管理工具WMITools.exe,下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en
3、检查ProcessorId是否为空,如果为空,那么利用WMITools为其赋值。
4、调试上面代码_S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();就可以顺利通过了。

win10专业版远程桌面Remote Desktop Connection已停止工作?

都远程上了,几秒钟后就显示已停止工作,我都手工更新windows到最新了,请各们大神们知个招啊,谢谢!

  e799bee5baa6e79fa5e98193e78988e69d8331333337613830解决方法如下:
  1、右击"我的电脑"--"属性"--"远程"--"远程桌面",
  在"允许用户远程连接到此计算机"前面打勾。(如果这个地方为灰色,说明在组策略里面已经优先设置了,此时需要检查组策略)
  开始--运行--gpedit.msc--计算机配置--管理模板--windows组件--终端服务,"允许用户使用终端服务远程连接"--设置:
  设为"未配置":"允许用户远程连接到此计算机"那里就不会是灰色用户可以随意修改,
  设为"启用": "允许用户远程连接到此计算机"默认为打勾且为灰色不可修改)
  2、开始--运行--services.msc,开启Terminal Services服务.
  3、开始--运行--regedit
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal?Server\WinStations\RDP-Tcp]
  PortNumber (十进制) 3389,如果是8000之类的,那么在"远程桌面连接"计算机栏里输入192.168.1.100:8000即可!
  4、开始--运行--regedit
  [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\RDPDR]
  在RDPDR上点击右键,选择“权限”,改变“everyone”的权限为“完全控制”
参考技术A 可能是系统和软件不兼容 参考技术B 试一下其他远程软件代替(比如anydesk软件)

以上是关于ManagementClass("Win32_Processor")获取CPUID失败的时候怎么利用WMITools为CPUID赋值?的主要内容,如果未能解决你的问题,请参考以下文章

System.Management.ManagementClass 替换核心 Clr

ManagementClass类解析和C#如何获取硬件的相关信息

100分问题!!!C#里要用WMI获取系统信息,请问一个有几个ManagementClass?分别是啥?

win2008 开启多远程桌面连接

装win10以后,win7不引导

win7 配置IIS