Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung VB for Applications

GELÖST

Wie kann ich FullName bzw First und Lastname aus dem ADS auslesen?

Mitglied: fraggle666

fraggle666 (Level 1) - Jetzt verbinden

18.02.2008, aktualisiert 22.02.2008, 7322 Aufrufe, 3 Kommentare

Hallo zusammen,

ich versuche gerade mittels eines VB Scriptes und einer Textdatei, die mit User ID´s gefüttert ist, die Namen auszulesen.

Bisher bekomme ich folgende Werte:
UserID: Testuser (Testuser = der Login Name)
UserName:
Users Distinguished Name: CN=Testuser,OU=Users,OU=DE,DC=test,DC=test,DC=test
Users HomeDrive: H:
Users HomeDirectory: \\server\Home$\Testuser
Users TSRProfilePath: \\server.test.test.test\Profile$\Testuser\Profile.tsr


Und der Vor- und Nachname soll nun mit ausgegeben werden.


Vorname = Pferde
Nachname = Apfel


Hier das Script:

On Error Resume Next

strLogTimeStamp = mid(date(),7 ,4) & mid(date(), 4, 2) & mid(date(), 1, 2) & "_" & mid(time(), 1, 2) & mid(time(), 4, 2) & mid(time(), 7, 2)
strProgName = "Test1"
strLogPfad = "C:\Temp\" & strProgName

Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8

Set fs = CreateObject("Scripting.FileSystemObject")
Set objTextFile = fs.OpenTextFile("C:\temp\lala.txt", ForReading)


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Log-Datei vorbereiten WScript.Echo "Username : " objuser.displayname
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if not fs.FolderExists("L:\LOGS") then
fs.CreateFolder "L:\LOGS"
End if

If not fs.FolderExists(strLogPfad) then
fs.CreateFolder strLogPfad
End if

Set strLogDatei = fs.OpenTextFile(strLogPfad & "\Uebersicht_" & strLogTimeStamp & ".txt", ForWriting, True)
Set strHomeDrvFile = fs.OpenTextFile(strLogPfad & "\HomeDriveFehlt_" & strLogTimeStamp & ".txt", ForWriting, True)
Set strHomeDirFile = fs.OpenTextFile(strLogPfad & "\HomeDirFehlt_" & strLogTimeStamp & ".txt", ForWriting, True)
Set strTSRProf = fs.OpenTextFile(strLogPfad & "\TSRProfielFehlt_" & strLogTimeStamp & ".txt", ForWriting, True)

C = 0
D = 0
E = 0
F = 0

Do While objTextFile.AtEndOfStream <> True Or C = 10
strName = objTextFile.ReadLine
displayname = objuser.displayname
usrdistinguished = getdistinguishedname()
strLogDatei.Writeline "--------------------------------------------"
strLogDatei.Writeline "UserID: " & strName
strLogDatei.Writeline "UserName: " & displayname
strLogDatei.Writeline "Users Distinguished Name: " & usrdistinguished
Set objUser = GetObject("LDAP://" & usrdistinguished)
objUser.GetInfo
strHomeDirectory = objUser.Get("homeDirectory")
strHomeDrive = objUser.Get("homeDrive")
strTSRProfPath = objUser.TerminalServicesProfilePath
' If strHomeDrive <> "" Then
' strLogDatei.Writeline "Users HomeDrive: " & strHomeDrive
' D = D + 1
' Else
' strHomeDrvFile.Writeline "Dieser User hat kein HomeDrive: " & strName & " - " & usrdistinguished
' End If
' If strHomeDirectory <> "" Then
' strLogDatei.Writeline "Users HomeDirectory: " & strHomeDirectory
' E = E + 1
' Else
' strHomeDirFile.Writeline "Dieser User hat kein HomeDirectory: " & strName & " - " & usrdistinguished
' End If
' If strTSRProfPath <> "" Then
' strLogDatei.Writeline "Users TSRProfilePath: " & strTSRProfPath
' F = F + 1
' Else
' strTSRProf.Writeline "Dieser User hat kein TSRProfilePath: " & strName & " - " & usrdistinguished
' End If
C = C + 1
Loop

strLogDatei.Writeline "Anzahl der Userobjecte = " & c
strLogDatei.Writeline "Anzahl der HomeDrives = " & d
strLogDatei.Writeline "Anzahl der HomeDirectorys = " & e


'
'
' Function to get distinguished name of user logged on
'
'
' ReturnValue - distinguished name
'
function getdistinguishedname()
' On Error Resume Next

Dim X
Dim Con
Dim oCommand
Dim objArgs
Dim ADsObject
Dim sADsPath
Dim objName
Dim objClass
Dim objSchema
Dim classObject

