Sie sind hier: Startseite
 Liste aller Codebeispiele

Anlegen eines Benutzers mit dem WinNT-Provider

Ein Beispiel zum Einsatz der Klasse System.DirectoryServices.DirectoryEntry aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Das Anlegen eines Benutzers mit dem WinNT-Provider ist dem Anlegen eines Benutzers mit dem LDAP-Provider sehr ähnlich. Allerdings gibt es keine Pflichtattribute, die zu setzen sind. Das Löschen ist völlig analog und kann daher mit der allgemeinen Hilfsroutine ADSILoeschen_Rekursiv("BenutzerDN") erfolgen.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' --- Demo-Daten für WINNT-Provider
Const COMPUTER = "mars"
Const BENUTZER = "HSch"

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Anlegen eines Benutzers mit dem WinNT-Provider
' (C) Holger@Schwichtenberg.de
' ============================
Sub WINNT_Benutzeranlegen()

Dim o As DirectoryEntry
Dim c As DirectoryEntries

Dim Benutzer_DN As String

Benutzer_DN = "WinNT://" & COMPUTER & "/" & BENUTZER

outtitle("Benutzer anlegen:" & Benutzer_DN)

' -- Prüfung, ob Objekt vorhanden ist
If DirectoryEntry.Exists(Benutzer_DN) Then
out("Benutzer bereits vorhanden...")
ADSILoeschen_Rekursiv(BenutzerDN)
End If

' --- Zugriff auf IADs
o = New DirectoryEntry("WinNT://" & COMPUTER)
' --- Zugriff auf IADsContainer
c = o.Children()
' --- Neues Objekt erzeugen
o = c.Add(BENUTZER, "user")
' --- Verzeichnisattribute festlegen
o.Invoke("setpassword", "123456789")
o.CommitChanges()

o.NativeObject.AccountDisabled = False
o.CommitChanges()

out("Benutzer angelegt!")

End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.Collections;
using System.DirectoryServices;

namespace FCLBuch._SystemDirectoryServices {

public class SamplesADSIWINNT {
public void WINNT_Benutzeranlegen() {

// Anlegen eines Benutzers mit dem WinNT-Provider
string Benutzer_DN = "WinNT://" + COMPUTER + "/" + BENUTZER;

FclOutput.PrintOutSubHeader("Benutzer anlegen:" + Benutzer_DN);

// Prüfung, ob Objekt vorhanden ist
if (DirectoryEntry.Exists(Benutzer_DN)) {
FclOutput.PrintOut("Benutzer bereits vorhanden...");
ADSIHelperMethods.ADSI_Loeschen_Rekursiv(BenutzerDN);
}

// Zugriff auf IADs
DirectoryEntry o = new DirectoryEntry("WinNT://" + COMPUTER);
// Zugriff auf IADsContainer
DirectoryEntries c = o.Children;
// Neues Objekt erzeugen
o = c.Add(BENUTZER, "user");
// Verzeichnisattribute festlegen
o.Invoke("setpassword", "123456789");
o.CommitChanges();

((ActiveDs.IADsUser)o.NativeObject).AccountDisabled = false;
o.CommitChanges();

FclOutput.PrintOut("Benutzer angelegt!");
}
}
}

Querverweise

 Definition '.NET Framework Class Library'  Verfügbarkeit der Klasse 'System.DirectoryServices.DirectoryEntry'  Übersicht über den FCL-Namensraum 'System.DirectoryServices'  .NET & Visual Studio Community Portal