Installation et configuration du service SNMP par GPO

Dans le cas du Monitoring (et notamment avec WhatsUp Gold sous Windows), il sera utilise d’installer le service SNMP sur les machines devant être monitorées.

Cette procédure, certes facile, deviendra vite agaçantes si on doit la réaliser pour une grande quantité de machine.

La réalisation d’une GPO permettra de rendre cette tâches plus « amusante ».

Nous allons réaliser cette GPO sur une serveur Windows 2008 R2 par l’intermédiaire d’un script en Powershell qui s’occupera de l’installation et la configuration du service SNMP sur les machines membres du domaine.

Le Script

# Adresse du serveur WhatsUp + nom de communauté
 $manager = "IP.DE.LA.MACHINE"
 $commstring = "public"

# Import ServerManager Module
Import-Module ServerManager
$adresseSource = "\\domain.local\NETLOGON"    

# Dossier sources des fichiers de config.  
cls  
$check = Get-WindowsFeature | Where-Object {$_.Name -eq "SNMP-Services"}    
If ($check.Installed -ne "True") 
{  
Add-WindowsFeature SNMP-Services | Out-Null cls  $check = Get-WindowsFeature | Where-Object {$_.Name -eq "SNMP-Services"
}  
If ($check.Installed -eq "True")
{  
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ PermittedManagers" /v 2 /t REG_SZ /d $manager /f  Foreach ( $string in $commstring){ 
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" /v $string /t REG_DWORD /d 4 /f  
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\TrapConfiguration\$string" /v 1 /t REG_SZ /d $manager /f } 
# Démarrage du service SNMP si non fait Start-Service "SNMP" >> .\logScript.txt }

 Création et configuration de la GPO

Nom choisi pour la GPO : SNMP

On applique la GPO sur les machines (et pas les utilisateurs) à leur démarrage :

Nous choisissons « Startup » et nous nous rendons dans l’onglet « PowerShell Scripts » de la fenêtre qui vient de s’ouvrir.

Il faut ajouter le script au bon emplacement. Pour y parvenir :

Ce qui donne au final :

Nous nous rendons ensuite dans Administrative Templates afin d’activer l’exécution des scripts.

Chemin complet: Computer Configuration > Policies > Administrative Templates > Windows Components > Windows PowerShell > Turn On Script Execution

Ensuite nous nous rendons à l’emplacement suivant : Computer Configuration > Policies > Administrative Templates > Windows Components > System > Scripts :

Il faut activer “Run Windows PowerShell scripts at computer startup”, “Run Logon scripts synchronously” et “Run startup scripts visible”.

Ensuite, nous devons ajouter un template (le fichier .ADM peut être téléchargé sur le site de Microsoft : http://www.microsoft.com/en-us/download/details.aspx?id=25119) afin de ne pas à avoir à exécuter la commande Set-ExecutionPolicy unrestricted sur chaque machine. Si nous ne le faisons pas, il sera impossible de lancer un script sans passer par l’interpréteur PowerShell.

On va chercher le fichier ou il se trouve et on l’ajoute :

Il ne faut pas oublier de lier la GPO SNMP :

Nous allons maintenant ajouter un filtre WMI si l’on ne désire pas que la GPO s’applique sur le serveur ou elle se trouve :

Nous devons lui donner un nom, éventuellement une description et écrire la requête à effectuer :

Résumé de la GPO :

Un petit gpupdate /force dans la console et le tour est joué.

Résultat depuis une machine membre du domaine

Pour voir si tout s’est bien passé au démarrage de la machine, il suffit d’aller voir dans Services :

Et si nous allons voir les propriétés du Service SNMP, nous devons normalement retrouvé les informations du script :

 Et voilà qui est fait :)