Seitenindex umschalten Seiten: [1]  Thema versendenDrucken
Heißes Thema (mehr als 10 Antworten) WSUS-Statistiken über die PowerShell abrufen (Gelesen: 22626 mal)
MartinG
WSUS Junior Member
*
Offline



Beiträge: 41
Mitglied seit: 11.09.09
Geschlecht: männlich
WSUS-Statistiken über die PowerShell abrufen
25.09.09 um 09:44:10
Beitrag drucken  
Mit folgendem PowerShell-Skript lassen sich einige Statistiken von einem WSUS-Server (Version 3) abrufen.

Damit das Skript funktioniert, muss man es mit der Dateiendung .ps1 speichern, z.B. als wsus.ps1. Ausserdem muss das Ausführen von Skripts erst erlaubt werden, siehe dazu folgenden Artikel:
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).
Oder auch:
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Ist das Skript also erlaubt und als wsus.ps1 gespeichert, ruft man es folgendermassen auf:
(Natürlich muss man dafür die PowerShell installieren... das versteht sich wohl von selbst Zwinkernd)
Code
C:\batch\wsus>powershell .\wsus.ps1 



Hier der Inhalt des Skripts: (es hängt ausserdem 3 Postings weiter unten als Anhang dran)
Code
# Variables - set these to fit your needs
###############################################################################
# The server name of your WSUS server
$serverName = 'localhost'

# use SSL connection?
$useSecureConnection = $False

# the port number of your WSUS IIS website
$portNumber = 80

# warn if a computer has not contacted the server for ... days
$daysBeforeWarn = 14



# Script - don't change anything below this line!
###############################################################################

# load WSUS framework
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")   

# connect to specified WSUS server
# see here for information of the IUpdateServer class
# -> http://msdn.microsoft.com/en-us/library/microsoft.updateservices.administration.iupdateserver(VS.85).aspx
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($serverName, $useSecureConnection, $portNumber)   

# get general status information
# see here for more infos about the properties of GetStatus()
# -> http://msdn.microsoft.com/en-us/library/microsoft.updateservices.administration.updateserverstatus_properties(VS.85).aspx
$status = $wsus.GetStatus()
$totalComputers = $status.ComputerTargetCount
$computersUpToDate = $status.ComputersUpToDateCount
$computersNeedingUpdates = $status.ComputerTargetsNeedingUpdatesCount
$computersWithErrors = $status.ComputerTargetsWithUpdateErrorsCount
$totalUpdates = $status.UpdateCount
$updatesUpToDate = $status.UpdatesUpToDateCount
$updatesNeeded = $status.UpdatesNeededByComputersCount
$updatesWithErrors = $status.UpdatesWithClientErrorsCount

# needed, but not approved updates
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope
$updateScope.ApprovedStates = [Microsoft.UpdateServices.Administration.ApprovedStates]::NotApproved
$updateServerStatus = $wsus.GetUpdateStatus($updateScope, $False)
$updatesNeededByComputersNotApproved = $updateServerStatus.UpdatesNeededByComputersCount

# computers that did not contact the server in $daysBeforeWarn days
$timeSpan = new-object TimeSpan($daysBeforeWarn, 0, 0, 0)
$computersNotContacted = $wsus.GetComputersNotContactedSinceCount([DateTime]::UtcNow.Subtract($timeSpan))

# computers in the "not assigned" group
$computerTargetScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope
$computersNotAssigned = $wsus.GetComputerTargetGroup([Microsoft.UpdateServices.Administration.ComputerTargetGroupId]::UnassignedComputers).GetComputerTargets().Count


# output
"WSUS statistics"
"--------------------------------------------------"
"Total Computers:			$totalComputers"
"Computers up to date:			$computersUpToDate"
"Computers needing updates:		$computersNeedingUpdates"
"Computers with errors:			$computersWithErrors"
"--------------------------------------------------"
"Total Updates:				$totalUpdates"
"Updates up to date:			$updatesUpToDate"
"Updates needed by computers:		$updatesNeeded"
"Updates with errors:			$updatesWithErrors"
"--------------------------------------------------"
"Updates that need to be approved:	$updatesNeededByComputersNotApproved"
"Computers not contacted in $daysBeforeWarn days:	$computersNotContacted"
"Unassigned computers:			$computersNotAssigned" 



