February 11, 2011

Configurando SNMP

Hace un par de días tuve que hacer una cantidad de cambios en el servicio de SNMP, básicamente necesitaba modificar los derechos de las comunidades, este proceso normalmente requiere que me conecte al snap-in de Services de cada equipo, lo cual pues consume una considerable cantidad de tiempo por ende me di a la tarea de investigar un poco, mi primer opción fueron los comando SC pues estos se utilizan para la configuración de servicios de Windows, pero no funciono.
Para mayor información visite http://support.microsoft.com/kb/324263
La información requerida esta almacenada en HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities
Según los derechos asignados usted deberá asignar diferentes valores de la siguiente manera:

Notify 2
Read Only 4
Read Write 8
Read Create 16

Luego agregué un mágico /for y en cuestión de minutos el trabajo estaba listo.
Eh acá unos cuantos ejemplos.
Para crear una entrada con derechos de "Read Create":

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V testReadCreate /t REG_DWORD /d 0x00000010

Para remover una entrada e inhabilitar la confirmación de borrado:

reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V dcs /f

Ahora veamos como haría esto con una cantidad mayor de servidores, para lo cual necesito una línea de comandos como la siguiente:

for /f %a in (dclist.txt) do echo %a >>remove.txt && reg delete \\%a\HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V ghi /f >>remove.txt && net stop SNMP /y && net start SNMP

Veamos esta con más detalle:
Leo el archivo [for /f %a in (dclist.txt)]
Guardo el nombre del equipo que estoy manipulando [echo %a]
Borro la entrada del registro [reg delete \\%a\HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities /V ghi /f]
Detengo el servicio [net stop SNMP /y]
Y luego lo vuelvo a iniciar [net start SNMP]
El output de estos comando lo almaceno en un archivo de texto llamado remove.txt.

Con la siguiente serie de comando hago una consulta al Windows Registry para verificar los valores actuales y también reviso que el servicio de SNMP este ejecutándose.

for /f %a in (dclist.txt) do echo %a >>check.txt && reg query \\%a\HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities >>check.txt && sc \\%a query SNMP
FINDSTR /I "STATE"

Esto es tan solo una forma más de hacer algo, espero tal como me sirvió a mí y me ahorro tiempo, le sea útil a ustedes!

No comments:

Post a Comment