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

VBS LDAP Verzeichniss

Frage Entwicklung VB for Applications

Mitglied: Blackflip

Blackflip (Level 1) - Jetzt verbinden

23.04.2009, aktualisiert 14:43 Uhr, 9639 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 ..
Ähnliche Inhalte
Sicherheitsgrundlagen
Rechtevergabe Verzeichnisse
Frage von karin1511Sicherheitsgrundlagen3 Kommentare

Weiß jemand, ob es möglich ist, einem User zwar Schreib- aber keine Lese-Rechte auf ein Verzeichnis zu gewähren (Win2008Server)? ...

Windows Server
LDAP in PHP
Frage von pipoomaWindows Server10 Kommentare

Halloo zusammen, ich habe Aufgabe von meinem Chef bekommt und zwar Single Sign-On. Wir entwickeln im Haus einen Portal ...

Samba
Samba und LDAP
gelöst Frage von schneerunzelSamba5 Kommentare

Hallo Zusammen, ich versuche gerade einen PDC mit Samba und LDAP als PasswortBackend aufzubauen. Die Freigaben sind über die ...

Windows Server
Fehlercode LDAP
Frage von Andreasde95Windows Server1 Kommentar

Hallo meine Fehlercods sind Linux: 000004dc: ldaperr: DSIC-0c0906e8 in oder to perform this operation a successful bind must be ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 104 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
Frage von HelloWorldBatch & Shell13 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...