Мне нужно установить и настроить службу SNMP на многих серверах, и я подготовил сценарий powershell для рекурсивного выполнения операций, взяв имена различных серверов из текстового файла.Очевидно, что сценарий работает, но за исключением сервера, с которого запускается сценарий, никто больше не устанавливает службу.Я прилагаю скрипт, который использую, и прошу тех, кто знает больше меня, сообщить мне об ошибке.Заранее спасибо.
$pollers = @("XXX.XXX.XXX.XXX") # indirizzi ip Pollers (IP o DNS name) - esempio: @("monitorserv1","10.10.5.2")
$CommunityStr = @("NOME_COMMUNITY") # nome community - esempio: @("Secretcommunity","private2")
Import-Module ServerManager
#foreach ($ServerName in Get-Content .\Listaservers.txt){
Enter-PSSession -ComputerName $ServerName
#testo se SNMP VMI è installato
$test = Get-WindowsFeature -ComputerName $ServerName -Name SNMP-Service
#Installa/abilita SNMP-Service se il test precedente fallisce
If ($test.Installed -ne "True") {
Write-Host "Installo SNMP-Service su $ServerName..."
Get-WindowsFeature -name SNMP* | Add-WindowsFeature -IncludeManagementTools | Out-Null
}
#ri-testo se SNMP-Service Feature è abilitato ed aggiorno le variabili
$test = Get-WindowsFeature -Name SNMP-Service
#scrivo le chiavi di registro se SNMP-Service è attivo
If ($test.Installed -eq "True"){
Write-Host "Configuro SNMP-Services con la stringa Community e gli indirizzi pollers"
#Setto SNMP Permitted Manager(s) ** ATTENZIONE : questa operazione sovrascrive i parametri attuali **
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" /v 1 /t REG_SZ /d localhost /f | Out-Null
#Setto SNMP Traps e SNMP Community in *Read Only*
Foreach ($String in $CommunityStr){
reg add ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\TrapConfiguration\" + $String) /f | Out-Null
# Setto la Default value a null
reg delete ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\TrapConfiguration\" + $String) /ve /f | Out-Null
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" /v $String /t REG_DWORD /d 4 /f | Out-Null
$i = 2
Foreach ($manager in $pollers){
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" /v $i /t REG_SZ /d $manager /f | Out-Null
reg add ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\TrapConfiguration\" + $String) /v $i /t REG_SZ /d $manager /f | Out-Null
$i++
}
}
}
#riavvio il servizio dopo averlo configurato
Restart-Service "SNMP"
{
Write-Host "Configurazione completata"
}