我目前在获取非常特定的PC的硬件ID时遇到错误,我一直在使用以下代码,并且该代码已在很多PC上运行,但是突然以下错误发生在1台PC上
我正在使用的代码:

hardware_id = subprocess.check_output('wmic csproduct get uuid').decode().split('\n')[1].strip()
我正在使用Pyinstaller编译python文件,并且在此特定PC上收到以下错误:
csproduct - Alias not found
Traceback (most recent call last):
   ...
subprocess.CalledProcessError: Command 'wmic csproduct get uuid' returned returned non-zero exit status 44135
[8920] Failed to excute script app
如果有人告诉我为什么此特定PC发生此错误以及如何解决该错误,我将不胜感激
我正在谈论的PC操作系统是Windows 10

最佳答案

首先注意WMIC is deprecated。您最终将希望切换到PS cmdlet。
下一步,对此进行调试将是通过调用wmic csproduct而不指定UUID作为获取键来查看wmic csproduct get中有什么可用的东西。
您可能会发现UUID对WMI不可用。这很可能是因为您的客户(不受您控制的操作系统)正在使用被入侵/修改/未经许可的Windows副本或已修改的SMBIOS。可能还有其他解释,但这是最有可能的。纠正这些并不是您力所能及的。
如果您想进一步调查,可以使用PS:

Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -Property UUID
但是,您会发现UUID不存在(否则wmic将返回它)。

09-20 23:38