Недавно столкнулся с ошибкой, которая не давала запустить скрипты, и некоторые командлеты:
PS C:\Users\Users> Get-ExecutionPolicy
Get-ExecutionPolicy : Invalid class
At line:1 char:20
+ Get-ExecutionPolicy <<<<
+ CategoryInfo : NotSpecified: (:) [Get-ExecutionPolicy],
ManagementException
+ FullyQualifiedErrorId :
System.Management.
Ошибка оказалась в проблемах с базой wmi. Которая очень быстро восстанавливается следующей коммандой, запущенная из под администратора:
1 2 3 4 5 6 7 8 |
PS C:\> cd C:\Windows\System32\wbem;MOFcomp CIMWIN32.MOF Microsoft (R) MOF Compiler Version 6.1.7600.16385 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! PS C:\Windows\System32\wbem> |
Но, если у вас проблема таким образом не решилась или возможно у вас они возникли с другими командлетами, можно запустить следующий скрипт, который перерегистрирует все библиотеки WMI.
PowerShell:
1 2 3 4 5 6 7 8 9 10 |
Set-Service winmgmt -StartupType Disabled stop-Service winmgmt -Force Set-Location $env:windir\system32\wbem Get-ChildItem *.dll | ForEach-Object {regsvr32 /s $_} wmiprvse /regserver Set-Service winmgmt -StartupType Automatic Start-Service winmgmt Get-ChildItem *.mof,*.mfl | ForEach-Object {mofcomp $_} Set-Location $env:windir\system32\wbem\AutoRecover Get-ChildItem *.mof,*.mfl | ForEach-Object {mofcomp $_} |
Тоже самое для командной строки(воз):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sc config winmgmt start= disabled net stop winmgmt cd %windir%\system32\wbem for /f %s in ('dir /b *.dll') do regsvr32 /s %s wmiprvse /regserver sc config winmgmt start= auto net start winmgmt for /f %s in ('dir /b *.mof') do mofcomp %s for /f %s in ('dir /b *.mfl') do mofcomp %s cd %windir%\system32\wbem\AutoRecover for /f %s in ('dir /b *.mof') do mofcomp %s for /f %s in ('dir /b *.mfl') do mofcomp %s |
Спасибо !!! Проблема решилась командой MOFcomp CIMWIN32.MOF
Хорошо что Вы у нас есть!