www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



Homelaufwerkseintragung im AD ohne Wirkung
Autor:  mica
E-mail:  Antworten bitte nur in das Forum!
Datum:  13.10.2008 14:36:25
Subject:  Homelaufwerkseintragung im AD ohne Wirkung
Bezug zum Buch: 
Message:  ...dennoch s

Hallo, ich habe folgendes Problem bei der Erstellung eines ActiveDirectoryUsers mit C#, Framework ist .NET 2.0

Mein Code erzeugt den User mit allen notwendigen Properties im AD. Die Einstellung sind gegenüber einer händischen Eintragung exakt die gleichen:

private void button1_Click(object sender, EventArgs e)
        {
            
               string Vorname = vorname.Text;
               string Nachname = nachname.Text;
               string Username = login.Text;
               string Passwort = passwort.Text;
               string Beschreibung = "";
               string Email = mailadresse.Text;

               try
                   {
          
              
                    
DirectoryEntry entry = new DirectoryEntry(@"LDAP://PfadZurOu","user","userpw");

               DirectoryEntry user = entry.Children.Add("CN=" + Vorname + " " + Nachname, "user");

                    //füllt die entsprechenden Properties
                    user.Properties["sAMAccountName"].Add(Username);
                    user.Properties["userPrincipalName"].Add(Username + "@server.de");
                    user.Properties["sn"].Add(Nachname);
                    user.Properties["givenName"].Add(Vorname);
               
                    if (Beschreibung != "")     { user.Properties["description"].Add(Beschreibung);     }
                    if (Email != "")          { user.Properties["mail"].Add(Email);                    }


                    //Legt einen User-Account an, bei dem zunächst kein Kennwort erwartet wird
                    user.Properties["userAccountControl"].Value = ActiveDs.ADS_USER_FLAG.ADS_UF_PASSWD_NOTREQD | ActiveDs.ADS_USER_FLAG.ADS_UF_NORMAL_ACCOUNT;
                    user.CommitChanges();



                    //-------------------------------------------------------------------------------------
                    //--------wenn ein Kennwort angegeben wurde, wird dieses versucht zu setzen------------
                    //-------------------------------------------------------------------------------------
                    if (Passwort != "")
                    {
                         try
                         {
                              //Das Konto wird als ein "normales Konto" gesetzt
                              user.Properties["userAccountControl"].Value = ActiveDs.ADS_USER_FLAG.ADS_UF_NORMAL_ACCOUNT;

                              //das übergebense Passwort wird gesetzt
                              user.Invoke("SetPassword", new object[] { passwort } );

                              //die Änderungen am User werden uebermittelt
                              user.CommitChanges();
                         }
                              //Wenn ein Fehler auftrat, weil z.B. die Kennwortrichtlinien nicht eingahalten wurden
                         catch(Exception ex)
                         {
                              lblError.Text = "<br>Es trat jedoch ein Fehler beim Setzen des Kennwortes auf: " + ex.Message;
                         }
                    }
                    //------------------------------ENDE Kennwort-Setzen----------------------------------

               user.Properties["profilePath"].Add(@"\\homelaufwerk\user$\" + Username + @"\prof");          
                    //user.Properties["scriptPath"].Add(scriptPath);          
               user.Properties["homeDirectory"].Add(@"\\homelaufwerk\user$\" + Username);     
                    user.Properties["homeDrive"].Add("U");


            
                    //pwdLastSet wird auf 0 gesetzt, damit das Kennwort zwingen geändert werden muss
                    user.Properties["pwdLastSet"].Value = 0;
                    user.CommitChanges();
                    //************************************************************************************
                    //*********************ENDE - User im Active Directory Eintragen**********************
                    //************************************************************************************

                    
               }
            catch (Exception ex)
            {
               lblError.Text = (ex.Message);
            }
        }


So, nun das Kuriose. Erstelle ich den Homelaufwerkordner händisch und setze dazu die Rechte des Users mit Vollzugriff, sieht der User nachdem Login aber sein Homelaufwerk nicht. Dabei wird der Prof-Ordner ebenfalls erstellt!

Lege ich den User mit exakt den selben Settings im AD händisch an wird der Ordner automatisch erstellt, der User loggt sich ein und sieht sein Homelaufwerk.

Habe ich irgendetwas beim erstellen des Users in meinem Code übersehen oder vergessen? Ich habe leider keine Erklärung mehr :/

Antworten

  Zurück zum Forum



 .NET Framework-Programmierung -- C#, VB.NET, ASP.NET, u.a.
 Homelaufwerkseintragung im AD ohne Wirkung von mica  am 13.10.2008 2:36:25 PM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019