В своём предыдущем блоге я писал заметку про то, как можно случайно удалить классы WMI – PowerShell - убийца WMI классов? И недавно узнал, как можно восстановить эту функциональность обратно. Сами Win32 классы находятся в библиотеке CIMWIN32.MOF, которая и повреждается при удалении классов. Чтобы вернуть эти классы – достаточно перекомпилировать эту библиотеку:
C:\Windows\System32\wbem\MOFComp CIMWIN32.MOF
[↑] [system32] gwmi win32_share Name Path Description ---- ---- ----------- ADMIN$ C:\Windows Remote Admin C$ C:\ Default share D$ D:\ Default share IPC$ Remote IPC P$ P:\ Default share print$ C:\Windows\system32\spool\drivers Printer Drivers Work D:\Users\vpodans\Work Z$ Z:\ Default share _Shared Documents D:\Users\_Shared Documents [↑] [system32] [wmiclass]'win32_share' NameSpace: ROOT\cimv2 Name Methods Properties ---- ------- ---------- Win32_Share {Create, SetShare... {AccessMask, AllowMaximum, Caption, Description...} [↑] [system32] ([wmiclass]'win32_share').delete() [↑] [system32] gwmi win32_share Get-WmiObject : Invalid class At line:1 char:5 + gwmi <<<< win32_share + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand [↑] [system32] cd wbem [↑] [wbem] MOFComp CIMWIN32.MOF Microsoft (R) MOF Compiler Version 6.0.6000.16386 Copyright (c) Microsoft Corp. 1997-2006. All rights reserved. Parsing MOF file: CIMWIN32.MOF MOF file has been successfully parsed Storing data in the repository... Done! [↑] [wbem] gwmi win32_share Name Path Description ---- ---- ----------- ADMIN$ C:\Windows Remote Admin C$ C:\ Default share D$ D:\ Default share IPC$ Remote IPC P$ P:\ Default share print$ C:\Windows\system32\spool\drivers Printer Drivers Work D:\Users\vpodans\Work Z$ Z:\ Default share _Shared Documents D:\Users\_Shared Documents [↑] [wbem]
Вот так я сначала показал, как можно убить класс WMI и восстановить его обратно очень простым способом.
Remember Me