Es ruft nun einige allgemeine Statistiken des WSUS-Servers ab und zeigt sie an, z.B. die Anzahl der Computer, Updates, usw.
Interessant sind hierbei hauptsächlich die Anzahl der Computer, die noch Updates benötigen, bzw. die Anzahl der Updates, die von Computern noch benötigt werden.
Zuletzt zeigt das Skript noch einige Dinge an, die ich interessant und wichtig fand (weil man hier direkt eingreifen sollte):
- Anzahl der Updates, die von mindestens einem Computer benötigt werden, aber die nicht genehmigt sind
- Anzahl der Computer, die den WSUS-Server innerhalb eines bestimmbaren Zeitraums nicht kontaktiert haben
- Anzahl der Computer, die keiner Gruppe zugewiesen sind

Die Ausgabe des Skripts:
Code
C:\batch\wsus>powershell .\wsus.ps1
WSUS statistics
--------------------------------------------------
Total Computers:                        47
Computers up to date:                   36
Computers needing updates:              5
Computers with errors:                  0
--------------------------------------------------
Total Updates:                          2258
Updates up to date:                     1244
Updates needed by computers:            9
Updates with errors:                    0
--------------------------------------------------
Updates that need to be approved:       0
Computers not contacted in 14 days:     1
Unassigned computers:                   0 




Das Skript lässt sich noch um einiges erweitern, um Anregungen und Tipps wird gebeten. Smiley
Ihr findet Links zu der ausführlichen Dokumentation der WSUS-Klassen und API im Skript.


Was kann man nun  damit anstellen? Ich habe das Skript in unsere Überwachung eingebunden, wozu wir Nagios nutzen:
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Nagios warnt mich nun (z.B. per Mail), wenn noch Updates freigegeben werden müssen oder Fehler in einem Update auftreten.
Über die Nagios-Erweiterung PNP4Nagios, welche den Verlauf der Nagios-Prüfungen auswertet und grafisch darstellt, bekomme ich ausserdem ein Diagramm, das die Anzahl der nicht aktuellen Computer darstellt (s. Anhang). Cool

Sicher sind noch andere Verwendungen denkbar, z.B. ein täglicher Report per Mail, oder Ähnliches. Würde mich freuen, falls jemand etwas hiermit anfangen kann, dass er sich dann kurz hier verewigt.
  
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen). nagios_wsus.PNG (Anhang gelöscht)
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15138
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #1 - 25.09.09 um 10:36:01
Beitrag drucken  
Wow, das ist ja richtig cool. Vielen Dank dafür. Smiley
  
Zum Seitenanfang
 
UMeadow
WSUS Spezialist
*****
Offline


I Love WSUS!

Beiträge: 1381
Standort: Berlin
Mitglied seit: 22.01.08
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #2 - 25.09.09 um 11:35:12
Beitrag drucken  
Wow, saubere Arbeit  Smiley Smiley
Könntest Du das Script aber bitte als TXT - Datei noch anängen, ich schaffe es jedenfalls nicht den Code sauber rauszukopieren  weinend
  
Zum Seitenanfang
 
MartinG
WSUS Junior Member
*
Offline



Beiträge: 41
Mitglied seit: 11.09.09
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #3 - 25.09.09 um 12:58:11
Beitrag drucken  
Aber klar doch, hier ist das Skript im Anhang. Die Endung ".txt" bitte entfernen. Zwinkernd
  
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen). wsus_ps1.txt (Anhang gelöscht)
Zum Seitenanfang
 
UMeadow
WSUS Spezialist
*****
Offline


I Love WSUS!

