Tengo una tarea que me obliga a actualizar un servicio de Windows. Este servicio podría tener nombres diferentes; solicita el nombre de instalación luego de la instalación del servicio ... pero los registros de eventos de Windows están codificados de manera rígida a un nombre específico en C #:
if (!EventLog.SourceExists("MySuperSpecialEventLog"))
EventLog.CreateEventSource("MySuperSpecialEventLog", "MyLog");
¿Cómo puedo encontrar todos los servidores con eventos registrados en este registro personalizado?
He estado jugando con Powershell:
clear
import-module ActiveDirectory;
$servers = Get-ADComputer -Filter {OperatingSystem -Like "Windows Server*"} -Property Name | Sort-Object name | Format-Table Name; #,OperatingSystem,OperatingSystemServicePack;
$servers
foreach($server in $servers){
echo "Get-Eventlog -List -ComputerName $server"
}
Esto me da una lista de servidores ... luego estoy tratando de obtener una lista de servicios para cada servidor ... entonces puedo filtrar ...
Pero parece que no logro hacer clic en todos los cilindros.
Si powershell no es la herramienta adecuada, ¿qué otra cosa funcionaría para encontrar todos los servidores con ese EventLog específico?
fuente
foreach($server in $servers)
Respuestas:
Esto haría eco
computer : has MySuperSpecialEventLog entries
ocomputer : exceptionmessage
fuente