llaprosper
Goto Top

Mit psexec Gruppe der localgroup hinzufügen wie bekomme ich eine vernünftige Kontrolle?

Hallo,

ich möchte eine bestimmte Dömanengruppe der lokalen Administratorengruppe auf unsere Clients verteilen.
Dies funktioniert auch tadellos mit dem Befehl:
psexec.exe @pcs.txt net localgroup administratoren Gruppe /add.

Jetzt bräuchte ich aber eine vernünftige Output-Liste, wo ich erkennen kann, auf welchen Clients es geklappt hat und wo nicht!

Wenn ich hinten noch ein >PfadzurTextDatei\Ergebniss.txt anhänge, bekomme ich eine Liste mit folgendem Inhalt.

Der Befehl wurde erfolgreich ausgeführt.

Der Befehl wurde erfolgreich ausgeführt.

\\Rechner1:
\\Rechner2:
\\Rechner3:

Bei Rechner 2 hat es übrigens(extra) nicht geklappt.
Daraus kann man natürlich nichts erkennen!

Habt Ihr da eine Idee?

Es gibt übrigens Gründe, warum ich es so mache. Also bitte keine Hinweise auf Loginscript ect. auch wenn es nnett gemeint ist face-wink
Ich muss es auf jeden Fall "händisch machen, indem ich eine PC-Liste vorgebe und es dann per batch, Script oder so mache.

Vielen Dank schon ´mal

Content-Key: 113890

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

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

Mitglied: 60730
60730 Apr 15, 2009 at 09:46:27 (UTC)
Goto Top
Servus,

Mach doch aus dem einzeiler einen Zweizeiler:

psexec.exe @pcs.txt net localgroup administratoren Gruppe /add
psexec.exe @pcs.txt net localgroup Gruppe |find /i "Administratoren" && echo %computername%, ok>>\\server\freigabe\logfile || echo badnews from %computername% >>\\server\freigabe\badlogfile  

Gruß
Member: llaprosper
llaprosper Apr 15, 2009 at 10:09:23 (UTC)
Goto Top
Was meinst du denn in Zeile 2 mit net localgroup Gruppe? Welche Gruppe ist denn da nun gemeint?
Die Domänen oder die Lokale?
Mitglied: 60730
60730 Apr 15, 2009 at 10:12:58 (UTC)
Goto Top
Zitat von @llaprosper:
Was meinst du denn in Zeile 2 mit net localgroup Gruppe?
face-wink naja - ich hab nichts weiter gemacht, als deiner erste Zeile zu kopieren und zu ändern.

Welche Gruppe ist denn da nun gemeint?
"natürlich" diejenige welche du in der Zeile vorher angelegt hast.

Sorry, ich dachte das wäre selbsterklärend face-wink

Um "sicher" zu sein, das eine Gruppe angelegt wurde und dort auch die Gruppe Admins drin ist - "einfach" per Net localgroup Gruppennamen...

a) herausfinden, ob diese existiert
b) herausfinden, ob tasächlich die Admins - wie gewünscht - Mitglieder sind.

Gruß
Member: llaprosper
llaprosper Apr 15, 2009 at 10:19:08 (UTC)
Goto Top
War auch eigentlich selbsterklärend face-smile
Hatte es zu früh losgeschickt.
Hmm, das Badlogfile ist nicht da!?
Und im logfile zeigt er mir nur den ersten PC als OK an, dafür 2 mal!

Edit:
Ne, klappt irgendwie nicht.
Die Gruppen werden hinterlegt, im logfile steht aber nur mein eigener Rechnername (und ja, ich bin Admin auf allen Clients. Hab also die Rechte)
weder, der 2.te wo es geklappt hat, steht drin, noch der, wo es nicht geklappt hat.
Mitglied: 77559
77559 Apr 15, 2009 at 11:35:03 (UTC)
Goto Top
Das kann meiner Meinung nach auch nicht klappen.
Du kriegst doch vom psexec Befehl nur eine Fehlerrückgabe.
Du wirst statt @pcs.txt eine "For /F" Schleife zum einzeln Ausführen nehmen müssen.
for /F "delims=" %%A in (pcs.txt) do psexec.exe \\%%A net ....  
Member: llaprosper
llaprosper Apr 15, 2009 at 11:38:44 (UTC)
Goto Top
alter Schwede, das übersteigt leider meine Kenntnisse. BIn absoluter Newbie in dieser Materie.
Das er mir nur meinen Rechnernamen anzeigt, scheint mir klar, weil,

echo badnews from %computername% >>c:\badlogfile.txt
bezieht sich ja nicht mehr auf meine Liste pcs.txt.

