Installation SNMP à distance via Script Powershell

Hello tout le monde !

Je vous partage une méthode pour déployer SNMP à distance sur une liste de serveurs via Powershell.

Ce script permet de préparer un déploiement d’un projet de supervision comme Centreon.

Le script charge une liste de serveurs dans un fichier TXT et installe SNMP ainsi que l’ajout de la règle Firewall Windows pour autoriser le ping. Le script fait également un GPUPDATE et redémarre le service afin d’appliquer les paramètres SNMP envoyés par GPO comme ci-dessous :

Le script est à exécuter en mode admin bien-sur 😉

# Recuperation de la liste des machines
$ListSrv = Get-Content -Path c:\temp\list_srv_deploy_snmp.txt
$Results = @()
$Log = "C:\temp\log_deploy_snmp.log"

foreach ($hostname in $ListSrv){

# Creation de la session distante avec PSSession
Write-host "Session vers $hostname"
$session = New-PSSession -ComputerName $hostname

# Verifier si SNMP est installe
$check = Invoke-Command -Session $session -ScriptBlock { Get-WindowsFeature | Where-Object {$_.Name -eq "SNMP-Service"} }

# Si pas de SNMP installé on lance les installations
If ($check.Installed -ne "True") {

# Installation SNMP et ajout regle firewall
Write-host "Installation SNMP vers $hostname"
Invoke-Command -Session $session -ScriptBlock {
Get-WindowsFeature *snmp* |Install-WindowsFeature
Restart-service snmp** 
Import-Module NetSecurity 
New-NetFirewallRule -Name Allow_Ping -DisplayName “Allow Ping”  -Description “Ping ICMPv4” -Protocol ICMPv4 -IcmpType 8 -Enabled True -Profile Any -Action Allow
Gpupdate /force
Restart-service snmp** 
}
}

# Verification de l'installation
$checkafter = Invoke-Command -Session $session -ScriptBlock { Get-WindowsFeature | Where-Object {$_.Name -eq "SNMP-Service"} }

If ($checkafter.Installed -eq "True") {
$Results += "$hostname;'OK'"
} Else { $Results += "$hostname;'KO'" }

# Fermer la session
Remove-PSSession $session
}

$Results >> $log

Write-Host "Deploiement terminé !"

Bonne utilisation et bonne continuation !

A+


Bruno SOUSA

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.