jfish
Goto Top

User und Grp. finden?

Hallo Admins,

Ich muss verschiedene User und Gruppen auf über 20000 Servern finden. Dazu habe ich mir ein kleines Script gebaut

psexec \\host1,host2,host3 net localgroup administrators |find /i "dom\grp-name" >> grp.txt

Problem ist, ich brauche nur die Server, die die gesuchten Objekte enthalten. Wenn ich eine IF-Abfrage dahinter hänge funktioniert das FIND nicht mehr und der Hostname, der eigent lich nach dem find kam (&& hostname) gibt nur den eigenen Host zurück. Eine andere Alternative für psexec kenne ich noch nicht. "for" habe ich auch probiert - ging nicht.
Also Ziel ist, das das gesuchtes Objekt und Server in einer Zeile stehen. Habt Ihr 'ne Idee?

Besten Dank

Jens

Content-Key: 97799

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

Printed on: April 16, 2024 at 07:04 o'clock

Member: AndreasA
AndreasA Sep 26, 2008 at 12:11:49 (UTC)
Goto Top
Hallo jfish,

wenn du deine Anfrage nach #Batch verschiebst wirst du sicherlich noch mehr Antworten bekommen face-wink

Zu deinem Problem:
bastel dir eine Schleife mit Hilfe einer Serverliste (z.B. C:\srv.txt) die du abfragen willst in etwa so
@echo off
set srv_lst=c:\srv.txt
set logfile=c:\server_group_found.txt
set search_grp=dom\grp-name
for /f %%i in (%srv_lst%) do (call :findgroup %%i)
echo fertig
goto :eof
:findgroup
set SRV=%1
psexec \\%SRV% net localgroup administrators | find /i "%search_grp%"  
IF errorlevel EQU 0 (echo %search_grp%;%SRV%>>%logfile%
goto :eof

Die Variable search_grp macht es dir möglich dein Skript leichter anzupassen face-wink

Grüße AndreasA
Member: jfish
jfish Oct 02, 2008 at 07:02:03 (UTC)
Goto Top
Hallo,

an der Stelle, wo der Hostname abgefragt wird, gibt das Script nur den Namen des Systems auf dem das Script gestartet wurde zurück.
Member: AndreasA
AndreasA Oct 02, 2008 at 20:47:25 (UTC)
Goto Top
Sorry mein Fehler
hab den code für zeile 10 und 11 noch mal angepasst
psexec \\%srv% -u Admin -p Passwort net localgroup administrators | find /i "%search_grp%"  
IF %errorlevel% EQU 0 (echo %search_grp%;%SRV%>>%logfile%)

-u Admin durch einen Benutzer ersetzen mit dem Remote auch die Rechte bestehen
-p Passwort sein entsprechendes Kennwort