Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBS LDAP Verzeichniss

Frage Entwicklung VB for Applications

Mitglied: Blackflip

Blackflip (Level 1) - Jetzt verbinden

23.04.2009, aktualisiert 14:43 Uhr, 9250 Aufrufe, 8 Kommentare

Ich möchte eine Tabelle erstellen mit der Ich über das LDAP mehrere Benutzer das Passwort zurücksetzen kann, diese Sollen dann Per Mail zugeschickt werden, da die Passwörter vorher generiert wurden.

Also ich bekomme es hin die Passwörter zu generieren und die E-Mails zu versenden.

Mein Problem ist wenn ich über LDAP auf das AD zugreifen möchte, bekomme ich immer die Fehlermeldung:
Automatisierungsfehler,
Ein Solches Objekt ist auf den Server nicht vorhanden.


Meine AD Struktur ist ca. Folgende wo ich auf den Benutzer zugreifen möchte:

Domaene.de
--> Benutzer
--> Firma
--> Firma_Benutzer

Ich hatte es mit folgenden beiden LDAP Verbindungen Probiert und es gab immer die gleiche Fehlermeldung

Set objuser = GetObject _
("LDAP://cn=" & strUsername & ", ou=Firma_Benutzer,dc=Domaene,dc=de")

oder

Set objuser = GetObject _
("LDAP://cn=" & strUsername & ",ou=Benutzer, ou=Firma, ou=Firma_Benutzer,dc=Domaene,dc=de")

was mach ich falsch?
Der Rest sollte ich dann eigentlich wieder hinbekommen:o
Mitglied: dog
23.04.2009 um 11:40 Uhr
So wie du das machst wirst du den User eher nicht finden.

cn ist nämlich nicht der sAMAccountName (den du wahrscheinlich benutzen willst) sondern, der commonName (so wie er in der Active-Directory-Benutzerübersicht angezeigt wird).

Schau dir mal das erste Codeschnipsel an:

http://www.tek-tips.com/faqs.cfm?fid=5688

Dann brauchst du nur noch:

01.
Set obj = GetObject("LDAP://" & SearchDistinguishedName(strUsername))
Grüße

Max

Übrigens: Struktur - ohne ck
Bitte warten ..
Mitglied: Blackflip
23.04.2009 um 14:42 Uhr
hee du bist Super
Dafür könnt ich dich am liebsten Küssen.

Jetzt funktioniert das soweit, wenn ich in meiner eigenen(aktiven) Domäne suche. Das Prob-lem ist, das die Nutzer auch aus anderen Domänen kommen werden.

und ja du hattest Recht, ich hab versucht mit den Anmeldenamen den Account zu finden

Edit: hab mal bei beiden Beiträgen die Rechtschreibung überarbeitet, wenn man schon solch freundliche Hilfe bekommt
Bitte warten ..
Mitglied: dog
23.04.2009 um 16:06 Uhr
Schön, wenn dir das hilft.

Bei deinem Problem mit mehreren Domänen würde mir aber nur einfallen, dass du die Funktion so anpasst, dass dort nicht LDAP://rootDSE sondern LDAP://dc=domaene,dc=de steht und ein User evtl. explizit eine Domäne auswählen kann.

Alternativ solltest du auch alle deine Domänen in einen Forest aufnehmen können, und dann über GC://rootDSE (nicht getestet) alle Domänen durchsuchen können.

Grüße

Max
Bitte warten ..
Mitglied: Blackflip
23.04.2009 um 16:24 Uhr
Ich hab das gerade soweit angepasst, wenn ich das richtig verstanden hatte. Leider funktioniert das nicht und die Zelle 1.2 bleibt Leer. Eine Fehlermeldung kommt aber auch nicht.

Der Nutzer hat einen Displaynamen in der anderen Domäne, aber hier wird nix ausgegeben.

Die Funktion SearchDistinguishedName() ist die aus deinen Link, da hab ich eigentlich nix geändert.

01.
strUsername = "FGTSDA" 'Anmeldename aus einer anderen Domäne 
02.
 
03.
Set objuser = GetObject("LDAP://dc=Firma,dc=de" & SearchDistinguishedName(strUsername)) 
04.
'Rückgabe des Wertes aus den AD 
05.
Cells(1, 2) = objuser.DisplayName
Mit den Forest sagt mir so leider nix und muss ich erst einmal nachschauen, wie das funktionieren könnte.
Bitte warten ..
Mitglied: dog
23.04.2009 um 17:04 Uhr
01.
Set objuser = GetObject("LDAP://dc=Firma,dc=de" & SearchDistinguishedName(strUsername))
Das kann so nicht funktionieren.
Was hier augewertet steht ist nämlich:

