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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 97799
Url: https://administrator.de/contentid/97799
Ausgedruckt am: 24.11.2024 um 16:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo jfish,
wenn du deine Anfrage nach #Batch verschiebst wirst du sicherlich noch mehr Antworten bekommen
Zu deinem Problem:
bastel dir eine Schleife mit Hilfe einer Serverliste (z.B. C:\srv.txt) die du abfragen willst in etwa so
Die Variable search_grp macht es dir möglich dein Skript leichter anzupassen
Grüße AndreasA
wenn du deine Anfrage nach #Batch verschiebst wirst du sicherlich noch mehr Antworten bekommen
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
Grüße AndreasA
Sorry mein Fehler
hab den code für zeile 10 und 11 noch mal angepasst
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
-p Passwort sein entsprechendes Kennwort