Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo passo a passo descreve como criar um utilizador mailbox-enabled com o espaço de nomes System.DirectoryServices e CDO para o Exchange Management (CDOEXM).
No Visual C# 2005 ou no Visual C#. NET, crie um novo C# consola programa denominado MBTest.
No Solution Explorer, clique com o botão direito do rato em References e, em seguida, clique em Add Reference .
No separador .NET , adicione uma referência de projecto ao espaço de nomes System.DirectoryServices .
No separador COM , adicione uma referência à Microsoft CDO para gestão do Exchange .
Substitua o código no ficheiro Class1.cs com o seguinte código.
Nota No Visual C# 2005, substitua o código no ficheiro Program.cs em vez disso.
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;
}
}
}
Altere as variáveis na secção TODO a função principal de modo a contêm os valores correctos para o domínio.
Compilar o projecto e, em seguida, execute o programa.
Confirme se a nova conta foi criada no domínio, iniciando o snap-in computadores e utilizadores do Active Directory na consola de gestão da Microsoft. Verá o novo utilizador no contentor Users. Para verificar que este utilizador é mailbox-enabled, visualize as propriedades do utilizador e tenha em atenção que os separadores do Exchange são apresentados e listado um arquivo de caixa de correio para o utilizador no separador Geral do Exchange .
Este código demonstra como associar a um contentor (neste caso, o contentor Users) e como criar um novo utilizador no contentor. Não se esqueça de "cn =" entrada para o novo nome de utilizador.
container = new DirectoryEntry("LDAP://cn=users," + defaultNC);
user = container.Children.Add("cn=" + fullName, "user");
Definir propriedades de novo utilizador
Atribua um valor para sAMAccountName . Este é um atributo obrigatório. A conta de utilizador não é criada se não especificar um valor.
Uma vez que forneceu os atributos obrigatórios, chamada CommitChanges para guardar o novo utilizador no directório.
Chame IADs::SetPassword para definir a palavra-passe. Terá de o fazer após uma chamada para CommitChanges .
Permitir que o utilizador modificando o atributo userAccountControl .
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();
Criar uma nova caixa de correio
Para obter a interface IMailboxStore , converter DirectoryEntry.NativeObject deste tipo. Esta conversão não é bem sucedida em tempo de execução se CDOEXM não estiver instalado num computador.
Chamar o método CreateMailbox e passar um nome distinto válido para um arquivo de caixa de correio na organização do Exchange.
Chamar CommitChanges no DirectoryEntry para guardar a nova caixa de correio.
//Obtain the IMailboxStore interface, create the mailbox, and commit the changes.
mailbox = (IMailboxStore)user.NativeObject;
mailbox.CreateMailbox(homeMDB);
user.CommitChanges();
Tem de ter permissões adequadas no domínio para criar um utilizador e uma caixa de correio. Normalmente, para criar utilizadores mailbox-enabled num domínio baseado no Windows 2000, tem de ser membro do grupo Administradores de domínio do Windows 2000 para o domínio.
Se este código é executado num computador diferente um computador baseado no Exchange 2000 Server, tem de ter Exchange 2000 System Management Tools instalado no computador. Se não o fizer, CDOEXM não está disponível e a conversão para a interface IMailboxStore lança uma resposta InvalidCastException:
Ocorreu uma excepção não processada do tipo 'System.InvalidCastException' no MBTest.exe Obter informações adicionais: especificada a conversão não é válida.
Se receber uma mensagem de erro na chamada para IMailboxStore.CreateMailbox , verifique se o parâmetro transmitido para este método é um arquivo de caixa de correio válido na organização. Se não estiver, receberá uma mensagem de erro semelhante à seguinte:
Ocorreu uma excepção não processada do tipo 'System.Runtime.InteropServices.COMException' no MBTest.exe Obter informações adicionais: não estiver nenhum tal objecto no servidor.
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 313114
(http://support.microsoft.com/kb/313114/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.