Beiträge: 1381
Standort: Berlin
Mitglied seit: 22.01.08
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #4 - 25.09.09 um 13:52:25
Beitrag drucken  
Dankeschön  Smiley
Funktioniert super
  
Zum Seitenanfang
 
UMeadow
WSUS Spezialist
*****
Offline


I Love WSUS!

Beiträge: 1381
Standort: Berlin
Mitglied seit: 22.01.08
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #5 - 25.09.09 um 14:09:07
Beitrag drucken  
MartinG schrieb on 25.09.09 um 09:44:10:
siehe dazu folgenden Artikel:
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Mir ist grad aufgefallen, das die Datei wsus-cleanup.txt den selben Inhalt hat wie das PS Script. Aber eigentlich sollte es ja die die dazugehörige CMD sein.

Da ich nicht weiß, an wen ich diesen Hinweis schicken kann, schreib ich einfach mal hier dazu. Zwinkernd
Schönes Wochenende an Alle
  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15138
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #6 - 28.09.09 um 11:10:22
Beitrag drucken  
UMeadow schrieb on 25.09.09 um 14:09:07:
Da ich nicht weiß, an wen ich diesen Hinweis schicken kann, schreib ich einfach mal hier dazu. Zwinkernd


Im Zweifel an den Admin der Seite, und nein, ich bin das nicht. Zwinkernd Ich hab Marco schon informiert. Kann sich nur noch um Stunden handeln. Zwinkernd
  
Zum Seitenanfang
 
UMeadow
WSUS Spezialist
*****
Offline


I Love WSUS!

Beiträge: 1381
Standort: Berlin
Mitglied seit: 22.01.08
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #7 - 28.09.09 um 11:23:38
Beitrag drucken  
Danke Sunny, werde ich nächste mal machen  Smiley Zwinkernd
  
Zum Seitenanfang
 
soj
WSUS Neuling
Offline


I Love WSUS!

Beiträge: 4
Mitglied seit: 22.01.10
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #8 - 06.04.10 um 10:41:44
Beitrag drucken  
Hallo Jungs,

Nettes Script. Danke. Wäre super wenn mit jemand einen Tip geben könnte warum nur die Windows Clients angezeigt werden, die sich direkt mit meinem Hauptserver verbinden. Die anderen Clients die ihre Updates über Replicaserver holen werden im Script aber nicht angezeigt. Danke.

Gruß SOJ  Smiley
  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15138
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #9 - 06.04.10 um 10:59:23
Beitrag drucken  
soj schrieb on 06.04.10 um 10:41:44:
Nettes Script. Danke. Wäre super wenn mit jemand einen Tip geben könnte warum nur die Windows Clients angezeigt werden, die sich direkt mit meinem Hauptserver verbinden. Die anderen Clients die ihre Updates über Replicaserver holen werden im Script aber nicht angezeigt. Danke.


Was ist auf dem Master-WSUS denn in den Optionen bei der Personalisierung aktiviert? Und was ist beim Berichterstattungsrollup eingestellt?
  
Zum Seitenanfang
 
soj
WSUS Neuling
Offline


I Love WSUS!

Beiträge: 4
Mitglied seit: 22.01.10
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #10 - 06.04.10 um 12:40:45
Beitrag drucken  
Hallo,

Personalisierung:
ich habe dort einen Hacken bei "Computer und Status auf Replikat-Deownstreamserver einbeziehen"

Berichterstattunsrollup:
ich habe dort einen Hacken bei "Statusrollup von Replikat-Downstreamservern"

Gruß SOJ Smiley
  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15138
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #11 - 06.04.10 um 13:07:24
Beitrag drucken  
Nimm die Batchdatei mit dazu und schreib dort die Servernamen rein.
  
Zum Seitenanfang
 
MartinG
WSUS Junior Member
*
Offline



Beiträge: 41
Mitglied seit: 11.09.09
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #12 - 06.04.10 um 14:24:07
Beitrag drucken  
Moin SOJ,

leider habe ich hier keine Downstream-Server, um das Skript daraufhin zu testen. Aus der Doku heraus könntest du aber mal folgendes testen.

