Heißes Thema (mehr als 10 Antworten) Problem mit API (Gelesen: 2609 mal)
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Problem mit API
18.03.09 um 14:14:38
Beitrag drucken  
Hallo zusammen,

ich schreibe mir in VB gerade ein Skript, das auf die APIs zugreift und mir Informationen zu den einzelnen Clients sammelt.

Was ich irgendwie nicht verstehe ist folgendes:
Wenn ich mir alle Clients der API ausgebe, komme ich auch 5957 Rechner. In der WSUS Konsole wird mir aber angezeigt, das der WSUS 6620 Rechner kennt...
Wo sind die übrigen 663 Rechner? Wieso gibt mir die API die nicht aus?

Hoffe ihr könnt mir Aufschluss geben

Hier der Quellcode dafür:
Code
Dim AdminProxy As AdminProxy
Dim iUpdateServer As IUpdateServer

AdminProxy = New AdminProxy
iUpdateServer = AdminProxy.GetUpdateServer(WsusSrv, True, Port)

For Each Computer As IComputerTarget In iUpdateServer.GetComputerTargets()
  i = i + 1
Next 



Fragen nebenbei:
Weiß einer von euch, wie ich über die APIs die noch offenen und nicht installierten Updates für einen Rechner rausbekomme?

Gruß Tim
  
Zum Seitenanfang
 
vis_videri
WSUS Junior Member
*
Offline


I Love WSUS!

Beiträge: 10
Mitglied seit: 16.03.09
Re: Problem mit API
Antwort #1 - 18.03.09 um 16:37:40
Beitrag drucken  
Hallo Tim,

folgende Möglichkeit: Wenn Du im AD einen Client löscht und einen neuen Client mit gleichem Namen neu eincheckst, ist im AD wieder nur dieser eine Rechnername vorhanden. Im WSUS taucht dieser jetzt aber doppelt auf, wenn Du ihn nicht vorher auch dort gelöscht hast.
Überprüf doch einfach mal das Datum der "letzten Statusberichte" im WSUS.

Gruß, vis_videri
  
Zum Seitenanfang
 
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Re: Problem mit API
Antwort #2 - 19.03.09 um 10:42:57
Beitrag drucken  
Hi vis_videri,

wir haben im WSUS so einige die noch keinen Statusbericht erstellt haben, aber diese zählt er auch mit (zumindest bei den Stichproben von mir)

Ansonsten haben wir glaube ich keine doppelten Einträge bei uns im WSUS. Könnte man das denn raus bekommen über ne Abfrage, ob Clients doppelt im WSUS vorhanden sind?

Kann mir aber auch nicht vorstellen, dass wir über 600 doppelte Einträge im WSUS haben.
  
Zum Seitenanfang
 
DESoft
WSUS Experte
*****
Offline


I Love WSUS!<br />

Beiträge: 702
Standort: Magdeburg
Mitglied seit: 24.07.08
Re: Problem mit API
Antwort #3 - 19.03.09 um 14:17:21
Beitrag drucken  
Hi Tim

sollte man die Variable i nicht erstmal auf 0 setzen ? Zwinkernd
Im Delphi / ObjectPascal war das eine Pflicht. Im Arbeitsspeicher kann ja sonst was für ein Bitsalat drinstehen ... der ggf. als negative Zahlenvorbelegung interpretiert wird.

Gruß
Dani
  
Zum Seitenanfang
 
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Re: Problem mit API
Antwort #4 - 19.03.09 um 14:31:01
Beitrag drucken  
DESoft schrieb on 19.03.09 um 14:17:21:
sollte man die Variable i nicht erstmal auf 0 setzen ? Zwinkernd


Danke, aber das mache ich vorher, keine Sorge. Cool
Habe hier ja nur einen Quellcode ausschnitt genommen.

Hat sonst keine eine Ahnung, wie diese große Differenz zustande kommt???
  
Zum Seitenanfang
 
DESoft
WSUS Experte
*****
Offline


I Love WSUS!<br />

Beiträge: 702
Standort: Magdeburg
Mitglied seit: 24.07.08
Re: Problem mit API
Antwort #5 - 19.03.09 um 18:28:02
Beitrag drucken  
Hi Tim,

ok ... ich hab schon verstanden. Laut lachend
Handelt es sich um einen WSUS-Server in einer Replikastruktur oder um einen Singel-WSUS?
  
Zum Seitenanfang
 
vis_videri
WSUS Junior Member
*
Offline


I Love WSUS!

Beiträge: 10
Mitglied seit: 16.03.09
Re: Problem mit API
Antwort #6 - 19.03.09 um 18:37:17
Beitrag drucken  
Hallo Tim,

wenn Du in der Ansicht, in de die Rechner (-gruppen) dargestellt sind, nach Rechnernamen sortierst, hast Du automatisch doppelte untereinander. Übrigens mußt Du im AD gelöschte Rechner im WSUS auch löschen, geht nicht automatisch.

Gruß, vis_videri
  
Zum Seitenanfang
 
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Re: Problem mit API
Antwort #7 - 20.03.09 um 09:23:18
Beitrag drucken  
Moin zusammen,

@DESoft:
Ich frage beim Script unser Haupt-WSUS-Server ab, der sich direkt gegen MS Syncronisiert. Von diesem gibt es einen Replikserver. Dazu gibt es noch andere WSUS-Server die sich gegen den HauptServer Synchronisieren und sich die Patche holen.

