gpt4 book ai didi

python - 尝试使用 wmi 对象时出错(python)

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:00 26 4
gpt4 key购买 nike

我正在尝试编写一个脚本来检测运行该脚本的机器是虚拟机还是物理机,但我不明白该错误以及如何修复它。

import wmi

def sys_info():

objWMIService = wmi.GetObject("winmgmts:\root\cimv2")
colItems = objWMIService.ExecQuery("Select * from Win32_BaseBoard")

for objItem in colItems:
print "inside"
Manufacturer = objItem.Manufacturer
if Manufacturer == "Microsoft Corporation":
print "Virtual Machine"
else:
print "Not in one"

错误:

    Traceback (most recent call last):
File "C:\Documents and Settings\xxx\Desktop\Python\Practice Code\System information\trial.py", line 16, in <module>
sys_info()
File "C:\Documents and Settings\xxx\Desktop\Python\Practice Code\System information\trial.py", line 5, in sys_info
objWMIService = wmi.GetObject("winmgmts:""\root\cimv2")
File "C:\Python26\lib\site-packages\win32com\client\__init__.py", line 72, in GetObject
return Moniker(Pathname, clsctx)
File "C:\Python26\lib\site-packages\win32com\client\__init__.py", line 87, in Moniker
moniker, i, bindCtx = pythoncom.MkParseDisplayName(Pathname)
com_error: (-2147217375, 'OLE error 0x80041021', None, None)

我希望有人能提供帮助,我是 python 的新手。谢谢。

最佳答案

如果你改变,事情会改善吗:

objWMIService = wmi.GetObject("winmgmts:\root\cimv2") 

objWMIService = wmi.GetObject(r"winmgmts:\root\cimv2") 

“\root”中的“\r”序列将被解释为 <CR>代码中的字符。您要么必须将 '\' 加倍以转义它们,以便将它们视为反斜杠,要么在第一个双引号之前加上 'r'(就像我所做的那样),以向 Python 表明这应该是一个“原始”字符串字面量。原始字符串与常规字符串没有区别,但原始字符串语法告诉 Python 编译器解释反斜杠。

关于python - 尝试使用 wmi 对象时出错(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181456/

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