Microsoft MAP et les interactions WMI

Vous n’êtes pas sans savoir que Microsoft vient de publier la version 7.0 de son outil Microsoft Assessment and Planning Toolkit (ici), utilitaire génial pour faire un peu de planification de capacité. Par contre, j’ai eu quelque soucis avec la connexion entre la machine MAP et quelques serveurs, celle-ci s’opérant via des requêtes WMI… Get-WmiObject : Access is denied. (Exception from HRESULT: 0×80070005 (E_ACCESSDENIED))

Voici donc quelques astuces.

La première est de tester les identifiants, c’est assez simple, il suffit de lancer la commande suivante:


net use \\monserveur \ADMIN$  /u:"mondomaine\monuser" "monmotdepasse"

Bien entendu les services RPC et WMI doivent être lancés:


net start rpcss && net start winmgmt

Utilitaire de test WMI

Microsoft propose en standard l’utilitaire WBEMtest mais reste assez « barbare », mais l’éditeur de PRTG propose gratuitement un utilitaire de requête WMI pour tester des connexions vers des machines.

Cet outil est disponible ici.

Activation des DCOM distribués

Lancez la console dcomcnfg, et vérifier que le premier paramètre est bien activé !

Vérifications des autorisations WMI

Si vous utilisez un service ou un compte devant accéder en WMI à une machine, il faut s’assurer que cela soit bien déclarér au niveau des sécurités WMI. Pour cela, lancer la console wmimgmt.msc.Il faut au minimum les autorisations »activer le compte » et « appel à distance autorisé ».


Reconstruire le service WMI

J’ai trouvé ce script sur le net, à prendre avec des pincettes pour vos environnements, mais il m’a l’air assez clean. Mais avant lancez la commande suivante pour effectuer une vérification de cohérence de l’espace de stockage WMI et reconstruit celui-ci si une incohérence est détectée. S’il est lisible, le contenu de l’espace de stockage incohérent est fusionné à l’espace de stockage reconstruit.


winmgmt  /salvagerepository

Le script en question:


Echo Rebuilding WMI... Please wait. > c:\SW_Setup.log
net stop sharedaccess >> c:\SW_Setup.log
net stop winmgmt /y >> c:\SW_Setup.log
cd %systemroot%\system32\wbem >> c:\SW_Setup.log
del /Q Repository >> c:\SW_Setup.log
c:
cd %systemroot%\system32\wbem >> c:\SW_Setup.log
rd /S /Q repository >> c:\SW_Setup.log
regsvr32 /s %systemroot%\system32\scecli.dll >> c:\SW_Setup.log
regsvr32 /s %systemroot%\system32\userenv.dll >> c:\SW_Setup.log
mofcomp cimwin32.mof >> c:\SW_Setup.log
mofcomp cimwin32.mfl >> c:\SW_Setup.log
mofcomp rsop.mof >> c:\SW_Setup.log
mofcomp rsop.mfl >> c:\SW_Setup.log
for /f %%s in ('dir /b /s *.dll') do regsvr32 /s %%s
for /f %%s in ('dir /b *.mof') do mofcomp %%s
for /f %%s in ('dir /b *.mfl') do mofcomp %%s
mofcomp exwmi.mof >> c:\SW_Setup.log
mofcomp -n:root\cimv2\applications\exchange wbemcons.mof >> c:\SW_Setup.log
mofcomp -n:root\cimv2\applications\exchange smtpcons.mof >> c:\SW_Setup.log
mofcomp exmgmt.mof >> c:\SW_Setup.log
net stop winmgmt >> c:\SW_Setup.log
net start winmgmt >> c:\SW_Setup.log
gpupdate /force >> c:\SW_Setup.log

Echo Setting up fireall... Please wait. >> c:\SW_Setup.log
netsh firewall set service remoteadmin enable >> c:\SW_Setup.log
Echo Enable Ping >> c:\SW_Setup.log
netsh firewall set icmpsetting 8 >> c:\SW_Setup.log

Echo Dcom setup >> c:\SW_Setup.log
reg add HKLM\SOFTWARE\Microsoft\Ole /v LegacyAuthenticationLevel /t REG_DWORD /d "2" /f >> c:\SW_Setup.log
reg add HKLM\SOFTWARE\Microsoft\Ole /v LegacyImpersonationLevel /t REG_DWORD /d "3" /f >> c:\SW_Setup.log

Echo Windows7 / Vista Stuff... Please ignore if you are not using. >> c:\SW_Setup.log
Echo Disable UAC >> c:\SW_Setup.log
%windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f >> c:\SW_Setup.log

Echo Win7 Firewall setup >> c:\SW_Setup.log
netsh advfirewall set currentprofile settings remotemanagement enable >> c:\SW_Setup.log
netsh advfirewall firewall set rule group="windows management instrumentation (WMI)" new enable=Yes  >> c:\SW_Setup.log
netsh advfirewall firewall set rule group="remote administration" new enable=yes >> c:\SW_Setup.log

Echo Please check the log c:\SW_Setup.log for any issues. >> c:\SW_Setup.log
Echo If using Windows7 or Vista please reboot. >> c:\SW_Setup.log

Echo Check winmgmt is started, there were problems with it not starting on win7 >> c:\SW_Setup.log
net start winmgmt >> c:\SW_Setup.log

echo Resetting Automatic Updates >> c:\SW_Setup.log
net stop bits
net stop "Automatic Updates"
REM Automatic Updates for those German Users
net stop wuauserv
del /f /s /q %windir%\SoftwareDistribution\*.*
echo.
echo.
net start bits
net start "Automatic Updates"
net start wuauserv
echo Forcing AU detection and resetting authorization tokens... >> c:\SW_Setup.log
wuauclt.exe /resetauthorization /detectnow

Sinon, pour faire plus simple, il suffit de détruire le dossier contenant WMI


Net Stop WinMgmt /y
Ren %WinDir%\System32\Wbem\Repository  %WinDir%\System32\Wbem\OldRepository
Net Start WinMgmt /y

Un ré-enregistrement des binaires et DLL peut être également nécessaire


for %i in (*.dll) do RegSvr32 -s %i

for %i in (*.exe) do %i /RegServer

Partagez si ça vous plait !
0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x