Überwachungen mit Boardmitteln

Uns geht es an dieser Stelle nicht darum, mit professionellen Lösungen wie z.B. Nagius oder SCOM in Konkurrenz zu treten. Wir wollen vielmehr aufzeigen, welche kleinen Unterstützungen mit der PowerShell auch ohne große Programmierkenntnisse möglich sind.
Eine einfache Möglichkeit zur Weiterleitung der hier ermittelten Monitoringergebnisse wird hier erklärt.

Ereignislog: die letzten 5 Fehler

Das folgende Script fragt bei allen Domänencontroller eine Auswahl von Ereignislogs ab und gibt die letzten 5 Fehler zurück.

Code

Import-Module -Name ActiveDirectory
$LogListe = "Application","System","Directory Service","DNS Server","HardwareEvents"
$DCListe=Get-ADComputer -SearchBase "OU=Domain Controllers,dc=Kurs,dc=LAN" -LDAPFilter "(name=*)"
foreach ($DC in $DCListe){
    $DNSDC = $DC.DNSHostName
    foreach ($Log in $LogListe){
        Write-Host "Die letzten 5 Fehler auf Server $DNSDC in Log: $Log"
        Get-EventLog -LogName $Log -EntryType Error -Newest 5 -ComputerName $DNSDC
    }
}
cmd /c Pause

Ereignislog: die letzten ab einem Datum

Das folgende Script fragt bei allen Domänencontroller eine Auswahl von Ereignislogs ab und gibt die Fehler ab einem definiertem Datum zurück.

Code

Import-Module -Name ActiveDirectory
$LogListe = "Application","System","Directory Service","DNS Server","HardwareEvents"
$DCListe=Get-ADComputer -SearchBase "OU=Domain Controllers,dc=Kurs,dc=LAN" -LDAPFilter "(name=*)"
foreach ($DC in $DCListe){
   $DNSDC = $DC.DNSHostName
   foreach ($Log in $LogListe){
      Write-Host "Die letzten 5 Fehler auf Server $DNSDC in Log: $Log"
      Get-EventLog -LogName $Log -EntryType Error -After 01/08/2013 -ComputerName $DNSDC
   }
}
cmd /c Pause

Dienstüberprüfung

Wer kennt das nicht: eine größere Anzahl von physikalischen oder virtuellen Servern wurde geplant oder ungeplant neu gestartet. Auf einigen Systemen kann es dabei schon mal vorkommen, dass nicht alle Dienste gewünscht wieder starten. Nicht selten ist hier Handarbeit gefragt:

  • Überprüfung der entsprechenden Dienste auf den Servern
  • Start der Dienste nach Bedarf

Code

$ServerListe="SRV1","SRV2","SRV3"
$Suffix = ".Kurs.LAN"
foreach ($Server in $ServerListe){
   $DNSMS = $Server + $Suffix
   $Dienste = Get-WmiObject Win32_Service -ComputerName $DNSMS -Filter "StartMode='Auto' AND State='Stopped' AND Name!='clr_optimization_v4.0.30319_64' AND Name!='clr_optimization_v4.0.30319_32'"
   Write-Host "Alle nicht laufenden Dienste auf Server $DNSMS welche automatisch starten sollten."
}
cmd /c Pause

Start der überprüften Dienste

Im obigen Script wurden die Dienste ermittelt, welche automatisch hätten starten sollen, dies aber nicht wurden bzw. aus undefinierten Gründen beendet wurden. Das folgende Script baut auf dem obigen auf, indem es die gefundenen Dienste auf den jeweiligen Remotesystemen automatisch startet.

Code

$ServerListe="SRV1","SRV2","SRV3"$Suffix = ".Kurs.LAN"
foreach ($Server in $ServerListe){
   $DNSMS = $Server + $Suffix
   $DiensteListe = Get-WmiObject Win32_Service -ComputerName $DNSMS -Filter "StartMode='Auto' AND State='Stopped' AND Name!='clr_optimization_v4.0.30319_64' AND Name!='clr_optimization_v4.0.30319_32' AND Name!='sppsvc'"
   Foreach($Dienst in $DiensteListe){
      $DienstName = $Dienst.Name
      Invoke-Command -ComputerName $Server -ArgumentList $DienstName -ScriptBlock {Start-Service -Name $Args[0]}
   }
}

  •  il-it Services GmbH
  • Hier gelangen Sie auf die StartseiteHome
  • Rücksprung auf die vorherige Seitezurück
  • Nur wo Impressum drauf steht, ist auch Impressum drin... 
  • Unsere Kontaktdaten und ein Kontaktformular finden Sie hier. 
  • Wer suchet der findet...auf Basis einer Volltextsuche. 
  • Unser Team, Profile, Zertifizierungen und Kontaktdaten. 
  • Absolut sichere Referenzen. 
  • SOS, wenn es in der IT wieder einmal "brennt"... 
  • Aufruf dieser HilfeinformationBedeutung anzeigen
© 2013 - 2021 il-it Services GmbH