Acesso de leitura a esse grupo é removido após a instalação do Exchange 2000 SP3

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: 816789
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Se você enviar email SMTP (Simple Mail Transfer Protocol) usando um aplicativo colaboração Data Objects para Windows (CDOSYS), um Collaboration Data Objects for Exchange 2000 (CDOEX) aplicativo ou System.Web.Mail em um computador onde o Exchange 2000 Server Service Pack 3 (SP3) é instalado, você receber a seguinte mensagem de erro:
CDO.Message.1 (0x80040220)
O valor de configuração "SendUsing" é inválido.
Observação System.Web.Mail é um wrapper gerenciado para CDOSYS que lhe permite criar e enviar mensagens usando o componente de mensagem CDOSYS.

back to the top

Causa

Esse problema ocorre porque acesso de leitura à metabase do IIS (Serviços de informações da Internet) e o serviço de diretório Microsoft Active Directory foi removido do todos grupo. Esse acesso foi removido devido a uma modificação de segurança no Exchange 2000 Server SP3. CDOEX, CDOSYS e System.Web.Mail devem ter acesso à metabase do IIS para acessar informações sobre o local do caminho de diretório de recebimento. Esse comportamento ocorre quando você usa o método Sendusingpickup e se essas informações não for especificadas no código do aplicativo. Como o acesso é restrito, o usuário não-administrativo em cujo contexto de segurança o aplicativo está sendo executado não pode ler essas informações da metabase do IIS e Active Directory.

back to the top

Resolução

Para contornar esse problema, use uma das soluções alternativas na seção "Soluções alternativas".

Observação O código de exemplo para as soluções alternativas é escrito no contexto de uma página ASP (Active Server Pages).

back to the top

Soluções alternativas

Para contornar esse problema, você deve modificar a configuração ou o código. Alterações de configuração podem ser implementadas rapidamente, mas as alterações de código devem ser feitas mais deliberadamente e ao considerar a segurança do aplicativo e seus recursos.

Observação Restaurando o acesso de leitura para a metabase do IIS do todos grupo não é uma solução alternativa para esse problema. Restaurar esse acesso reintroduz vulnerabilidades que resolve do Exchange 2000 Server SP3.

Use uma das seguintes soluções alternativas para que você usar aplicativos CDOEX e CDOSYS após você aplicar o Exchange 2000 Server SP3. No solução 1 e 2 da solução alternativa, você modificar a configuração administrativa. Em Solução 3 e 4 da solução alternativa, você modificar o código. Embora você tenha apenas aplicar uma solução para resolver o problema, você deve decidir qual solução é a solução mais apropriada para aplicativo do usuário.

Para modificar a configuração administrativa, você deve conceder seletivamente acesso à metabase do IIS. Em Solução 1 e 2 da solução alternativa, o código do aplicativo não é alterado, mas as contas que requerem acesso de leitura a metabase do IIS têm acesso concedidas. Ou você pode conceder acesso de metabase do IIS à conta de que o aplicativo está em execução com (solução 1) ou pode criar uma nova conta para essa finalidade (solução 2).

Os arquivos de script Adadd.vbs, Adlist.vbs e Addel.vbs conceder acesso à metabase do IIS. Consulte a seção "Apêndice" no final deste artigo para obter mais informações sobre esses arquivos de script.

Como o CDO (Collaboration Data Objects) chama a função RevertToSelf antes que ela acessa a metabase do IIS, você pode adicionar a conta em que o processo do aplicativo é executado. Para uma página ASP típica, essa é a conta IWAM_ ComputerName.

back to the top

Solução alternativa 1

A opção menos destabilizing é determinar qual conta os aplicativos estão sendo executados sob e conceda à conta de acesso à metabase do IIS. No entanto, como outros aplicativos podem usar a conta existente (por exemplo, IWAM_ XXX ou IUSR_ XXX), essa solução alternativa pode introduzir vulnerabilidades se esses aplicativos são concedidos acesso à metabase do IIS. A vantagem dessa solução alternativa é que o código do aplicativo e a configuração de SMTP não são alteradas. A desvantagem dessa solução alternativa é que ele desnecessariamente pode conceder acesso à metabase do IIS.

