Via vbs department aus AD auslesen und in Variable speichern
Hallo
Ich versuche mit fogendem Script das Department Attribut eines spezifischen Users (%Username% weil per Loginscript) in eine Variable zu schreiben. Diese brauche ich für weitere Zwecke beim Login. Ich habe aber Probleme mit dem LDAP Zugriff für die Usersuche. Kann mir da jemand helfen?
Ich versuche mit fogendem Script das Department Attribut eines spezifischen Users (%Username% weil per Loginscript) in eine Variable zu schreiben. Diese brauche ich für weitere Zwecke beim Login. Ich habe aber Probleme mit dem LDAP Zugriff für die Usersuche. Kann mir da jemand helfen?
Set wshShell = CreateObject( "WScript.Shell" )
strUsername = WshShell.ExpandEnvironmentStrings("%USERNAME%")
username = strUsername
Set objRoot = getobject("LDAP://RootDSE")
domainname = objRoot.get("defaultNamingContext")
wscript.echo finduser(username,domainname)
Function FindUser(Byval UserName,Byval Domain)
on error resume next
set cn = createobject("ADODB.Connection")
set cmd = createobject("ADODB.Command")
set rs = createobject("ADODB.Recordset")
cn.open "Provider=ADsDSOObject;"
cmd.activeconnection=cn
cmd.commandtext="SELECT ADsPath FROM ‘LDAP://" & Domain & "‘ WHERE sAMAccountName = ‘" & UserName & "‘"
WScript.Echo cmd.CommandText
set rs = cmd.execute
if err<>0 Then
FindUser="Error connecting to Active Directory Database:" & err.description
else
if not rs.BOF And not rs.EOF Then
rs.MoveFirst
FindUser = rs(0)
Else
FindUser = "Not Found"
end If
end If
cn.close
end Function
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 191611
Url: https://administrator.de/contentid/191611
Ausgedruckt am: 17.11.2024 um 11:11 Uhr
10 Kommentare
Neuester Kommentar
Moin,
warum so kompliziert?
einmal am Tag auf nem Server laufen lassen (so oft werden sich die Departement Infos ja nicht ändern)
Und der User sucht sich mit ner kurzen schleife aus der Textdatei seinen Usernamen und das dazugehörige Department aus?
Oder wenn dir das zu komplex ist ein
tuts doch auch, wenn die dstools auf ner für den user zugänglichen Freigabe liegen?
warum so kompliziert?
Ich versuche mit fogendem Script das Department Attribut eines spezifischen Users (%Username% weil per Loginscript) in eine Variable zu schreiben.
- das bedeutet doch jeder User muß bei jeder Anmeldung die AD abfragen und dann noch via vbs...
Diese brauche ich für weitere Zwecke beim Login.
- Warum nicht ganz simpel irgendwas a'la
dsquery user -limit 0 |dsget user -samid -dept>\\server\freigabe\datei.suffix
Und der User sucht sich mit ner kurzen schleife aus der Textdatei seinen Usernamen und das dazugehörige Department aus?
Oder wenn dir das zu komplex ist ein
dsquery user -samid %username% |dsget user -dept|findstr /v "dept dsget"
Moin,
naja - neee ...
ich versteh es nicht...
sowas da drin hast - die Abfrage ist doch flüssiger als flüssig überflüssig?
Wobei der Bock ja wohl in Zeile 22 zu suchen ist
ganz kleine aber feine Unterschiede
naja - neee ...
ich versteh es nicht...
- wo liesst du denn die department nummer aus?
- und wie funktioniert eine Abfrage %username% per LDAP, wenn du
Else
FindUser = "Not Found"
end If
Wobei der Bock ja wohl in Zeile 22 zu suchen ist
cmd.commandtext="SELECT ADsPath FROM 'LDAP://" & Domain & "' WHERE sAMAccountName = '" & UserName & "'"
ganz kleine aber feine Unterschiede
Salve,
wie ich mir das gedacht hab?
Stand doch oben schon
Und wie oben angedeutet, ich steh halt in Sachen Loginscript auf nen Quickie, dessen Quellcode ich via eine Zigarettenlänge per Rauchzeichen durchmorsen kann.
Ps: Das Problem "Probleme mit LDAP Zugriff aus VBScript" ist dann wohl gelöst?
Änder den Titel um in "via vbs department aus AD auslesen" um, dann findet sich betimmt jemand, der lange Scripte mag.
Gruß ich hab jetzt Eierfabend und Ochenwende
wie ich mir das gedacht hab?
Stand doch oben schon
Und wie oben angedeutet, ich steh halt in Sachen Loginscript auf nen Quickie, dessen Quellcode ich via eine Zigarettenlänge per Rauchzeichen durchmorsen kann.
Ps: Das Problem "Probleme mit LDAP Zugriff aus VBScript" ist dann wohl gelöst?
Änder den Titel um in "via vbs department aus AD auslesen" um, dann findet sich betimmt jemand, der lange Scripte mag.
Gruß ich hab jetzt Eierfabend und Ochenwende
Hallo RetroDude und Limbo!
Ich würde das (wenn es doch eh immer um den aktuellen User gehen soll) etwas kompakter versuchen:
Abgesehen davon: Auch mit der von Limbo vorgeschlagenen Zeile 22 kein Erfolg?
Grüße
bastla
Ich würde das (wenn es doch eh immer um den aktuellen User gehen soll) etwas kompakter versuchen:
Set User = GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName)
WScript.Echo User.Department
Grüße
bastla
Moin,
(ot)
@ bastla: die frage hatte vorher ne andere ueberschrift.
@to: schau dir die betreffende zeile mal genau an, das ist ein moechtegern sql statement und sql "braucht" genau dieses zeichen, nicht das andere (mein eipad kann weder das eine, noch das andere).
(/ot)
Gruss
(ot)
@ bastla: die frage hatte vorher ne andere ueberschrift.
@to: schau dir die betreffende zeile mal genau an, das ist ein moechtegern sql statement und sql "braucht" genau dieses zeichen, nicht das andere (mein eipad kann weder das eine, noch das andere).
(/ot)
Gruss