Aber was genau muss ich denn schreiben? Kannst Du das mal ausführen?
Mitglied: 60730
60730 Apr 15, 2009 at 11:48:20 (UTC)
Goto Top
Zitat von @77559:
Das kann meiner Meinung nach auch nicht klappen.

Womit ich dir recht gebe face-wink

denn "nur" aus einem übernommenen einzeiler einen Zweizeiler zu machen - ist tatsächlich sinnbefreit face-wink
edit
Bereinigt:

gruppen.cmd

rem in die Domain Gruppe, die Admins einfügen
net localgroup administratoren domain\Gruppe /add
rem jetzt testen, ob alles geklappt hat
net localgroup Administratoren |find /i "domain\Gruppe" && echo %computername%, ok>>\\server\freigabe\logfile || echo badnews from %computername% >>\\server\freigabe\badlogfile  
..und das ganze dingens nun via:
psexec.exe @pcs.txt -c gruppen.cmd
starten.

So sollte das funktionieren.

Gruß
Member: llaprosper
llaprosper Apr 15, 2009 at 12:10:41 (UTC)
Goto Top
Zitat von @60730:


rem zuerst muß mal die Gruppe angelegt werden...
net localgroup Gruppe /add

Warum dieser Schritt?Sollte es denn nicht nur mit nachfolgendem Befehl reichen?
Die Domaingruppe gibt es doch schon.

rem dann in die neue Gruppe, die Admins einfügen
net localgroup administratoren Gruppe /add
Mitglied: 60730
60730 Apr 15, 2009 at 12:18:27 (UTC)
Goto Top
Zitat von @llaprosper:
> Zitat von @60730:
> ----
Warum dieser Schritt?Sollte es denn nicht nur mit nachfolgendem
Befehl reichen?
Die Domaingruppe gibt es doch schon.

Ärgs....

weil du das so geschrieben hast face-wink

Beim nächsten Mal dann bitte:
net localgroup domain\Gruppe....
..dann kommt man[n] (speziell ich) - trotz anonymisierung auch drauf, was du willst face-wink
(obwohl es in deiner Frage ja auch beschrieben war)

mea Culpa ²
Member: llaprosper
llaprosper Apr 15, 2009 at 13:28:14 (UTC)
Goto Top
Klappt leider nicht. Ich bekomme
a) nur die logfile.txt und
b) nur meinen Rechner mit einem OK drinn.

Ich teste es aber immer an 3 Rechnern. "Bei 2en wo es immer klappt. (Weil es sie gibt face-wink)
Und bei einem soll es fehlschlagen.

Wie gesagt: Mein PC wird mir im Textfile angezeigt, der andere leider nicht.
Und einen Fehler beim dritten PC wird leider auch nicht angezeigt.
Mitglied: 60730
60730 Apr 15, 2009 at 15:04:25 (UTC)
Goto Top
ich hab obigen letzten Schnippsel nun geändert und auch bei mir mit Werten gefüllt, die klappen.

Poste mal deinen Schnippsel - denn das funktioniert schon face-wink

Zur Sicherheit mal so herum:

:parameter
Set "Log==\\server\freigabe\log.txt"  
Set Gruppe==domain\gruppe"  

:Ab hier dann bitte nichts ändern
echo %date%>>%log%
if not exist %log% echo Fehler
net localgroup administratoren %Gruppe% /add
net localgroup Administratoren |find /i "%Gruppe%" && echo %computername%,ok>>%log%|| echo badnews from %computername%>>%log%  

Den Abschnit :Parameter bitte anpassen und nochmal probieren.
Ich tippe ja irgendwie drauf, dass derjenige keine Rechte auf den Pfad für das Fehlerlog hat - daher alles in das gleiche Log schreiben lassen.

Gruß
Member: llaprosper
llaprosper Apr 16, 2009 at 07:51:14 (UTC)
Goto Top
Also, mein Schnibsel sieht so aus:
gruppen.cmd:

net localgroup administratoren meine vorhandene Domänengruppe /add

Auf der Feigabe hat "jeder" volle Rechte.

In meiner pcs.txt stehen 3 Rechner
meiner
vom Kollegen
ein nicht existierender

Eingabeaufforderung: (Ich habe übrigens Domainadminrechte)
psexec.exe @pc´s -c gruppen.cmd

Es wird in der Freigabe die logfile.txt erstellt mit dem Inhalt:
Mein Rechner, ok
Mitglied: 60730
60730 Apr 16, 2009 at 08:18:02 (UTC)
Goto Top
Moin,

dann nimm mal bitte die letzte Version.