Para determinar qual conta o aplicativo está sendo executado e para conceder a acesso de conta à metabase do IIS, execute estas etapas:
  1. Salve os arquivos .vbs para um diretório no servidor.
  2. No IIS, localize o diretório virtual que contém seu aplicativo, clique com o botão direito do mouse no diretório virtual e, em seguida, clique em Propriedades .
  3. Clique na guia Segurança de diretório e, em seguida, em Anonymous access and authentication control , clique em Editar .
  4. Na caixa de diálogo Métodos de autenticação , veja que a caixa de seleção acesso anônimo está selecionada e, em seguida, em contas usada para acesso anônimo , clique em Editar .
  5. Anote o nome da conta que é exibido pela caixa de diálogo Conta de usuário anônimo .
  6. Clique em Cancelar para fechar as caixas de diálogo.
  7. Em um prompt de comando, altere o diretório para o diretório que contém os arquivos .vbs na etapa 1.
  8. Use Adadd.vbs para conceder acesso à metabase do IIS para a conta que você anotou na etapa 5. Para fazer isso, execute o seguinte comando no prompt de comando:

    cscript adadd.vbs ComputerName \ AccountName

    Observação Em um controlador de domínio, use DomainName \ AccountName, ou não especificar o nome do computador ou o nome de domínio. Você só precisará fornecer AccountName após adadd.vbs. Para adicionar IWAM_ computername em um controlador de domínio, execute um dos seguintes comandos no prompt de comando:

    cscript adadd.vbs \IWAM_ DomainNameComputerName

    - ou -

    cscript adadd.vbs IWAM_ ComputerName

    Você às vezes também deve conceder acesso de metabase do IIS a conta IWAM_ ComputerName usando Adadd.vbs. Para fazer isso, execute o seguinte comando no prompt de comando:

    cscript adadd.vbs \IWAM_ ComputerNameComputerName
  9. Use Adlist.vbs para verificar se a conta foi adicionada à lista de acesso da metabase do IIS. Para fazer isso, execute o seguinte comando no prompt de comando:

    cscript adlist.vbs
  10. Pare e, em seguida, reinicie o serviço de administração do IIS e quaisquer serviços dependentes.
  11. Em computadores que estão executando o Exchange 2000, conceda acesso de gravação do usuário ao caminho de diretório do programa Files\exchsrvr\mailroot\vsi # \pickup. Em computadores que não estão executando o Exchange 2000, conceda acesso de gravação do usuário ao caminho do diretório Inetpub\mailroot\pickup.
  12. Aguardar Active Directory para replicar para a metabase do IIS.
  13. Execute o aplicativo.

    Agora o aplicativo funciona conforme o esperado.
back to the top

Solução 2

Você pode criar uma conta, conceda que conta de acesso à metabase do IIS e, em seguida, configure o diretório virtual onde o aplicativo está sendo executado para executar como a conta. A vantagem dessa solução alternativa é que o código do aplicativo e a configuração de SMTP não são alteradas.

