June 24, 2010

Que servicios corre esta cuenta?

Me preguntaba un amigo sobre cómo buscar en varios equipos los servicios que se ejecutan bajo una cuenta determinada? En este caso lo primero que se me vino en mente fue el comando SC, pero luego de jugar un poco me di cuenta que PSSERVICE es más flexible.
Entonces vamos a preparar una lista que contenga el nombre de los equipos que vamos a revisar, la cual para efectos del ejemplo guardaremos en G: y le llamaremos listServers.txt.
El resultado de esto lo salvaremos en un archivo llamado serviceCheck.log en C:\output.
En el siguiente ejemplo la cuenta que me interesa es llamada DAEMONROOT\OCSRtcServ
G:\tools\|>for /f %a in (G:\listServers.txt) do (echo %a >>C:\output\serviceCheck.log) && (psservice \\%a config | findstr /I "SERVICE_NAME DAEMONROOT\OCSRtcServ" >>C:\output\serviceCheck.log)
El archivo tendrá un formato similar a:
hostName0
servico A
servico B
servicio C
     cuentaQueLoEjecuta
servicio D
     cuentaQueLoEjecuta
servicio E
servicio F
hostName1
servico A
servico B
servicio C
     cuentaQueLoEjecuta
servicio D
     cuentaQueLoEjecuta
servicio E
hostname2
servicio A
Si bien tan solo quiero información general sobre cuentas y servicios entonces cambio mi filtro a algo como "SERVICE_NAME SERVICE_START_NAME" y esto me dará una lista de todos los servicios y la cuenta que lo ejecuta en mi lista de equipos.
Hasta pronto.

No comments:

Post a Comment