Set X = createobject("WSCRIPT.Network")
'strName=x.username
Set Con = CreateObject("ADODB.Connection")
Con.Provider = "ADsDSOObject"
Con.Open "Active Directory Provider"

Set oCommand = CreateObject("ADODB.Command")
oCommand.ActiveConnection = Con

Set objRootDSE = GetObject("LDAP://rootDSE")
sDomain = objRootDSE.Get("defaultNamingContext")

Set domain = GetObject("GC://" & sDomain)
sADsPath = "<" & domain.ADsPath & ">"

sFilter = "(&(objectCategory=person)(objectClass=user)(Name=" & strName & "))"
sAttribsToReturn = "distinguishedName"
sDepth = "subtree"

oCommand.CommandText = sADsPath & ";" & sFilter & ";" & _
sAttribsToReturn & ";" & sDepth
Set rs = oCommand.Execute

rs.MoveFirst
While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
If rs.Fields(i).Name = "distinguishedName" Then
distinguishedPath = rs.Fields(i).Value
End If
Next
rs.MoveNext
Wend

'Quit if nothing is found
If rs.RecordCount = 0 Then
WScript.Quit
End If


getdistinguishedname = distinguishedPath

end function



Das Problem ist, es handelt sich dabei um ein vorgeschriebenes Script meines Vorgängers, dass ich nun anpassen soll.
Ich habe bis dato noch nie etwas mit VB zu tun gehabt, und versuche dieses Script zu verstehen...

Könnt ihr mir helfen? :/

Danke euch
Mitglied: fraggle666
18.02.2008 um 14:15 Uhr
Do While objTextFile.AtEndOfStream <> True Or C = 10
strName = objTextFile.ReadLine
usrdistinguished = getdistinguishedname()
displayname = objuser.displayname
strLogDatei.Writeline "--------------------------------------------"
strLogDatei.Writeline "UserID: " & strName
strLogDatei.Writeline "UserName: " & displayname
strLogDatei.Writeline "Users Distinguished Name: " & usrdistinguished
Set objUser = GetObject("LDAP://" & usrdistinguished)
objUser.GetInfo
strHomeDirectory = objUser.Get("homeDirectory")
strHomeDrive = objUser.Get("homeDrive")
strTSRProfPath = objUser.TerminalServicesProfilePath

Soweit bin ich nun. Allerdings kopiert er mir nun immer den Display Name, des nachfolgenden Benutzers in die aktuelle Zeile...

Sehr mysteriös
Bitte warten ..
Mitglied: fraggle666
19.02.2008 um 11:42 Uhr
nunja,

nächstes Problem. Wie kann ich nun "alle" User Daten mittels VBS aus dem ADS auslesen?
Im vorher geschilderten Problem hatte ich ja eine Textdatei mit Usern, die ich nur mit den ADS Daten abgleichen wollte.

Ich war schon hier:
http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts ...

Aber irgendwie bekomm ich das trotzdem nicht hin. Mit diesen Scripts, wird ja, wenn ichs richtig verstanden habe, nur jeweils ein User abgefragt.

Zu Hülf!
Bitte warten ..
Mitglied: fraggle666
22.02.2008 um 10:35 Uhr
Eine vbs Datei erstellen und in einem cmd Fenster mit cscript "ads.vbs" > K:\test.txt starten :

Set ou = GetObject("LDAP://OU="Zielfolder",OU="Übergeordneter Folder",DC="Domain",DC="de"")

For Each obj In ou

wscript.echo obj.name


Next


Das wars
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell - Get-content where fullname
gelöst Frage von internet2107Batch & Shell2 Kommentare

Hallo. Mal wieder eine knifflige Aufgabe, die mich seit 2 Stunden graue Haare kostet :( Im Code unten soll ...

Samba
Verknüpfung von ADS- und Linux Gruppen
gelöst Frage von 98500Samba19 Kommentare

Hey@ALL Folgende Frage. Ich habe in meinem ADS diverse Gruppen angelegt: Beispiel: - ADS_01_Leitung - ADS_02_Vertrieb - ADS_03_ Buchhaltung ...

Windows Netzwerk
Umleitung in ADS (DNS) möglich-?
gelöst Frage von Mr.WhiteWindows Netzwerk5 Kommentare

Guten Abend zusammen, wieder einmal ich :-), kurze und knackige Frage, gibt es unter der ADS sprich durch den ...

Windows Server
Replikation zweier ADs über langsame Verbindung.
gelöst Frage von shannyWindows Server7 Kommentare

Hallo, ich bin gerade dabei zwei AD zu verbinden, die an verschiedenen Standorten sind. Das Problem hierbei ist, dass ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 9 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 9 StundenSicherheit7 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 10 StundenSicherheit6 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 10 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen20 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...