SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Dieser schrittweise aufgebaute Artikel beschreibt die einen postfachaktivierter Benutzer mit System.DirectoryServices -Namespace und CDO für Exchange-Verwaltung (CDOEXM) erstellen.
Erstellen Sie in Visual c# 2005 oder Visual c# .NET eine neue C#-Konsolenprogramm mit dem Namen MBTest.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf Verweise und klicken Sie dann auf Verweis hinzufügen .
Fügen Sie auf der Registerkarte .NET einen Projektverweis auf den System.DirectoryServices -Namespace.
Fügen Sie auf der Registerkarte COM einen Verweis auf Microsoft CDO für Exchange- hinzu.
Ersetzen Sie den Code in der Datei Class1.cs, mit dem folgenden Code.
Hinweis: Ersetzen Sie in Visual c# 2005, den Code in der Datei Program.cs stattdessen.
using System;
using CDOEXM;
using System.DirectoryServices;
namespace MBTest
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
//TODO: Change these items to values for your domain or organization.
string defaultNC = "DC=yourdomain,DC=com";
string alias = "jsmith";
string fullName = "Joseph Smith";
string password = "TestMb123.";
string domainName = "yourdomain.com";
string homeMDB = "CN=Mailbox Store (Your Server),CN=Your Storage Group,"
+ "CN=InformationStore,CN=Your Server,CN=Servers,"
+ "CN=Your Administrative Group,CN=Administrative Groups,"
+ "CN=Your Org,CN=Microsoft Exchange,CN=Services,"
+ "CN=Configuration,DC=Yourdomain,DC=Com";
DirectoryEntry container, user;
CDOEXM.IMailboxStore mailbox;
//This creates the new user in the "users" container.
//Set the sAMAccountName and the password
container = new DirectoryEntry("LDAP://cn=users," + defaultNC);
user = container.Children.Add("cn=" + fullName, "user");
user.Properties["sAMAccountName"].Add(alias);
user.CommitChanges();
user.Invoke("SetPassword", new object[]{password});
//This enables the new user.
user.Properties["userAccountControl"].Value = 0x200; //ADS_UF_NORMAL_ACCOUNT
user.CommitChanges();
//Obtain the IMailboxStore interface, create the mailbox, and commit the changes.
mailbox = (IMailboxStore)user.NativeObject;
mailbox.CreateMailbox(homeMDB);
user.CommitChanges();
return;
}
}
}
Ändern Sie die Variablen im Abschnitt "TODO" in der Main -Funktion, so dass Sie die richtigen Werte für Ihre Domäne enthalten.
Kompilieren Sie das Projekt, und führen Sie das Programm.
Bestätigen Sie, dass das neue Konto in der Domäne erstellt wurde, durch das Active Directory-Benutzer und Computer-Snap-in in Microsoft Management Console (MMC) starten. Sehen Sie den neuen Benutzer im Container Users. Zeigen Sie des Benutzers und beachten Sie, die die Exchange -Registerkarten angezeigt werden und ein Postfachspeicher ist aufgeführt, für den Benutzer auf der Registerkarte Exchange ? Allgemein, an , überprüfen, ob dieser Benutzer postfachaktiviert ist ist.
Dieser Code veranschaulicht das Binden an einen Container (in diesem Fall den Container Users) und zum Erstellen eines neuen Benutzers im Container. Vergessen Sie nicht die "Cn =" Eintrag für den neuen Namen des Benutzers.
container = new DirectoryEntry("LDAP://cn=users," + defaultNC);
user = container.Children.Add("cn=" + fullName, "user");
Festlegen der Eigenschaften des neuen Benutzers
Weisen Sie einen Wert für sAMAccountName . Dies ist ein erforderliches Attribut. Das Benutzerkonto wird nicht erstellt, wenn Sie keinen Wert angeben.
Da Sie verbindliche Attribute angegeben haben, rufen Sie CommitChanges um den neuen Benutzer in das Verzeichnis zu speichern.
Rufen Sie IADs::SetPassword , um das Kennwort festzulegen. Sie müssen nach einem Aufruf von CommitChanges dazu.
Aktivieren Sie den Benutzer durch das Attribut UserAccountControl ändern.
user.Properties["sAMAccountName"].Add(alias);
user.CommitChanges();
user.Invoke("SetPassword", new object[]{password});
//This enables the new user:
user.Properties["userAccountControl"].Value = 0x200; //ADS_UF_NORMAL_ACCOUNT
user.CommitChanges();
Ein neues Postfach erstellen
Die IMailboxStore -Schnittstelle zu erhalten, in den DirectoryEntry.NativeObject dieses Typs umgewandelt. Diese Umwandlung zur Laufzeit fehl, wenn CDOEXM nicht auf einem Computer installiert ist.
Rufen Sie die CreateMailbox -Methode, und übergeben Sie einen gültigen distinguished Name eines Postfachspeichers in der Exchange-Organisation.
Rufen Sie CommitChanges für DirectoryEntry so speichern Sie das neue Postfach.
//Obtain the IMailboxStore interface, create the mailbox, and commit the changes.
mailbox = (IMailboxStore)user.NativeObject;
mailbox.CreateMailbox(homeMDB);
user.CommitChanges();
Sie benötigen entsprechende Berechtigungen in der Domäne um einen Benutzer und ein Postfach zu erstellen. In der Regel müssen Sie zum Erstellen von postfachaktivierten Benutzern in einer Windows 2000-basierten Domäne Mitglied der Windows 2000 der Gruppe Domänenadministratoren für die Domäne sein.
Wenn dieser Code auf einem anderen Computer als einem Exchange 2000 Server-basierten Computer ausgeführt wird, müssen Sie Exchange 2000-Systemverwaltungstools auf dem Computer installierten verfügen. Wenn Sie nicht CDOEXM nicht verfügbar ist und die Umwandlung der IMailboxStore -Schnittstelle löst eine InvalidCastException-Antwort:
Eine nicht behandelte Ausnahme des Typs 'System.InvalidCastException' ist in MBTest.exe aufgetreten Weitere Informationen: angegebene Umwandlung ist ungültig.
Wenn Sie eine Fehlermeldung für den Aufruf von IMailboxStore.CreateMailbox erhalten, stellen Sie sicher, dass Parameters, der an diese Methode übergeben einen gültigen Postfachspeicher in Ihrer Organisation ist. Wenn dies nicht der Fall ist, erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:
Eine nicht behandelte Ausnahme des Typs "System.Runtime.InteropServices.COMException" ist in MBTest.exe aufgetreten Weitere Informationen: Es ist kein solches Objekt auf dem Server.
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 313114
(http://support.microsoft.com/kb/313114/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Waren diese Informationen hilfreich?
Ja
Nein
Etwas
Wie hoch war der Aufwand für Sie persönlich, um diesen Artikel zu verwenden?
Sehr gering
Gering
Mittel
Hoch
Sehr hoch
Sagen Sie uns bitte, wie wir diese Informationen noch verbessern können
Danke! Dieses Feedback hilft uns dabei, die Supportartikel weiter zu verbessern. Weitere Informationen finden Sie auf der Hilfe und Support-Startseite.