Jump to content
Sign in to follow this  
DoubleW

Benutzer über eine Batch-Datei auslesen

Recommended Posts

Hallo,

 

ich sitze hier seit Tagen schon vor folgendem Problem:

 

Es besteht eine 2003er Serverumgebung mit NT4-Clients (aber auch XP...). Die Benutzer sind über AD verschiedenen Gruppen und Organisationseinheiten zugeordnet.

Nun möchte ich über ein (Anmelde-)Skript auslesen, in welcher Organisationseinheit der jeweilige Benutzer ist (die Gruppenzugehörigkeit wird auch ermittelt, ist aber kein Problem) und ihm entsprechende Einstellungen verpassen.....

 

Im Moment hänge ich an folgendem Befehl:

 

dsquery user ou=Abteilung,dc=testnetz,dc=local -o dn -name %username%

 

Hier frage ich also ab, ob der am Client angemeldete User auch Mitglied der OU ist. Das sollte auch so funktionieren, nur gehts hier nicht weiter, d.h. ich weiß nicht, wie ich "dsquery" auswerten soll. Ist der User nicht in der OU gibt "dsquery" nichts bzw. leer zurück. Ist er drin, kommt: cn=username,ou=PP,dc=testnetz1,dc=local -o dn -name. Hier bleib ich dann immer hängen..... Wie kann ich das Ergebnis auswerten??

:confused:

 

Über einige Anregungen wäre ich sehr dankbar.

Der Lösungsweg könnte auch sehr einfach sein (über Variable abfragen, ob Ergebnis leer oder nicht.....), nur fällt mir gar nix mehr ein....

Share this post


Link to post

Hi,

 

versuch mal, dsquery auf einen Find-Befehl zu pipen :

 

dsquery user ou=Abteilung,dc=testnetz,dc=local -o dn -name %username%* | find /i "%username%" && (@echo User ist in OU) || (@echo User ist nicht in OU)

 

Grüße,

Fritz

Share this post


Link to post

hi,

hab gerade keinen richtigen Rechner vor mir.

probier mal:

wmic useraccount list brief oder

wmic useraccount list full

 

cu

blub

Share this post


Link to post

Hi,

 

vielen Dank für die Anregungen.

Konnte es am WE nicht ausprobieren, sitze aber jetzt wieder dran. Der Vorschlag von fritzo klappt wunderbar!

Nur komme ich nicht sehr viel weiter (...oder ich verstehs einfach noch nicht).

Die Auswertung von "User ist in OU" (oder nicht) soll ja z.B. über eine Softwareinstallation entscheiden. D.h., wenn der User in der OU ist, soll das Script die Installation eines MSI-Paketes anweisen, wenn nicht, ist das Script beendet.

Mir fehlt also nur dieser kleine Schritt, dass "User ist in OU" "wahr" ist und die Softwareinstallation beginnt, ansonsten nicht. Kann ich das denn direkt aus der Abfrage

 

dsquery user ou=Abteilung,dc=testnetz,dc=local -o dn -name %username%* | find /i "%username%" && (@echo User ist in OU) || (@echo User ist nicht in OU)

 

entnehmen oder müsste ich eine weitere Abfrage damit verbinden?

Und genau hier versage ich ständig..........

 

 

Den Vorschlag von blub prüfe ich gerade (wmic). Da muss ich mich erstmal reinfinden, da ich leider davon noch nie was gehört hab :wink2:

 

 

Trotzdem danke erstmal!!

 

 

EDIT: Da ich ja jetzt die Kombination mit "find" habe, könnte ich eine Abfrage über errorlevel machen?

 

z.B. if not errorlevel 1 goto ENDE

 

Möglich ist das, aber ist es auch richtig bzw. korrekt?

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...