В своём предыдущем блоге я писал заметку про то, как можно случайно удалить классы 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 и восстановить его обратно очень простым способом.