nagus
Goto Top

Ausgabe PS in einem Batch

Moin,

habe folgendes Problem:
Ich prüfe eine SAMID Liste gegen die Domäne und möchte den Display Namen als Ergebnis haben.
Das funktioniert soweit auch ganz fein mit dem folgenden Script:
for /F "tokens=* " %%i in (%userliste%) do dsquery user -samid %%i | dsget user -samid -display >>%~dp0check_liste.txt  

als Ergebnis erhalte ich folgende Ausgabe:
samid    display               
  XXX     Steven Hawkings  
dsget war erfolgreich

was ich jedoch haben möchte ist nur
  XXX     Steven Hawkings  

Ich weiß dass ich alles mit einer nachfolgenden For Schleife filtern kann , meine Frage wäre jedoch ob ich das nicht gleich bei der Ausgabe erledigen kann.

Wenn ich versucht habe die Ausgabe direkt über die PS zu steuern habe ich immer einen Fehler erhalten. Sowohl mit TEE als auch mit out-file. Wobei die Ausgabe mit TEE ja identisch zur Pipe ist.

Schon mal ein sonniges Wochenende!
Nagus

Content-ID: 434145

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

erikro
erikro 29.03.2019 um 15:49:21 Uhr
Goto Top
Moin,

Mit der Powershell:

foreach($user in $userlist) {

    get-aduser $user -Properties displayname | select Samaccountname, displayname | format-table -hidetableheaders | out-file datei.txt -append -encoding UTF8

}

hth

Erik
rubberman
Lösung rubberman 29.03.2019 um 15:52:19 Uhr
Goto Top
Also, wenn du sowieso mit Batch arbeiten willst, dann Fackel das doch mit einem FINDST Aufruf ab. Ungefähr so:
(
  for /F "tokens=*" %%i in (%userliste%) do @dsquery user -samid %%i|dsget user -samid -display  
)|findstr /vb "samid\> dsget\>">"%~dp0check_liste.txt"  
Steffen
Nagus
Nagus 29.03.2019 um 16:27:02 Uhr
Goto Top
Hey Danke, schon mal

@rubberman
Okay - muss ich mir am Montag mal in Ruhe ansehen.
Gebe dann laut face-smile

@erikro
pur Powershell bin ich noch nicht so fit. Werde ich mir aber auch mal zu Gemüte führen face-wink
Pjordorf
Pjordorf 29.03.2019 um 16:38:25 Uhr
Goto Top
Hallo,

Zitat von @Nagus:
pur Powershell bin ich noch nicht so fit. Werde ich mir aber auch mal zu Gemüte führen face-wink
Das ist pur BATCH, nix Powershell...

Gruß,
Peter
rubberman
rubberman 29.03.2019 um 17:33:24 Uhr
Goto Top
Das ist pur BATCH, nix Powershell...
Nope. Das bezog sich nicht auf meinen Code.

Steffen
138810
Lösung 138810 29.03.2019 aktualisiert um 19:11:51 Uhr
Goto Top
Ausgabe PS in einem Batch
@echo off
Powershell -Executionpolicy ByPass -Command "(gc 'd:\userliste.txt') | %%{get-aduser $_ -Properties DisplayName | ft -hidetableheaders -AutoSize}"