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

AD User anlegen - Passwort wird nicht gesetzt - Visual Studio 2008

Mitglied: FarelM

FarelM (Level 1) - Jetzt verbinden

07.03.2008, aktualisiert 20.10.2008, 4399 Aufrufe, 7 Kommentare

Hallo,

für meine Firma schreibe ich ein Programm in Visual Basic (in Visual Studio 2008 auf Windows SBS 2003), welches das anlegen von Usern im Active Directory erleichtern soll.
Allerdings wird dabei nie das Passwort gesetzt -> Man kann sich also mit diesem User OHNE Passwort in der Domäne anmelden.
Dass das absolut ungut ist, ist klar, aber ich schaff es einfach nicht, diesen Fehler zu beheben. Hab schon so ziemlich alles versucht.

Hier mal der Code der das anlegen betrifft:

01.
cname = "CN=" & txt_nachname.Text & " " & txt_vorname.Text 
02.
 
03.
        Dim objParent As New DirectoryServices.DirectoryEntry(userdestination, "administrator@baierjj.local", "[entfernt]", DirectoryServices.AuthenticationTypes.Secure) 
04.
        Dim thepasswort As String = "[entfernt]2" 
05.
 
06.
        objChild = objParent.Children.Add(cname, "user") 
07.
        objChild.Password = thepasswort 
08.
        objChild.Properties("userPrincipalName").Add(txt_logonname.Text & ouaddition) 
09.
        objChild.Properties("SAMAccountName").Add(txt_logonname.Text) 
10.
        objChild.Properties("givenname").Add(txt_vorname.Text) 
11.
        objChild.Properties("sn").Add(txt_nachname.Text) 
12.
        objChild.Properties("displayname").Add(txt_nachname.Text & " " & txt_vorname.Text) 
13.
        objChild.Properties("profilePath").Add(txt_profilePath.Text) 
14.
        objChild.Properties("homeDirectory").Add(txt_homedirectory.Text) 
15.
        objChild.Properties("homeDrive").Add("U:") 
16.
        objChild.Properties("scriptPath").Add(txt_scriptPath.Text) 
17.
        objChild.Properties("mail").Add(txt_mail.Text) 
18.
        objChild.Properties("l").Add(txt_city.Text) 
19.
        objChild.Properties("st").Add(txt_state.Text) 
20.
        objChild.Properties("postalcode").Add(txt_plz.Text) 
21.
        objChild.Properties("co").Add(txt_country.Text) 
22.
        'objChild.Properties("streetAddress").Add(txt_street.Text) 
23.
        objChild.Properties("extensionAttribute1").Add(extattri1) 
24.
        objChild.CommitChanges()
Ich bin eigentlich noch Anfänger in VB und der Teil da oben ist auch noch nicht ganz fertig, bzw ne Baustelle. Vielleicht weiß auch jemand, warum ich die Eigenschaft "streetAddress" nicht setzen kann...
Mitglied: SvenGuenter
07.03.2008 um 11:22 Uhr
Zwei Fragen.

1. Welcher Server
2. Du redest einmal von Passwort und einmal von Streetadress was denn nun?
Bitte warten ..
Mitglied: FarelM
07.03.2008 um 11:24 Uhr
Als Betriebssystem nutze ich einen Windows Small Business Server 2003 R2 Premium.

Im Prinzip gehts mir ums Passwort. Dass die Eigenschafft "streetAddress" nicht gefunden wird, ist eher nebensächlich.

Vielleicht sollte ich noch hinzufügen, dass beim Passwort keinerlei Fehlermeldung kommt.
Bitte warten ..
Mitglied: SvenGuenter
07.03.2008 um 13:22 Uhr
japp weil du es nicht ändern oer auslesen kannst per software.


Die ADS blockt jeden zugriff von aussen auf die DB fürs passwort.
Du musst da schon dann einige andere Sachen machen um da was zu ändern. Aber da wirst du hier keine Auskünfte drüber bekommen da diese Infos auch zum Hacken von Passwörtern führen kann.
Habe diese Erfahrung auch gemacht und dann mit viiiiiel Googeln die Antwort gefunden. Kann dir nur den Tip geben das du die MSDN durchforsten solltest. Da findest du Ansätze zu diesem Problem

Gruß

Sven
Bitte warten ..
Mitglied: FarelM
07.03.2008 um 13:37 Uhr
Okay Danke. Dann werd ich erstmal nen Workaround machen, der einen gleich zum User im ADS bringt, damit man das PW schnell ändern kann.

Schönen Tag noch
Bitte warten ..
Mitglied: SvenGuenter
07.03.2008 um 13:46 Uhr
Da hast du schlechte karten wenn du nciht die funktionen der ADS nimmst. Du wirst so ohne weiteres nicht das Passwort eines Users ändern oder löschen können.
Bitte warten ..
Mitglied: 60730
07.03.2008 um 14:10 Uhr
Moinsen,

