El énfasis de esta pregunta está en la segunda mitad.
Sé cómo extraer una lista de todos los servicios y cómo filtrar en su estado. Sin embargo, lo que no estoy seguro de cómo hacer es extraer la cuenta de usuario que el servicio está configurado para "ejecutar como".
No tengo la opción de usar PowerShell (desafortunadamente), así que estoy buscando una forma CMD nativa. Asumí que habría una manera de usar el comando sc query pero todo lo que aparece en la lista es:
SERVICE_NAME
TYPE
STATE
WIN32_EXIT_CODE
SERVICE_EXIT_CODE
CHECKPOINT
WAIT_HINT
FYI: el sistema operativo es Windows 2003 SP2 y necesito esta información para todos los servicios, por lo que es un proceso largo si tengo que hacerlo manualmente para cada uno de ellos.
sc query
ywmic
?Puede lograr esto en dos pasos:
sc \\localhost query | findstr SERVICE_NAME
sc \\localhost qc
+ SERVICE_NAME +| findstr SERVICE_START_NAME
Recomendaría un script por lotes como este:
Eso te da una salida como esta:
Por supuesto, puede limpiar aún más esa salida o escribir en un archivo CSV de la manera que desee.
fuente
CMD no tiene una forma nativa de hacerlo. SC y NET son aplicaciones integradas que vienen con Windows pero eso no significa que sean nativas. En cualquier momento, un administrador puede eliminarlos e incluso CMD queda en la oscuridad.
sc sdshow es lo que obtendrá descriptores de seguridad, pero esto complicará las cosas si no sabe cómo leer las cadenas SDDL.
La forma más simple es obtener Sysinternals PsService.exe del paquete de Herramientas y usarlo como psservice security [service]. Enumerará el SDDL en formato legible, incluidos los nombres de cuenta.
fuente
C:\Windows\System32\sc.exe
para todas las versiones de Windows?Aunque no puede usar PowerShell, debería poder usar VBScript para extraer la información de WMI:
Aquí hay un script de VBS que enumerará todos los servicios y la cuenta en la que comienzan:
Guárdelo y luego ejecútelo con
cscript ScriptName.vbs
.objService.State
le daría el estado actual del servicio (ya que mencionó que está buscando filtrar por él).Más información sobre la clase Win32_Service .
fuente