frankball
Goto Top

Einen Prozess auf allen Rechner einer Domäne finden

Hallo an alle !

In unserer Domäne (Windows) mit XP - Clients kommt es immer mal wieder vor, dass für Nicht - Microsoft - Software Updates eingespielt werden muss, die zum Teil darauf besteht, dass kein User während des Updates angemeldet ist. Ich suche ein Tool, dass für alle (bzw. eine Liste von Rechnern), auf dem jeweiligen Rechner prüft, ob diese Software läuft (ergo diese in benutzung ist). Gibt es so etwas ? Darf sogar was kosten

Beste Grüße

Content-Key: 160604

Url: https://administrator.de/contentid/160604

Printed on: April 25, 2024 at 09:04 o'clock

Member: bastla
bastla Feb 11, 2011 at 14:24:03 (UTC)
Goto Top
Hallo frankball!

Wenn Du eine Domäne hast, warum verteilst Du die Updates nicht per GPO oder über ein Startup-Script?

Grüße
bastla
Member: frankball
frankball Feb 11, 2011 at 14:43:00 (UTC)
Goto Top
Würde ich ja, wenn das so einfach wäre, es handelt sich bei allen betroffenene Softwarepaketen um solche, die zentral vom Admin eingespielt werden muss und die dann Datenbankänderungen vornimmt. Das mache ich an meinem Verwaltungsrechner, muss aber halt wissen, wer noch damit arbeitet, damit da keine Probleme mit den Datenbanken auftreten
Member: Kim
Kim Feb 11, 2011 at 14:50:08 (UTC)
Goto Top
Du könntest das ganze aber auch scripten und zum Beispiel via VBS abfragen ob kein User angemeldet ist.

Da gibts mehrere Mechanismen z.B. auch remote über wmi, psloggedon...

Habe das ganze mal für ein Softwareverteilungssystem in einem etwas größeren Umfang in vbs umgesetzt, habe ich aber grad nicht zur Hand. Solltest aber mit der Suche auf diesem Board sicherlich fündig werden ;)

Gruß
Kim
Member: laster
laster Feb 11, 2011 at 18:11:13 (UTC)
Goto Top
Hallo,

liste aller Rechner in Deiner Domäne
dsquery computer -o rdn  > rechnerliste.txt

und dann die Rechner in der Liste per PSList.exe auf die Tasks prüfen:
for /F %%i IN (rechnerliste.txt) do call :TESTA %%i 
goto ENDE 

:TESTA 
pslist \\%1 > "Rechner_%1_plist.txt"  
goto :EOF

:ENDE

so oder ähnlich...

vG
LS
Member: bastla
bastla Feb 11, 2011 at 18:17:54 (UTC)
Goto Top
@laster
Dann aber besser gleich gezielt:
for /f %%i in (rechnerliste.txt) do pslist "\\%%i" 2>nul|findstr /i /b /c:"prozessname">nul && echo %%i
@frankball
Sorry, hatte die Frage (aber schon ganz) falsch interpretiert ...

Grüße
bastla
Mitglied: 60730
60730 Feb 11, 2011 at 22:43:06 (UTC)
Goto Top
moin,

nix gegen die Frage und die bereits geschriebenen Antworten....(die sich haargenau an die Frageformulierung in der Überschrift halten)

...aber Aber.....

Mit dem PSLIST Weg erkennst du nur, ob zu dem Zeitpunkt, wo die Abfrage läuft, ob ein eingeschalteter Rechner zu dem Zeitpunkt dieses Programm benutzt.
*,Rechner aus
  • Rechner gerade beim booten oder herunterfahren
  • User arbeitet gerade nicht mit der Software
und schon sind es 3 Gründe, wo die Abfrage in die Unterhose geht.

Oder steh ich auf dem Schlauch?

Wenn das eh eine zentrale Datenbank Anwendung sein sollte, dann gäbe es doch die Variante Frage den DB Server - wer die DB offen hat.
Es geht nix über eine gute aktuelle Netzwerkdokumentation face-wink

Gruß
Member: bastla
bastla Feb 11, 2011 at 22:47:00 (UTC)
Goto Top
@t-mo
Ein wenig nachbessern geht zwar noch:
for /f %%i in (rechnerliste.txt) do ping -n 1 "%%i" >nul && pslist "\\%%i" 2>nul|findstr /i /b /c:"prozessname">nul && echo %%i
- aber Dein Ansatz klingt für mich plausibler ...

Grüße
bastla
Member: frankball
frankball Feb 14, 2011 at 14:34:25 (UTC)
Goto Top
Na ja, ist halt alles noch nicht wirklich die perfekte Lösung. Die Batchdatei läuft, dauert mir aber zu lange, also werd ich wol den Weg des geringsten Widerstandes gehen und den DB-Server befragen.