Você está offline; aguardando reconexão

Como criar um destinatário habilitado para caixa de correio usando translation from VPE for Csharp Visual

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 313114
Sumário
Este artigo passo a passo descreve como criar um usuário habilitado para caixa de correio com o espaço para nome System.DirectoryServices e CDO para Exchange Management (CDOEXM).

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Um domínio baseado no Microsoft Windows 2000 que possui o Microsoft Exchange 2000 instalado
  • Microsoft Visual translation from VPE for Csharp 2005 ou Microsoft Visual translation from VPE for Csharp .NET
  • Microsoft Exchange 2000 System Management Tools no computador em que esse código é executado
Mais Informações

Criar um novo programa translation from VPE for Csharp

  1. Na Visual translation from VPE for Csharp 2005 ou no Visual translation from VPE for Csharp. NET, crie um novo translation from VPE for Csharp programa console chamado MBTest.
  2. No Solution Explorer, clique com o botão direito do mouse em References e, em seguida, clique em Add Reference .
  3. Na guia .NET , adicione uma referência projeto ao espaço para nome System.DirectoryServices .
  4. Na guia COM , adicione uma referência para Microsoft CDO para gerenciamento do Exchange .
  5. Substitua o código no arquivo Class1.cs com o código a seguir.

    Observação No Visual translation from VPE for Csharp 2005, substitua o código no arquivo 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;          }     }}					
  6. Altere as variáveis na seção TODO a função principal para que eles contêm os valores corretos para seu domínio.
  7. Compilar o projeto e, em seguida, execute o programa.
  8. Verifique se a nova conta foi criada no domínio iniciando o snap-in Active Directory Users e Computers no Microsoft Management Console (MMC). Você verá o novo usuário no recipiente usuários. Para verificar se esse usuário é habilitado para caixa de correio, exiba propriedades do usuário e observe que as guias do Exchange são exibidas e um armazenamento de caixa de correio listado para o usuário na guia Exchange General .

Descrição do código

Criar um novo DirectoryEntry

Este código demonstra como vincular a um recipiente (no caso, o recipiente Usuários) e como criar um novo usuário no recipiente. Não se esqueça de "cn =" entrada para o novo nome do usuário.
container = new DirectoryEntry("LDAP://cn=users," + defaultNC);user = container.Children.Add("cn=" + fullName, "user");				

Definir propriedades em novo usuário

  1. Atribua um valor para sAMAccountName . Este é um atributo obrigatório. A conta de usuário não é criada se você não especificar um valor.
  2. Porque você forneceu os atributos obrigatórios, chame CommitChanges para salvar o novo usuário no diretório.
  3. Chame IADs::SetPassword para definir a senha. Você deve fazer isso após uma chamada para CommitChanges .
  4. Permitir que o usuário 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_ACCOUNTuser.CommitChanges();				

Criar uma nova caixa de correio

  1. Para obter a interface IMailboxStore , converter DirectoryEntry.NativeObject para esse tipo. Essa conversão não terá êxito em tempo de execução se o CDOEXM não estiver instalado em um computador.
  2. Chame o método CreateMailbox e passe um nome distinto válido para um armazenamento de caixa de correio na organização do Exchange.
  3. Chame CommitChanges em DirectoryEntry para salvar 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();				

Solução de problemas

  • Você deve ter permissões apropriadas no domínio para criar um usuário e uma caixa de correio. Normalmente, para criar usuários habilitados para caixa de correio em um domínio baseado no Windows 2000, você deve ser um membro do grupo Administradores de domínio do Windows 2000 para o domínio.
  • Se este código seja executado em um computador diferente de um computador baseado no Exchange 2000 Server, você deverá ter o Exchange 2000 System Management Tools instalado no computador. Se você não fizer isso, CDOEXM não está disponível e a conversão para a interface IMailboxStore lança uma resposta InvalidCastException:
    Ocorreu uma exceção sem tratamento do tipo 'System.InvalidCastException' em MBTest.exe
    Obter informações adicionais: especificado a conversão não é válida.
  • Se você receber uma mensagem de erro na chamada para IMailboxStore.CreateMailbox , verifique se o parâmetro passado para este método é um armazenamento de caixa de correio válidos em sua organização. Se não estiver, você receber uma mensagem de erro semelhante à seguinte:
    Ocorreu uma exceção sem tratamento do tipo 'System.Runtime.InteropServices.COMException' em MBTest.exe
    Obter informações adicionais: está objeto inexistente no servidor.
Referências
Para obter mais informações sobre o espaço para nome System.DirectoryServices , visite o seguinte Microsoft Developer Network (MSDN) site: Para obter mais informações sobre o CDOEXM, visite o seguinte site da MSDN:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 313114 - Última Revisão: 05/18/2007 08:46:28 - Revisão: 5.4

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Collaboration Data Objects para Exchange Management 1.1, Microsoft Exchange 2000 Server Standard Edition, Microsoft Exchange 2000 Enterprise Server, Microsoft Active Directory Client Extension, Microsoft Active Directory Service Interfaces 2.5

  • kbmt kbdswadsi2003swept kbhowtomaster KB313114 KbMtpt
Comentários
="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">