Para criar uma nova conta para o aplicativo executar em e configure o diretório virtual, execute estas etapas:
  1. Salve os arquivos .vbs para um diretório no servidor.
  2. Usar o Active Directory Users and Computers para criar uma conta de computador (por exemplo, CdoExAccount) e adicione essa conta ao grupo usuários.

    Essa conta não requer uma caixa de correio.
  3. No IIS, localize o diretório virtual que contém seu aplicativo, clique com o botão direito do mouse no diretório virtual e, em seguida, clique em Propriedades .
  4. Clique na guia Segurança de diretório e, em seguida, em Anonymous access and authentication control , clique em Editar .
  5. Na caixa de diálogo Métodos de autenticação , veja que a caixa de seleção acesso anônimo está selecionada e, em seguida, em contas usada para acesso anônimo , clique em Editar .
  6. Na caixa de diálogo Conta de usuário anônimo , siga estas etapas:
    1. Na caixa nome de usuário , digite o nome da conta que você criou na etapa 2.

      Observação Em um controlador de domínio, use DomainName \ AccountName, ou não especificar o nome do computador ou o nome de domínio. Você só precisará fornecer AccountName. Se você criou uma conta de nível do computador, digite o nome da conta no seguinte formato: ComputerName \ AccountName
    2. Em um controlador de domínio usar <DomainName>\<AccountName> ou não especificar nome nome do computador ou domínio (apenas dar o <AccountName>)
    3. Clique para desmarcar a caixa de seleção Permitir que o IIS controle a senha .
    4. Na caixa senha , digite a senha para a conta.
    5. Clique em OK e, em seguida, redigite a senha na caixa de diálogo resultante.
  7. Clique em OK para fechar todas as caixas de diálogo.
  8. Em um prompt de comando, altere o diretório para o diretório que contém os arquivos .vbs na etapa 1.
  9. Use Adadd.vbs para conceder acesso à metabase do IIS para a conta que você anotou na etapa 2. Para fazer isso, execute o seguinte comando no prompt de comando:

    cscript adadd.vbs ComputerName \ AccountName

    Observação Em um controlador de domínio, use DomainName \ AccountName, ou não especificar o nome do computador ou o nome de domínio. Você só precisará fornecer AccountName após adadd.vbs. Para adicionar IWAM_ computername em um controlador de domínio, execute um dos seguintes comandos no prompt de comando:

    cscript adadd.vbs \IWAM_ DomainNameComputerName

    - ou -

    cscript adadd.vbs IWAM_ ComputerName

    Você às vezes também deve conceder acesso de metabase do IIS a conta IWAM_ ComputerName usando Adadd.vbs. Para fazer isso, execute o seguinte comando no prompt de comando:

    cscript adadd.vbs \IWAM_ ComputerNameComputerName
  10. Pare e, em seguida, reinicie o serviço de administração do IIS e quaisquer serviços dependentes.
  11. Execute Adlist.vbs para se certificar de que a conta foi adicionada à lista de acesso da metabase do IIS. Para fazer isso, execute o seguinte comando no prompt de comando:

    cscript adlist.vbs
  12. Em computadores que estão executando o Exchange 2000, conceda acesso de gravação do usuário ao caminho de diretório do programa Files\exchsrvr\mailroot\vsi # \pickup. Em computadores que não estão executando o Exchange 2000, conceda acesso de gravação do usuário ao caminho do diretório Inetpub\mailroot\pickup.
  13. Aguardar Active Directory para replicar para a metabase do IIS.
  14. Execute o aplicativo.

    Agora o aplicativo funciona conforme o esperado.
back to the top

Solução 3

Se você não especificar explicitamente o método sendusing no código, o valor cdoSendUsingPickup é o valor padrão. No entanto, você pode especificar explicitamente cdoSendUsingPickup e o caminho de diretório de recebimento no código. Para usar o método de diretório de recebimento, o SMTP local deve ser configurado para retransmissão.

