Я использую библиотеку System.DirectoryServices.AccountManagement
для создания учетной записи пользователя AD, затем вскоре после использования пространства выполнения PowerShell для запуска команды Enable-Mailbox
.
Когда я запускаю это, это иногда сбой при включении почты с ошибкой " Для учетной записи Active Directory должна быть включена регистрация для почтового ящика пользователя. "
Если повторно выполнить тот же код, но просто попробуйтеMail-Включить только учетную запись, все работает нормально.И опять же, в других случаях он может создать учетную запись AD и включить поддержку почты.
По этой ссылке предполагается, что AD все еще настраивает учетную запись, когда Exchange пытается включить ее поддержку почты:
http://social.technet.microsoft.com/Forums/en-US/exchangesvrdevelopment/thread/d53d91fd-c479-40e4-9791-32cb5da24721?prof=required
Вот код пространства выполнения:
var connectionInfo = new WSManConnectionInfo(new Uri(ConfigurationManager.AppSettings["PSExchangeURI"]), ConfigurationManager.AppSettings["PSExchangeShellURI"], new PSCredential(ConfigurationManager.AppSettings["Username"], ConfigurationManager.AppSettings["Password"].ToSecureString()));
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos;
var command = new Command("Enable-Mailbox");
command.Parameters.Add("Identity", userPrincipal.UserPrincipalName);
command.Parameters.Add("Alias", userPrincipal.SamAccountName);
command.Parameters.Add("DisplayName", userPrincipal.DisplayName);
command.Parameters.Add("Database", ConfigurationManager.AppSettings["ExchangeDatabase"]);
using (var runspace = RunspaceFactory.CreateRunspace(connectionInfo)) {
using (var pipeline = runspace.CreatePipeline()) {
runspace.Open();
pipeline.Commands.Add(command);
var results = pipeline.Invoke();
}
}
Есть ли что-то еще, что я могу сделать, чтобы избежать этой ошибки (кроме введения спящего потока)?