Zum Inhalt springen

existierende user im ad abfragen


stigi

Empfohlene Beiträge

hi leute ich brauch hilfe bei folgendem script:

es soll auslesen ob user die auf mehrere textdateien verteilt sind bereits im ad existieren, wenn sie nicht existieren soll eine entsprechende meldung ausgegeben werden. wenn das mit den mehreren textdateien zu kompliziert ist, auch gerne dann nur aus einer file, den rest bekomm ich dann selbst hin :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

also den zugriff aufs ad regel ich mittlerweile mit:

Shell("cmd /C dsquery user -o samid -limit 10000 > C:/benutzer.txt")

das ganze liest dir alle benutzer im ad aus (außer du hast mehr als 10000 drin :P ) und schreibt diese dann in eine textdatei die ich dann wieder auslese.

gib einfach mal im cmd-fenster die befehle:

- dsadd user /?

- dsmod user /?

- dsquery user /?

ein

lg

jasso

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn du einen benutzer auf existenz prüfen willst müsste der befehl

Shell("cmd /C dsquery user -samid [benutzername] > C:/benutzer.txt")
lauten in benutzer.txt steht dann entweder was drin, oder die datei ist leer. auslesen tu ich die textdatei so:
        Dim f As FileInfo

            f = New FileInfo("C:/benutzer.txt")

            If f.Exists Then

                 ' --- Datei öffnen

                Dim fs As FileStream = New FileStream( _

                "C:/benutzer.txt", FileMode.Open, 

                FileAccess.Read)

                ' --- Stream öffnen

                Dim r As StreamReader = New StreamReader(fs)

                ' --- Zeiger auf den Anfang

                r.BaseStream.Seek(0, SeekOrigin.Begin)

                ' --- Alle Zeilen lesen und an Console ausgeben

                While r.Peek() > -1

                    ' --- über "r.ReadLine" irgendwas mit der zeile machen

                 End While

                r.Close()

                fs.Close()

                f.Delete()

                ' --- Reader und Stream schließen

            End If

die textdatei wird hier auch gleich nach dem lesen gelöscht

edit:

ah ja evtl. sollt ich noch dazusagen dass ich das ganze in VB.NET mache. und du? :floet:

Link zu diesem Kommentar
Auf anderen Seiten teilen

im editor :rolleyes:
weiß ich nicht obs mit vb-script funktioniert.

wie sag ich ihm dann noch, dass wenn er existiert z.B. die Meldung Existiert oder wenn nicht Existiert nicht ausgibt?
ich hoffe doch du kriegst eine ausgabe hin :rolleyes:

ansonsten fragst du halt einfach ab ob die erste zeile (bzw. die ganze textdatei) der textdatei leer ist oder nicht.

ich nehme an das auslesen der textdatei wirst mit vb-script eh anders machen müssen als mit VB.NET (hab noch nie vb-script gemacht ;) )

Link zu diesem Kommentar
Auf anderen Seiten teilen

es gibt dazu die schnittstelle namens ADSI (Active Directory Service Interface) - siehe http://www.microsoft.com/windows2000/techinfo/howitworks/activedirectory/adsilinks.asp

ein beispiel, wie das ganze in vb.net machbar ist, steht im artikel Accessing Active Directory Through the .NET Framework.

viel spass,

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich steh jetzt grad voll aufm schlauch, ich bekomms echt net gebacken...

kann mir jmd ein konkretes beispiel geben in dem einfach ein user (am besten einer der zuvor mit einer variablen eingegeben wurde) mit vb-script im ad gesucht wird und wenn dieser vorhanden, bzw. nicht vorhanden ist eine entsprechende ausgabe am bildschirm erscheint? das mit dem datei auslesen bekomm ich dann selber hin denk ich mal

Link zu diesem Kommentar
Auf anderen Seiten teilen

versuch eine der beiden syntaxangaben, WinNT:// funktioniert meines wissens nur auf NT 4 domaincontrollern.

Sub QueryForUser(strUserName)

    Set objDomain = GetObject("WinNT://FABRIKAM")

    objDomain.Filter = Array("user")

    For Each User In objDomain

        If lcase(User.Name) = lcase(strUserName) Then

            WScript.Echo User.Name & " already exists."

            WScript.Quit

        End If    

    Next

End Sub
oUser = GetObject("LDAP://cn=username,ou=userOU,dc=mycompany,dc=com")

wcript.echo oUser.DisplayName

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke aber ich bin wohl zu doof für vb *lol*

für ein anderes problem hatte ich es so gelöst:

dialin.vbs:

dim param

param = WScript.arguments.item(0)

param = replace(param,"\", "/")


set usr= GetObject ("WinNT://domainname/" & param)


usr.dialinprivilege = true

usr.SetInfo

mit einer bat file hab ich das dann gestartet:

for /f "eol=; tokens=1" %%i in (..\script\user\01_users.txt) do cscript ..\script\dialin.vbs %%i

und die hat aus der textfile dann die user ausgelesen. es stehen aber nur die usernamen drin nicht die komplette CN und DC sachen, und das soll bzw muss so bleiben

kannst du mir das similar hierzu nochmal erklären *liebguck* :bimei

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...