samedi 21 janvier 2012

Activer Aero “the light way”

Abstract_Ornamental_by_irn_bru

Lors du déploiement de Windows 7, il arrive parfois qu’à la fin de l’installation, Aero ne soit pas activé. Cette non activation est intimement liée au fait que Windows n’a pas réussi à calculer l’indice de performance de la machine et plus particulièrement celui de la carte graphique.

Si vous cherchez une solution sur internet, vous tomberez à peu près tout le temps sur le même type de solutions : relancer le calcul de l’indice de performance via la commande : Winsat Formal

Cette méthode à trois inconvenant majeurs :

  • Exécutée dans le déroulé d’un script (WAIK) ou au sein d’une Task Sequence (MDT/SCCM), elle recalcule  l’indice de performance même si celui-ci à déjà été calculé par Windows.
  • Elle impose l’évaluation de tous les composants, alors qu’ Aero n’a besoin que des performances de la carte graphique pour pouvoir démarrer.
  • Elle est extrêmement lente car Windows évalue l’ensemble de ses composants (disque, carte graphique, processeur etc…) 

J’ai donc développé un script qui palie à ces trois problèmes :  il ne relance l’évaluation qu’en cas de nécessité, et si c’est le cas, il n’évalue que la carte graphique et prend par conséquence beaucoup moins de temps.

'/ This script wil check if winsat as already run against graphical performances.
'
/ If not, it will evalute graphic adapter. colateral effect will be : Aero will be enabled.
'
/
'
/ Version 1.0
'
/ by Diagg
'
/ 13/12/2011


Option Explicit

Dim strComputer, oShell, oBjWMIService, oColItems, oGfxValue, oBjItem

strComputer
= "."
set oShell = createobject("wscript.shell")
Set oBjWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set oColItems = oBjWMIService.ExecQuery("Select * from win32_winsat")

For Each oBjItem in oColItems
oGfxValue
= oBjItem.GraphicsScore
Next

If oGfxValue = Null Or oGfxValue = 0 Then
oShell.Run
"c:\windows\system32\Winsat.exe dwm",0, True
End If


A utiliser sans retenu, dans MDT/SCCM/WAIK…