我正在尝试用 python 编写一些数字取证软件,这意味着我需要一种方法来访问 Windows 上的卷影副本。我正在使用以下代码块从 SANS https://www.sans.org/blog/using-volume-shadow-copies-from-python关注这篇文章。
import win32com.client
def vss_list(self):
wcd = win32com.client.Dispatch("WbemScripting.SWbemLocator")
wmi = wcd.ConnectServer(".", "root\cimv2")
obj = wmi.ExecQuery("SELECT * FROM Win32_ShadowCopy")
return [x.DeviceObject for x in obj]
我的问题是这个函数返回pywintypes.com_error: (-2147217388, 'OLE error 0x80041014', None, None)
. 如果我将 return 语句更改为return obj[0]
. 我试图找到错误代码的解释,我发现最好的是https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-error-constants
WBEM_E_INITIALIZATION_FAILURE
2147749908 (0x80041014)
Component, such as a provider, failed to initialize for internal reasons.
我不确定这是否是代码的含义,或者我的问题是什么以及如何解决它。
提前感谢您的帮助