stigi Geschrieben 27. September 2005 Geschrieben 27. September 2005 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 Zitieren
jasso Geschrieben 27. September 2005 Geschrieben 27. September 2005 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 ) 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 Zitieren
stigi Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 die befehle kenn ich schon aber danke, mir gings ja darum die user die in der textfile stehen auf existenz zu überprüfen und nicht alle user in ne textfile zu schreiben wie wird die textfile dann ausgelesen? Zitieren
jasso Geschrieben 27. September 2005 Geschrieben 27. September 2005 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: Zitieren
stigi Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 im editor Shell("cmd /C dsquery user -samid [benutzername] > C:/benutzer.txt") wie sag ich ihm dann noch, dass wenn er existiert z.B. die Meldung Existiert oder wenn nicht Existiert nicht ausgibt? Zitieren
jasso Geschrieben 27. September 2005 Geschrieben 27. September 2005 im editor 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 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 ) Zitieren
Amstelchen Geschrieben 27. September 2005 Geschrieben 27. September 2005 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 Zitieren
stigi Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 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 Zitieren
Amstelchen Geschrieben 27. September 2005 Geschrieben 27. September 2005 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 Zitieren
stigi Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 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 Zitieren
Empfohlene Beiträge
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.