J'ai une tâche qui nécessite de mettre à jour un service Windows. Ce service peut être sous différents noms - il demande le nom d'installation lors de l'installation du service ... mais les journaux des événements Windows sont codés en dur sous un nom spécifique en C #:
if (!EventLog.SourceExists("MySuperSpecialEventLog"))
EventLog.CreateEventSource("MySuperSpecialEventLog", "MyLog");
Comment trouver tous les serveurs avec des événements consignés dans ce journal personnalisé?
J'ai joué avec 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"
}
Cela me donne une liste de serveurs ... alors j'essaie de tirer une liste de serveur Services ForEach ... alors je peux simplement filtrer ...
Mais je n'arrive pas à faire en sorte que la chose clique sur tous les cylindres.
Si powershell n’est pas le bon outil - quoi d’autre permettrait de trouver tous les serveurs dotés de cet EventLog spécifique?
la source
foreach($server in $servers)
Réponses:
Cela ferait écho
computer : has MySuperSpecialEventLog entries
oucomputer : exceptionmessage
la source