@vis_videri:
Ja ok, so bekomme ich alle untereinander angezeigt, ist aber bei über 6500 Rechner mehr als mühselig da doppelte Rechner rauszusuchen.
Außerdem lassen wir ein Script laufen, das alle Rechner die sich länger als x Tage nicht mehr gemeldet haben gelöscht werden bei WSUS.
Und ja, ich weiß das man Rechner die aus dem AD gelöscht werden auch noch im WSUS löschen muss, da dies nicht automatisch funktioniert.

Leider habe ich immer noch keinen blassen Schimmer, wieso man über die APIs viel weniger Rechner zurückbekommt als direkt auf der Konsole angezeigt werden  Griesgrämig
  
Zum Seitenanfang
 
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Re: Problem mit API
Antwort #8 - 24.03.09 um 16:05:43
Beitrag drucken  
Ich habe die Antwort gefunden ...

Wir haben von unserm Haupt-WSUS-Server ein Replica.
Wenn man die Konsole öffnet und sich den Haupt-WSUS-Server anschaut, bekommt man alle Computer angezeigt, auch die, die sich beim Replica melden.

Bei der Abfrage mit den APIs habe ich diese gegen den Haupt-WSUS-Server laufen lassen und habe dabei nur die bekommen, die sich auch bei diesem melden, nicht die vom Replica.

Lösung: ich muss beide WSUS Server separat mit den APIs abfragen und dann klappt es auch.


Es war mir halt noch neu, dass beim WSUS-Server auch die Computer angezeigt werden, die sich beim Replica-Server melden. Der Status derer Computer wird bei der Synchronisierung vom Replica zum Haupt-WSUS-Server weitergeleitet.

Trotzdem danke für eure Hilfe.

PS: Mein Problem, wie ich über die APIs die noch offenen und nicht installierten Updates für einen Rechner raus bekomme steht allerdings immer noch  Laut lachend
  
Zum Seitenanfang
 
DESoft
WSUS Experte
*****
Offline


I Love WSUS!<br />

Beiträge: 702
Standort: Magdeburg
Mitglied seit: 24.07.08
Re: Problem mit API
Antwort #9 - 28.03.09 um 17:35:59
Beitrag drucken  
Hi Tim (AlienShooter),

wir nutzen auch den WSUS-Masterserver für eine Gesamtübersicht, die Weiterleitungsfunktion kann man auf dem Replika-Server nämlich auch abschalten.

Schau doch mal mit SQL-Express in die Datenbank des WSUS, die API-Funktionen rufen (theoretisch) interne Storage-Procedure der Datenbank auf ... eventuell wird da was gefiltert? So könntest Du auch die Infos der Replika-Clients bekommen.

Da gibt es noch eine DB-View die die Relation Update-Client-Zustand listet, eventuell suchst Du die ??? WSUS wertet die z.Bsp. für die Hint-Meldungen in der Spalte "Status" aus ... (x Updates wurden installiert, ... usw).  unentschlossen

LG Dani
  
Zum Seitenanfang
 
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Re: Problem mit API
Antwort #10 - 31.03.09 um 12:05:20
Beitrag drucken  
Hi Dani,

wo kann man das bei den Replica Servern denn abschalten mit der Weiterleitungsfunktion? Obwohl, wenn man einmal weiß wie es ist, ist das gar nicht mal so schlecht. Aber man muss eben erst einmal da drauf kommen ^^

Leider habe ich bisher noch einen DB-Zugriff auf die WSUS-DB.
Wir nutzen eine WMSDE Datenbank, Muss mich damit noch auseinander setzten wie ich da an die Tabellen komme.

Ich bin aber nun auch über die API fündig geworden.
Und zwar wie folgt:

Code
For Each Computer As IComputerTarget In iUpdateServer.GetComputerTargets()
   iNotInstalledCount = Computer.GetUpdateInstallationSummary.NotInstalledCount
   iDownloadedCount = Computer.GetUpdateInstallationSummary.DownloadedCount
Next
 



Zählt man anschließend 'iNotInstalledCount' und 'iDownloadedCount' zusammen, erhält man die Zahl, die in der Konsole unter 'Erforderliche Anzahl' steht.

Gruß Tim

PS: iNotInstalledCount und iDownloadedCount sind beides Integer Werte
  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15134
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: Problem mit API
Antwort #11 - 31.03.09 um 12:41:30
Beitrag drucken  
AlienShooter schrieb on 31.03.09 um 12:05:20:
Leider habe ich bisher noch einen DB-Zugriff auf die WSUS-DB.
Wir nutzen eine WMSDE Datenbank, Muss mich damit noch auseinander setzten wie ich da an die Tabellen komme.


Du könntest es auf diese Art und Weise probieren: (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).
  
Zum Seitenanfang
 
AlienShooter
WSUS Senior Member
***
Offline



Beiträge: 105
Mitglied seit: 16.01.09
Geschlecht: männlich
Re: Problem mit API
Antwort #12 - 01.04.09 um 09:22:56
Beitrag drucken  
Sunny schrieb on 31.03.09 um 12:41:30:
Du könntest es auf diese Art und Weise probieren: (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).


Danke, werde ich mal ausprobieren.


PS: Mir ist noch gestern eingefallen, dass wenn man die API Computer.GetUpdateInstallationSummary verwendet, wird die Abfrage sehr langsam.  Griesgrämig
Braucht bei mir dann schon mehrere Minuten bis er knapp 6000 Clients durch hat. Ohne die API geht das innerhalb von Sekunden.

Gruß Tim
  
Zum Seitenanfang
 
Bookmarks: Facebook Google Google+ Linked in Twitter Yahoo
 



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