01.
Set objuser = GetObject("LDAP://dc=Firma,dc=de")
Die Funktion SearchDistinguishedName sucht ja nur in der aktuellen Anmeldedomäne.
Schlägt das fehl, weil es den Useraccount in dieser Domäne nicht gibt, ist dein Rückgabewert leer.

Du müsstest die Funktion also so umschreiben, dass du die Domäne als Parameter übergeben kannst.
Aber vielleicht geht es auch schon über den Forest.

Grüße

Max
Bitte warten ..
Mitglied: Blackflip
24.04.2009 um 08:32 Uhr
Das mit den Forest find ich leider immer nur beiträge über Wälder bei google >_> Ich hab gestern schon den ganzen Abend ausprobiert.

Und zu den anderen Vorschlag, das hab ich einmal direkt in der Funktion umgeändert, bevor ich das als Parameter übergebe. An der Stelle bringt er mir dann keine Fehlermeldung aber später.

01.
    Dim oRootDSE, oConnection, oCommand, oRecordSet 
02.
 
03.
    Set oRootDSE = GetObject("LDAP://dc=Firma, dc=de") 
04.
    Set oConnection = CreateObject("ADODB.Connection") 
05.
    oConnection.Open "Provider=ADsDSOObject;" 
06.
    Set oCommand = CreateObject("ADODB.Command") 
07.
    oCommand.ActiveConnection = oConnection 
08.
    oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _ 
09.
        ">;(&(objectCategory=User)(samAccountName=" & vSAN & "));distinguishedName;subtree" 
10.
    Set oRecordSet = oCommand.Execute 
11.
    On Error Resume Next 
12.
    SearchDistinguishedName = oRecordSet.Fields("DistinguishedName") 
13.
    On Error GoTo 0 
14.
    oConnection.Close 
15.
    Set oRecordSet = Nothing 
16.
    Set oCommand = Nothing 
17.
    Set oConnection = Nothing 
18.
    Set oRootDSE = Nothing
So sieht es derzeit aus und bei kommt die Fehlermeldung: Die Verzeichniseigenschaft wurde nicht im Cache gefunden

01.
    oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _ 
02.
        ">;(&(objectCategory=User)(samAccountName=" & vSAN & "));distinguishedName;subtree"
Bitte warten ..
Mitglied: dog
24.04.2009 um 09:35 Uhr
Ich hab' das ganze mal angepasst, wenn man explizit eine Domäne angibt:

01.
Public Function SearchDistinguishedName(ByVal vSAN) 
02.
    ' Function:     SearchDistinguishedName 
03.
    ' Description:  Searches the DistinguishedName for a given SamAccountName 
04.
    ' Parameters:   ByVal vSAN - The SamAccountName to search 
05.
    ' Returns:      The DistinguishedName Name 
06.
    Dim oRootDSE, oConnection, oCommand, oRecordSet 
07.
 
08.
 
09.
    Set oConnection = CreateObject("ADODB.Connection") 
10.
    oConnection.Open "Provider=ADsDSOObject;" 
11.
    Set oCommand = CreateObject("ADODB.Command") 
12.
    oCommand.ActiveConnection = oConnection 
13.
    oCommand.CommandText = "<LDAP://dc=firma,dc=local" & _ 
14.
        ">;(&(objectCategory=User)(samAccountName=" & vSAN & "));distinguishedName;subtree" 
15.
    Set oRecordSet = oCommand.Execute 
16.
    On Error Resume Next 
17.
    SearchDistinguishedName = oRecordSet.Fields("DistinguishedName") 
18.
    On Error GoTo 0 
19.
    oConnection.Close 
20.
    Set oRecordSet = Nothing 
21.
    Set oCommand = Nothing 
22.
    Set oConnection = Nothing 
23.
End Function 
24.
 
25.
Msgbox(SearchDistinguishedName("max"))
Bitte warten ..
Mitglied: Blackflip
24.04.2009 um 14:15 Uhr
Bei meiner derzeitig angemeldeten Domäne funktioniert das Wunderbar, sobald ich aber diese ändere und ein Benutzer aus einer anderen Domäne zugreifen möchte kommt die Fehlermeldung:
Laufzeitfehler '-2147463168(80005000)':

Automatisierungsfehler

in der Zeile:
01.
strUsername = "O999999" 'Anmeldename aus einer Anderen Domäne 
02.
 
03.
Set objuser = GetObject("LDAP://" & SearchDistinguishedName(strUsername))
Das kommt nur bei anderen Domänen, Berechtigungen sollten aber alle da sein, da ich über ein AD Snapin in den anderen Domänen ebenfals alles ändern kann.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Outlook & Mail
gelöst LDAP Anfrage um E-mail auszulesen (6)

Frage von Jallio zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...