Und zum ausprobieren (obwohl bei mir alles läuft) folgende Änderungen hintereinander:

  • Pipe nicht in \\server\freigabe - sondern direkt in c: - das muß du dann aber auf dem Client ansehen.
  • füge beim psexec Aufruf ein -i vor -c ein und eine Pause ans Ende der Gruppen.cmd.

btw: ich lese gerade in deinem ersten Post...
Wenn ich hinten noch ein >PfadzurTextDatei\Ergebniss.txt anhänge, bekomme ich eine Liste mit folgendem Inhalt.
Ich hab PsExec v1.94, ads mag das nicht.

Wenn du tatsächlich eine gefüllte Textdatei erhälst, dann mach es ganz anders...
Zeile 9:
net localgroup Administratoren |find /i "%Gruppe%" && echo %computername%,ok>>%log%|| color ff  
"Damit" wird der Errorlevel im nichtfall auf 1 gesetzt.

Gruß
Member: llaprosper
llaprosper Apr 16, 2009 at 10:00:39 (UTC)
Goto Top
Moin,

danke, werde ich mal testen.
Ich sehe gerade bei der vorherigen Version von Dir in der Eingabeaufforderung folgendes:

Beim Versuch für die entfernten pcs etwas in die logfiles zu schreiben, kommt:
Zugriff verweigert!!!!! Hatte ich noch gar nicht gesehen.
Verstehe ich allerdings nicht, da auf dem Share "jeder" Vollzugriff hat!
Da muss also der Haken sein, mehr als freigeben kann ich allerdings nicht!?

Und egal, welchen Pfad ich für die Logs angebe und freigebe: Mein Rechnername wird immer geschrieben, bei den anderen kommt: Zugriff verweigert!
Mitglied: 60730
60730 Apr 16, 2009 at 10:18:27 (UTC)
Goto Top
Moin zurück,

Verstehe ich allerdings nicht, da auf dem Share "jeder" Vollzugriff hat!
Da muss also der Haken sein, mehr als freigeben kann ich allerdings nicht!?

Im zweifel sind es nicht nur die Rechte auf die Freigabe, sondern auch die im Ordner.
füge noch ein - u (domain\user) -p (Passwort) mit den jeweiligen Daten ein.

Gruß
Member: llaprosper
llaprosper Apr 16, 2009 at 10:23:01 (UTC)
Goto Top
ich hab dem Kollegen sogar kurzzeitig Domainadmin-Rechte gegeben und es klappt nicht.
Raff ich nicht
Member: llaprosper
llaprosper Apr 16, 2009 at 11:33:17 (UTC)
Goto Top
Zitat von @60730:


  • Pipe nicht in \\server\freigabe - sondern direkt in c: - das
muß du dann aber auf dem Client ansehen.
  • füge beim psexec Aufruf ein -i vor -c ein und eine Pause ans
Ende der Gruppen.cmd.

Das klappt einwandfrei!
Ich frage mich, warum mein Rechner sich in jede Freigabe schreibt und andere nicht, trotz Domainadminrechte!

Wenn ich jetzt nur folgendes teste:

und in der pc.txt nur den Rechner von meinem Kollegen habe, koomt trotzdem die Meldung: badnews from "meinem PC"!!!
Ich verstehe nun bald gar nichts mehr
Mitglied: 60730
60730 Apr 16, 2009 at 12:09:14 (UTC)
Goto Top
> Zitat von @60730:
> ----

>
> * Pipe nicht in \\server\freigabe - sondern direkt in c: - das
> muß du dann aber auf dem Client ansehen.
> * füge beim psexec Aufruf ein -i vor -c ein und eine Pause
ans
> Ende der Gruppen.cmd.
>
Das klappt einwandfrei!
Ich frage mich, warum mein Rechner sich in jede Freigabe schreibt und
andere nicht, trotz Domainadminrechte!

siehste mal face-wink

Aber verrat mir doch mal deine Version von PSexec face-wink
Probier das mit dem color ff aus - wenn dein PSexec die Ausgabe bei dir lokal in eine Datei pipt.

:parameter
Set Gruppe==domain\gruppe"  

net localgroup administratoren %Gruppe% /add
net localgroup Administratoren |find /i "%Gruppe%" || color ff  

Die erfolgreichen Systeme geben dann lokal bei dir eine 0 und die Fehlerhaften eine 1 zurück.

Gruß
Member: llaprosper
llaprosper Apr 16, 2009 at 12:18:16 (UTC)
Goto Top
Die Version ist die 1.94.0.0.
Das andere teste ich mal

Edit:

Hab es jetzt mit -u -p gemacht!
FUNKTIONIERT!

Wobei ich nie gerne irgendwo ein sensibles PW in Klarschrift eingebe!