Hänge folgenden Code hinten an das Powershell-Skript an. Er ermittelt deine Downstream-Server und fragt bei jedem einzeln die Status-Informationen ab. Wenn dies funktioniert, kannst du natürlich auch das Skript dahingehend umbauen, dass zuerst alle Server durchlaufen werden und ihre Angaben addiert werden, um sie am Ende gesammelt auszugeben.

(Beispiel - nur Computer, keine Updates)
Code
# downstream servers
$downstreamservercollection = $wsus.GetDownstreamServers()
foreach ($downstreamserver in $downstreamservercollection) {
    $downstreamservername = $downstreamserver.FullDomainName   
    $downstreamserverstatus = $downstreamserver.GetStatus()
    $tC = $downstreamserverstatus.ComputerTargetCount
    $cUTD = $downstreamserverstatus.ComputersUpToDateCount
    $cNU = $downstreamserverstatus.ComputerTargetsNeedingUpdatesCount
    $cWE = $downstreamserverstatus.ComputerTargetsWithUpdateErrorsCount

    # output
    "Downstream server $downstreamservername"
    "--------------------------------------------------"
    "Total Computers:                  $tC"
    "Computers up to date:                  $cUTD"
    "Computers needing updates:            $cNU"
    "Computers with errors:                  $cWE"
} 




Die nächste Angabe ("Updates that need to be approved") sollte sehr einfach auch für Downstream-Server zu ermitteln sein: ändere dafür diese Zeile
Code
$updateServerStatus = $wsus.GetUpdateStatus($updateScope, $False) 


in diese Zeile
Code
$updateServerStatus = $wsus.GetUpdateStatus($updateScope, $True) 


(Der zweite Parameter gibt eben an, ob Downstream-Server berücksichtigt werden sollen).


Für die letzten beiden Angaben ("Computers not contacted in xx days" und "Unassigned computers") habe ich bisher nichts gefunden in der Doku. Bist du sicher, dass diese nicht von den Downstream-Server berücksichtigt werden?


Wäre nett, wenn du Rückmeldung gibst, ob das funktioniert oder nicht. Smiley
  
Zum Seitenanfang
 
soj
WSUS Neuling
Offline


I Love WSUS!

Beiträge: 4
Mitglied seit: 22.01.10
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #13 - 07.04.10 um 15:52:17
Beitrag drucken  
Hallo MartinG,

erst einmal einen riesen Dank. Ich habe erst mal einen Schnelltest durchgeführt. Die Ergänzung gehen super. Bis auf die Sache mit "$updateServerStatus = $wsus.GetUpdateStatus($updateScope, $True/$False)", die bringt keine Änderung in der Anzeige.

Die beiden Angaben sind für mich nicht so wichtig. Für mich ist die Gesamtanzahl und die Computer mit Fehler wichtig. Die sollen dann später einmal per Email verschickt werden.

Was ich auch noch suche ist ein Automatischer Export von Berichten. Hast du da noch einen Tip. Danke.

Gruß SOJ Smiley
  
Zum Seitenanfang
 
MartinG
WSUS Junior Member
*
Offline



Beiträge: 41
Mitglied seit: 11.09.09
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #14 - 08.04.10 um 09:19:20
Beitrag drucken  
soj schrieb on 07.04.10 um 15:52:17:
Hallo MartinG,

erst einmal einen riesen Dank. Ich habe erst mal einen Schnelltest durchgeführt. Die Ergänzung gehen super. Bis auf die Sache mit "$updateServerStatus = $wsus.GetUpdateStatus($updateScope, $True/$False)", die bringt keine Änderung in der Anzeige.

Moin SOJ,

super, freut mich dass der erste Teil schonmal funktioniert.

Warum die Änderung an "Updates that need to be approved" nicht funktioniert, verstehe ich nicht. Laut (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen). müsste die Änderung auf "$True" die gewünschten Informationen liefern:
Quote:
If true, include computers that synchronize from downstream servers when determining the [...] UpdatesNeededByComputersCount.


