Surveiller le réglage des plans d’économie d’énergie : OpsMgr ou ConfigMgr

Dans un tweet récent, mon collègue Stefan Stranger a relayé l’article publié sur :
https://aquilaweb.net/2015/10/05/scom-monitor-power-plan-setting/

L’article de David Allen propose de mettre en œuvre via OpsMgr une surveillance du réglage du plan d’économie d’énergie via un script déclenché par un moniteur.

Le script recherche les différents plans d’économie d’énergie définis localement dans root\cimv2\power via une requête :
SELECT * FROM Win32_PowerPlan

En parcourant la liste des plans à la recherche du plan actif, le script compare la valeur trouvée avec celui passé en paramètre.

Le fait de passer par OpsMgr pour ce type de vérification n’est pas, en soi, une erreur. Cependant, je considère qu’il serait plus logique de faire ce type de vérification à travers la gestion de la conformité de ConfigMgr.

La vérification est effectuée toutes les 24 heures via OpsMgr. Je ne suis pas sûr qu’il soit pertinent de vérifier à cette fréquence ; les erreurs de réglage se font généralement à l’installation des serveurs, mais plus rarement une fois les serveurs installés. Le moniteur est conçu de manière suffisamment intelligente pour prévoir une autre fréquence, ainsi que de nombreux autres paramètres.

Le pack est conçu pour un environnement en anglais dans lequel le nom “High performance” est utilisé. Pour des serveurs en français, il faudrait utiliser l’expression “Performances élevées” ; ce qui peut poser quelques problèmes avec les caractères accentuées.

Il existe, sur Internet, des pack de configuration pour surveiller les réglages utilisés en matière de gestion de l’énergie. Ces packs peuvent être utiles dans le cadre d’une démarche d’économie d’énergie sur les postes de travail et de manière complémentaire aux propositions natives de ConfigMgr. Pour les besoins de serveurs, un pack plus simple est largement suffisant qui vérifie le plan choisi et qui remonte une non-conformité si le serveur n’est pas réglé sur les performances maximales ; voire, qui effectue le réglage vers le mode le plus consommateur, certes, mais qui procure les meilleures performances.

Exemple de script de vérification du modèle d’alimentation :

Option Explicit
'=============================================================================
' Microsoft provides script, macro, and other code examples for illustration only,
' without warranty either expressed or implied, including but not
' limited to the implied warranties of merchantability and/or fitness for a particular purpose.
' This script is provided 'as is' and Microsoft does not
' guarantee that the following script, macro, or code can be used in all situations.
'=============================================================================

' Set DCM = False in the script when testing in a command prompt
' Set DCM = True when script used in a DCM configuration item
Const bDCM = False
'Const bDCM = True

On Error Resume next

Dim strResult

Dim strPlan
strPlan = "high performance"

If not bDCM then wscript.echo "Script Started"

Err.Clear

Dim objWMI, colPlans
Set objWMI = GetObject("winmgmts:\\.\root\cimv2\power")

If Err.Number = 0 then
err.clear
Set colPlans = objWMI.ExecQuery("SELECT * FROM Win32_PowerPlan")

    If Err.Number = 0 then
Dim strPlanName, strPlanStatus, objPlan, strState

        For Each objPlan in colPlans
strPlanName = LCase(objPlan.ElementName)
if not bDCM then wscript.echo "Nom du plan : " & strPlanName
strPlanStatus = objPlan.IsActive
if not bDCM then wscript.echo strPlanStatus

If strPlanStatus = True Then
If ucase(strPlanName) <> ucase(strPlan) Then
strResult = "Active PowerPlan is Incorrect"
Else
strResult = "OK"
End If
End If
Next

if not bDCM then wscript.echo "Script Complete"
wscript.echo strResult
End if
End If