As vantagens dessa solução alternativa são aplicativo maior controle da configuração e que a solução alternativa não é limitada a primeira instância do serviço SMTP. Em computadores que têm vários servidores virtuais SMTP, a configuração padrão seleciona o primeiro diretório de retirada na metabase do IIS. Este diretório de recebimento pode não ser o diretório que o aplicativo precisa. Ao especificar explicitamente o diretório de recebimento, você pode tornar-se de que a configuração padrão seleciona o diretório de retirada correto. A desvantagem dessa solução alternativa é que ele é mais frágil que as soluções alternativas. Alterações para a instalação do Exchange 2000 ou para a configuração de administração podem fazer com que o aplicativo parar de funcionar devido a alterações a localização do diretório Retirada.
Amostra de código
O exemplo de código a seguir demonstra como definir explicitamente cdoSendUsingPickup e a localização do diretório Retirada:
<%@ Language=VBScript %>	<%	    Dim iMsg	    Dim iConf	    Dim Flds	    Const cdoSendUsingPickup = 1		    'For CDOSYS, the pickup directory is located at c:\inetpub\mailroot\pickup.	    Const strPickup = "c:\Program Files\Exchsrvr\mailroot\vsi 1\Pickup"		    'Create the message object.	     Set iMsg = CreateObject("CDO.Message")		    'Create the configuration object.	     Set iConf = iMsg.Configuration		    With iConf.Fields	  	.item("http://schemas.microsoft.com/cdo/configuration/sendusing")= cdoSendUsingPickup	       .item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = strPickup	       .Update	    End With		    'Set the To, From, Subject, and Body properties of the message.	    With iMsg	       .To = "someone@example.com"	       .From = "someone@example.com"	       .Subject = "Test message by using CDOEx and cdoSendUsingPickup sent on: "  & now()	       .TextBody = "This is a test by using CDOEx"	       .Send	    End With 	    Set iMsg = Nothing	 %>
back to the top

Solução alternativa 4

Em vez de escrever mensagens para o diretório retirado local, você pode gravar mensagens para um servidor SMTP remoto na rede. As vantagens dessa solução alternativa são menor consumo global de recurso e informações de erro imediata e detalhadas. As desvantagens dessa solução alternativa são que o servidor SMTP remoto pode não estar disponível e que você perder o mecanismo de fila natural no diretório retirado.
Código de exemplo
O seguinte código de exemplo modificado funciona no Exchange 2000 Server SP3. Observe que este exemplo adiciona código para criar e definir a configuração object.
<%@ Language=VBScript %>	<%	    Dim iMsg	    Dim iConf	    Dim Flds	    Const cdoSendUsingPort = 2	    Const strSmartHost = "MySmartHostServer"		    'Create the message object.	    Set iMsg = CreateObject("CDO.Message")		    'Create the configuration object.	    Set iConf = iMsg.Configuration		    'Set the fields of the configuration object to send by using SMTP through port 25.	    With iConf.Fields	       .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort	       .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost	       .Update	    End With		    'Set the To, From, Subject, and Body properties of the message.	    With iMsg	       .To = "someone@example.com"	       .From = "someone@example.com"	       .Subject = "Test message by using CDOEx and cdoSendUsingPort, sent on: "  & now()	       .TextBody = "This is a test by using CDOEx"	       .Send	    End With	    set iMsg = Nothing	 %> 
back to the top

Apêndice

Para baixar o script arquivos que conceder acesso de leitura para o IIS metabase e o Active Directory, visite o seguinte site da Microsoft:
http://download.microsoft.com/download/9/7/0/9706f302-99f8-49f9-8aa4-df66d771feaf/smtppermissionsscripts.exe
O download inclui os seguintes arquivos de script.
Adlist.vbsLista as listas de controle de acesso (ACL) para cada instância do serviço SMTP no servidor no Active Directory (se disponível) ou na metabase do IIS.
Adadd.vbsConcede acesso de somente leitura de contas para todas as instâncias de serviço de SMTP no servidor.
Addel.vbsRemove todas as entradas de controle de acesso (ACE) para a conta de todas as instâncias de serviço SMTP no servidor.
Cada script usa o Active Directory para determinar se o computador está executando Exchange 2000. Se o computador está executando o Exchange 2000, as alterações são feitas no Active Directory e o arquivo DS2MB.dll replica as alterações na metabase do IIS para consumo por SMTP. Se o computador não estiver executando o Exchange 2000, as alterações serão feitas diretamente na metabase do IIS.

back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 816789 - Última Revisão: 12/08/2015 02:19:20 - Revisão: 5.2

Microsoft Exchange Server 2003 Standard Edition, Microsoft Exchange 2000 Enterprise Server, Microsoft Exchange 2000 Server Standard Edition

  • kbnosurvey kbarchive kbmt kbdownload KB816789 KbMtpt
Comentários