Fragst du denn den Haupt-WSUS-Server ab, also denjenigen, an den die Replika-Server angebunden sind? Und gibt es bei dir überhaupt auf den Replika-Servern Updates, die nicht freigegeben sind, aber von deren Clients benötigt werden?



soj schrieb on 07.04.10 um 15:52:17:
Was ich auch noch suche ist ein Automatischer Export von Berichten. Hast du da noch einen Tip.

Keine fertige Lösung, aber dafür dürfte es verschiedenste Möglichkeiten geben.

Selbstgemacht könntest du in das Powershell-Skript noch Routinen zum Versenden einer E-Mail einbauen, so dass die Ausgaben direkt verschickt werden. Das Skript könntest du dann über den Windows Taskplaner automatisch regelmäßig starten lassen.

Oder du schreibst eine Batch-Datei, die vom Taskplaner aufgerufen wird. Diese wiederum ruft das Powershell-Skript auf und schreibt die Ausgabe in eine Text-Datei. Diese verschickst du dann mit einem Tool wie BLAT (such mal danach im Internet).

Oder du schreibst ein komplettes Reporting-Programm, sei es als Powershell-Skript oder vielleicht in einer anderen Hochsprache wie C#.

Du kannst es dir beliebig kompliziert machen, je nachdem, was du an Funktionen benötigst, wie deine (Programmier-)Kenntnisse aussehen und wieviel Zeit du investieren möchtest. Smiley


Bestimmt gibt es auch fertige Lösungen, die regelmässig ein Programm starten und dessen Ausgabe per Mail verschicken können. Ein solches kenne ich aber nicht aus dem Kopf, müsstest du ebenfalls mal nach suchen.
  
Zum Seitenanfang
 
soj
WSUS Neuling
Offline


I Love WSUS!

Beiträge: 4
Mitglied seit: 22.01.10
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #15 - 09.04.10 um 07:57:09
Beitrag drucken  
Hallo MartinG,

Ich möchte nur den Hauptserver abfragen. Es gibt auch Updates, die auf den Clients benötigt werden und die nicht freigegeben sind. Vorrangig interessieren mich aber die Clients mit den Fehlern, danach die fehlenden Updates.
Das mit dem Email versenden hört sich super an, das werde ich doch gleich mal einbauen.
Ich denke ich werde das Powershell Script etwas ausbauen und nach meinen Bedürfnissen anpassen.

Gruß SOJ Smiley
  
Zum Seitenanfang
 
M4tRiX
WSUS Neuling
Offline


I Love WSUS!

Beiträge: 1
Mitglied seit: 20.09.10
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #16 - 20.09.10 um 15:13:16
Beitrag drucken  
Auch wenn der Thread hier ein bisschen älter ist habe ich noch eine Frage dazu...

Die Statistiken mit den Downstream-Server funktioniert alles bestens nur die Angabe "GetComputersNotContactedSinceCount" ist bei den Downstreamserver unbekannt. Ich habe die beiden Skripte von MartinG zusammengefügt und dann verwendet.

Ich habe nur den foreach-Teil überarbeitet..

So sieht der jetzt aus..