dieses Script stammt nicht von mir, ich habe es lediglich an unsere Bedürfnisse angepasst.
Natürlich habe ich einige Spuren verwischt und es etwas erweitert.

Daher bitte mal genau durchschauen.

Das Script legt nicht nur einen User an, der ein Passwort hat - sondern auch dessen Homeverzeichnis und setzt die rechte für den User und die OU IT.

Ich weiß, das sollte besser dokumentiert sein, aber ich hab grad keine Zeit und dir drängst ja...

Domain.vbs
01.
dim rootDSE 
02.
set rootDSE = GetObject("LDAP://RootDSE") 
03.
domainname=rootDSE.Get("defaultnamingcontext") 
04.
 
05.
set domain = GetObject("LDAP://" & domainname) 
06.
 
07.
' Popup Benutzername 
08.
Vname = InputBox("Vorname:       ", "    Neuen Benutzer in Domain erstellen") 
09.
NName = InputBox("Nachname:   ", "    Neuen Benutzer in Domain erstellen") 
10.
 
11.
 
12.
Name =  Vname & "." & NName 
13.
logon = Name & "@Domain" 
14.
mail = Name & "@administrator.de" 
15.
home ="\\server003\user\" & Name 
16.
 
17.
' Popup Telefonnummer: 00000000 
18.
intTel = InputBox("Telefondurchwahl:  +49 0000 00", "    Neuen Benutzer in Domain erstellen") 
19.
 
20.
Telefon = "+49 00 00 00" & intTel 
21.
 
22.
' Popup Personalnummer in Feld Beschreibung 
23.
Perso = InputBox("Personalnummer", "    Neuen Benutzer in Domain erstellen") 
24.
 
25.
If MsgBox("Name:                  "&Name& vbCrLf & "Telefon:               " & Telefon & vbCrLf & "Personalnummer: " & Perso&"" ,  VbExclamation or VbYesNo, "    Soll dieser Neue Benutzer in Domain erstellt werden?")= vbYes then 
26.
 
27.
' Ausgabe in Text 
28.
WScript.Echo "Name" &"," & "Telefon" &"," & "Personalnummer" 
29.
WScript.Echo Name & "," & intTel & "," & Perso 
30.
 
31.
 