Code
foreach ($downstreamserver in $downstreamservercollection)
{    $downstreamservername = $downstreamserver.FullDomainName
      $downstreamserverstatus = $downstreamserver.GetStatus()
      $downtotalComputers = $downstreamserverstatus.ComputerTargetCount
      $downcomputersUpToDate = $downstreamserverstatus.ComputersUpToDateCount
      $downcomputersNeedingUpdates = $downstreamserverstatus.ComputerTargetsNeedingUpdatesCount
      $downcomputersWithErrors = $downstreamserverstatus.ComputerTargetsWithUpdateErrorsCount
      $downtotalUpdates = $downstreamserverstatus.UpdateCount
      $downupdatesUpToDate = $downstreamserverstatus.UpdatesUpToDateCount
      $downupdatesNeeded = $downstreamserverstatus.UpdatesNeededByComputersCount
      $downupdatesWithErrors = $downstreamserverstatus.UpdatesWithClientErrorsCount
      # needed, but not approved updates
      $downupdateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope
      $downupdateScope.ApprovedStates = [Microsoft.UpdateServices.Administration.ApprovedStates]::NotApproved
      $downupdateServerStatus = $wsus.GetUpdateStatus($downupdateScope, $TRUE)
      $downupdatesNeededByComputersNotApproved = $downstreamserverstatus.UpdatesNeededByComputersCount
      # computers that did not contact the server in $daysBeforeWarn days
      $timeSpan = new-object TimeSpan($daysBeforeWarn, 0, 0, 0)
      $downcomputersNotContacted = $wsus.GetComputersNotContactedSinceCount([DateTime]::UtcNow.Subtract($timeSpan))
      # computers in the "not assigned" group
      $downcomputerTargetScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope
      $downcomputersNotAssigned = $wsus.GetComputerTargetGroup([Microsoft.UpdateServices.Administration.ComputerTargetGroupId]::UnassignedComputers).GetComputerTargets().Count
 # output   
 "Downstream server $downstreamservername"
 "--------------------------------------------------"
"Total Computers:                  $downtotalComputers"
"Computers up to date:                  $downcomputersUpToDate"
"Computers needing updates:            $downcomputersNeedingUpdates"
"Computers with errors:                  $downcomputersWithErrors"
"--------------------------------------------------"
"Total Updates:                        $downtotalUpdates"
"Updates up to date:                  $downupdatesUpToDate"
"Updates needed by computers:            $downupdatesNeeded"
"Updates with errors:                  $downupdatesWithErrors"
"--------------------------------------------------"
"Updates that need to be approved:      $downupdatesNeededByComputersNotApproved"
"Computers not contacted in $daysBeforeWarn days:      $downcomputersNotContacted"
"Unassigned computers:                  $downcomputersNotAssigned"

#Output in die Datei

"Servername:"  + $downstreamservername | Add-content $datei
"Total Computers: " + $downtotalComputers | Add-content $datei
"Total Updates: " + $downtotalUpdates | Add-content $datei
"Computers up to Date: "+ $downcomputersUpToDate | Add-content $datei
"Computers needed Updates: " +$downcomputersNeedingUpdates | Add-content $datei
"Computers with Error: " + $downcomputersWithErrors | Add-content $datei
"Updates up to Date: " + $downupdatesUpToDate | Add-content $datei
"Updates needed by Computer: " + $downupdatesNeeded | Add-content $datei
"Updates with Client Errors: " + $downupdatesWithErrors | Add-content $datei
"Updates that need to be approved: " + $downupdatesNeededByComputersNotApproved | Add-content $datei
#"Computers not contacted in $daysBeforeWarn days: " + $downcomputersNotContacted | Add-content $datei
"Unassigned computers: " + $downcomputersNotAssigned | Add-content $datei
"___________________________________________" | Add-content $datei
}
 



Könnt ihr mir helfen wieso PowerShell "GetComputersNotContactedSinceCount" nicht kennt? Derzeit habe rufe ich diese Information über die Variable "$wsus" auf. Das ist bestimmt falsch, weil ich erhalte in dem Fall die Daten des Upstream-Servers.. Was ja auch logisch ist. Aber was muss ich da eintragen damit die downstreamdaten abgefragt werden?

  
Zum Seitenanfang
 
s_it
WSUS Neuling
Offline


I Love WSUS!

Beiträge: 1
Mitglied seit: 10.03.11
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #17 - 10.03.11 um 15:55:26
Beitrag drucken  
Hallo MartinG,
ich bin neu in WSUS Group, ich arbeite seit 4 Wochewn bei ine Firma, die das Nagios überwachungstool zu bestimmte MS Server 2003 und SBS 2008 ansetzt und das Server Monitoring wird auch zu meiner zentralen Aufgabe sein.

Frage:

wie liefert man nur die Server Update ( Windows Patches) Information zu Nagios??

wie bindet man solche Scripte bzw. Plugin oder eine fertige Vorlage ??

ich möchte direkt im nagios festellen welche updates schon insrtalliert aud den server und welche fehlen??

bin dankbar für eine Antwort.

Gruß
s_it

Smiley
  
Zum Seitenanfang
 
MartinG
WSUS Junior Member
*
Offline



Beiträge: 41
Mitglied seit: 11.09.09
Geschlecht: männlich
Re: WSUS-Statistiken über die PowerShell abrufen
Antwort #18 - 28.03.11 um 11:03:35
Beitrag drucken  
M4tRiX schrieb on 20.09.10 um 15:13:16:
[...]
Könnt ihr mir helfen wieso PowerShell "GetComputersNotContactedSinceCount" nicht kennt? Derzeit habe rufe ich diese Information über die Variable "$wsus" auf. Das ist bestimmt falsch, weil ich erhalte in dem Fall die Daten des Upstream-Servers.. Was ja auch logisch ist. Aber was muss ich da eintragen damit die downstreamdaten abgefragt werden?


Moin M4tRiX, da kann ich dir leider nicht helfen, da wir bei uns keine Downstream-Server einsetzen und ich es somit nicht testen kann.


s_it schrieb on 10.03.11 um 15:55:26:
[...]
Frage:

wie liefert man nur die Server Update ( Windows Patches) Information zu Nagios??

wie bindet man solche Scripte bzw. Plugin oder eine fertige Vorlage ??

ich möchte direkt im nagios festellen welche updates schon insrtalliert aud den server und welche fehlen??

bin dankbar für eine Antwort.

Gruß
s_it

Smiley

Moin s_it, mal sehen, wie ich dir helfen kann.
Für eine Liste, welche Patches auf einem Server noch fehlen, würde ich Nagios nicht unbedingt einsetzen wollen. Nagios erlaubt ja nur relativ kurze Text-Meldungen, siehe hier:
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Im Prinzip sollte jedes Nagios Plugin nur eine Zeile Text zurückgeben. Es wird schwierig werden, dort eine Liste aller fehlenden Patches unterzubringen.

Deine Frage zur Einbindung verstehe ich nicht ganz, aber ich werde mal beschreiben, wie ich es bei uns eingebunden habe. Musst nachfragen, wenn noch etwas fehlt.

Wie das Skript von der PowerShell gestartet wird, hatte ich ja gleich im ersten Beitrag schon beschrieben. Damit Nagios es starten und die Rückgabe auslesen kann, nutze ich NRPE (Nagios Remote Plugin Execute) - ein Windows-Dienst zur Abfrage lokaler Werte, aufgerufen vom Nagios-Server.

Damit der NRPE auf dem WSUS-Server das Skript aufrufen kann, musst du in der NSC.ini folgende Zeile hinzufügen:
Code
[NRPE Handlers]
nrpe_wsus=cmd /c echo scripts\wsus.ps1 | powershell -command -
 



Auf dem Nagios-Server musst du dann ein Kommando definieren, z.B. so:
Code
define command {
  command_name   check_nrpe_wsus
  command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -c nrpe_wsus -t 20
}
 



Zuletzt musst du dann nur noch beim WSUS-Server (in Nagios "Host") den Service einfügen:
Code
define service {
  use                     generic-service
  host_name               xxx
  service_description     WSUS Status
  check_command           check_nrpe_wsus
  normal_check_interval   60
}
 



Nagios sollte nun nach dem nächsten Restart den neuen Service finden und per NRPE die Daten vom WSUS-Server abholen. Smiley
  
Zum Seitenanfang
 
Seitenindex umschalten Seiten: [1] 
Thema versendenDrucken
Bookmarks: Facebook Google Google+ Linked in Twitter Yahoo
 



Nutzungsbedingungen | Datenschutz
Kontakt | RSS | Feedback | Impressum
Facebook | News einsenden