32.
' Ordner anlegen 
33.
Set WshShell = WScript.CreateObject("WScript.Shell") 
34.
Return = WshShell.Run("cmd /c md \\server003\user\" & Name) 
35.
Return = WshShell.Run("cmd /c md \\server001\profil\" & Name) 
36.
Set WshShell = Nothing  
37.
 
38.
Set usr = domain.Create("user", "CN=" & Name & ",OU=User ,OU=Domain") 
39.
usr.Put "samAccountName", Name 
40.
usr.Put "givenName", Vname 
41.
usr.Put "sn", Nname 
42.
usr.Put "DisplayName", Name 
43.
usr.Put "homeDirectory", home 
44.
usr.Put "homeDrive", "n:" 
45.
usr.Put "userAccountControl", 512 
46.
usr.Put "profilePath","\\server001\profil\" & Name 
47.
usr.Put "scriptPath", "login.cmd" 
48.
usr.Put "telephoneNumber", Telefon 
49.
usr.Put "description" , Perso 
50.
usr.Put "postalCode", "0815" 
51.
usr.Put "street" , "Lindenstrasse" 
52.
usr.Put "userPrincipalName", logon 
53.
usr.Put "mail", mail 
54.
usr.Put "wWWHomePage", "https://www.administrator.de" 
55.
usr.SetInfo 
56.
usr.SetPassword "xxxxxx"	 
57.
 
58.
WScript.Sleep 12000 
59.
WScript.Sleep 12000 
60.
 
61.
Set WshShell = WScript.CreateObject("WScript.Shell") 
62.
Return = WshShell.Run("%COMSPEC% /c Echo j| cacls \\server001\profil\" & Name & " /t /c /g Domain\" & Name & ":F") 
63.
Return = WshShell.Run("%COMSPEC% /c Echo j| cacls \\server001\profil\" & Name & " /t /c /e /g Domain\g__it:F") 
64.
Return = WshShell.Run("%COMSPEC% /c Echo j| cacls \\server003\user\" & Name & " /t /c /g Domain\" & Name & ":F") 
65.
Return = WshShell.Run("%COMSPEC% /c Echo j| cacls \\server003\user\" & Name & " /t /c /e /g Domain\g__it:F") 
66.
Set WshShell = Nothing 
67.
 
68.
Else 
69.
End If 
70.
 
Bitte warten ..
Mitglied: DannyT
20.10.2008 um 13:21 Uhr
Hi,

Ich hab ne Antwort und ne Frage (weiter unten)

ist zwar schon etwas älter der Beitrag aber ich hab ziemlich das gleiche Problem gehabt (das Passwort betreffend) und so gelöst: Direkt nach dem commit vom User anlegen einfach folgenden Code (angepasst) einfügen:

01.
        Try 'Hier wird das Passwort des Users gesetzt 
02.
            Dim searcher As New System.DirectoryServices.DirectorySearcher() 'Suchfunktion 
03.
            searcher.Filter = "(&(objectClass=user)(objectCategory=person)(sAMAccountName=" & txt_logonname.Text & "))" 'Suchkriterien 
04.
            searcher.PropertiesToLoad.Add("adspath") 
05.
            Dim Result As System.DirectoryServices.SearchResult = searcher.FindOne() 
06.
            Dim usr As New DirectoryServices.DirectoryEntry(Result.Path) 
07.
            usr.Invoke("SetPassword", password) 'Passwort wird übergeben 
08.
            usr.CommitChanges() 'Änderungen werden gespeichert 
09.
        Catch ex As Exception 
10.
            MsgBox("Beim setzen des Passworts ist ein Fehler aufgetreten, bitte setzen Sie es manuell zurück." & Environment.NewLine & Environment.NewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Setzen des Passworts") 
11.
        End Try


Nun zu meiner Frage:

Ich mache auch ein Programm zum anlegen eines Users im AD und mein Code sieht ähnlich aus wie der von farelm.
Allerdings muss man dafür ja Admin Username und Passwort eingeben, welche ich aus einer vorher ausgeführten Login-Form auslese.

Nun hab ich aber das Problem, dass ich keine Ahnung habe, wie ich überprüfe ob die Angaben der Loginform auch stimmen.
So wies jetzt steht, merkt man ein falsch eingegebenes Passwort quasi erst dann wenn man den User anlegen will.

Hat vielleicht jemand ne Ahnung wie man das lösen kann?
Oder gibts noch ne besser Methode?

Notfalls könnte man ja beim anmelden irgendwie versuchen, mit den eingegebenen Anmelde-Parametern etwas im AD zu modifizieren - aber keine Ahnung wie, was und ob das überhaupt funktioniert.

Gruß
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Visual Studio Bug?
gelöst Frage von zelamediaVisual Studio10 Kommentare

Hallo ich arbeite zwar noch nicht lange mit Visual Studio jedoch glaube ich etwas kann hier nicht stimmen! Ich ...

Datenbanken
SQL Abfrage mit Visual Studio
gelöst Frage von specialuserDatenbanken5 Kommentare

Servus, habe mir Visual Studio installiert und habe einige SQL-Befehle welche ich gerne an der SQL-Datenbank abfragen würde und ...

Batch & Shell
Powershell Visual Studio Code
Frage von H41mSh1C0RBatch & Shell13 Kommentare

Moin in die Runde, Freitag der 13. ;( gestern doch das erstemal VS Code heruntergeladen mit dem Ziel es ...

Visual Studio

Visual Studio - Codierung dauerhaft speichern

gelöst Frage von pelzfruchtVisual Studio5 Kommentare

Hi, Ich hab eine Frage zu Visual Studio 2015. Unter Datei Erweiterte Speicheroptionen lässt sich die Codierung für den ...

Neue Wissensbeiträge
LAN, WAN, Wireless

UniFi - UAP Antenna Radiation Patterns - WLAN Ausstrahlungsmuster

Information von StefanKittel vor 6 StundenLAN, WAN, Wireless

Hallo, wer sich schon immer mal gefragt hat wie der Unterschied in den WLAN Access Points bei Unifi wirklich ...

Windows Userverwaltung

Passwortwechsel in der Domain bei Anmeldung erzwingen

Anleitung von Looser27 vor 16 StundenWindows Userverwaltung6 Kommentare

Nachdem es immer wieder User geschafft haben, sich während des laufenden Betriebes auszusperren, habe ich nach einer Möglichkeit gesucht, ...

Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 3 TagenAusbildung40 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 5 TagenSpeicherkarten6 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
gelöst Frage von Looser27Windows Userverwaltung32 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Microsoft
Netzlaufwerksordner Berechtigungen Speichern unter aus Programmen
gelöst Frage von ITler7Microsoft19 Kommentare

Moin, bin in ein neues Unternehmen eingetreten und habe die Anforderung bekommen Berechtigungen auf einige Ordner anzupassen, da bisher ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

Flatrates
Geschwindikeitsprobleme zwischen 1 und 1 - Vodafone Heimnetz
Frage von muenchhausenFlatrates15 Kommentare

Moin erstmal, Vorweg mein Setup 1. Wohnsitz Vodafone 400K Leitung (kommt sogar komplett an, auch um 18 Uhr) 2. ...