Numéro d'article: 816789 - Dernière mise à jour: mardi 12 juillet 2005 - Version: 5.2

Accès en lecture à tout le monde groupe est supprimé après l'installation d'Exchange 2000 SP3

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.

Sommaire

Agrandir tout | Réduire tout

Symptômes

Si vous envoyez messagerie SMTP (Simple Mail Transfer Protocol) en utilisant une application Collaboration Data Objects pour Windows (CDOSYS), une Collaboration Data Objects for Exchange 2000 (CDOEX) application, ou System.Web.Mail sur un ordinateur où Exchange 2000 Server Service Pack 3 (SP3) est installé, vous recevez le message d'erreur suivantes :
CDO.Message.1 (0x80040220)
La valeur de configuration "SendUsing" est non valide.
note System.Web.Mail est un wrapper géré pour CDOSYS qui vous permet de créer et envoyer des messages en utilisant le composant de message CDOSYS.

Cause

Ce problème se produit car l'accès en lecture à la métabase Internet Information Services (IIS) et le service d'annuaire Microsoft Active Directory a été supprimé pour tout le monde groupe. Cet accès a été supprimé raison d'une modification de la sécurité dans Exchange 2000 Server SP3. CDOEX, CDOSYS et System.Web.Mail doivent avoir accès à la métabase IIS pour accéder aux informations sur l'emplacement du chemin de répertoire. Ce problème se produit lorsque vous utilisez la méthode Sendusingpickup et si cette information n'est spécifiée dans le code d'application. Étant donné que l'accès est restreint, les utilisateurs non administratifs dans contexte de sécurité que dont l'application s'exécute Impossible de lire ces informations à partir de la métabase IIS et Active Directory.

Résolution

Pour contourner ce problème, appliquez l'une des solutions de contournement dans la section « solutions de contournement ».

note Le code d'exemple pour les solutions de contournement est écrit dans le contexte d'une page ASP (Active Server Pages).

Solutions de contournement

Pour contourner ce problème, vous devez modifier la configuration ou le code. Modifications de configuration peuvent être déployées rapidement, mais les modifications de code doivent être effectuées plus délibérément et tout en considérant la sécurité de l'application et ses ressources.

note Restaurant accès en lecture à la métabase IIS pour tout le monde groupe n'est pas une solution de contournement pour ce problème. Restauration de cet accès reintroduces vulnérabilités qui pourraient Exchange 2000 Server SP3 résout.

Utilisez une des solutions de contournement suivantes afin que vous utiliser applications CDOEX et CDOSYS après avoir appliqué Exchange 2000 Server SP3. Dans la solution de contournement 1 et 2 de solution de contournement, vous modifier la configuration d'administration. Dans solution de contournement 3 et 4 de la solution de contournement, vous modifiez le code. Bien que vous seulement disposer appliquer une solution de contournement pour résoudre ce problème, vous devez décider quelle solution est la solution la plus appropriée pour l'application de l'utilisateur.

Pour modifier la configuration d'administration, vous devez accorder manière sélective l'accès à la métabase IIS. Dans la solution de contournement 1 et 2 de la solution de contournement, le code d'application n'est pas modifié, mais les comptes qui ont besoin d'accéder en lecture à la métabase IIS autorisés à accéder. Vous pouvez soit accorder des accès de la métabase IIS au compte que l'application s'exécute sous (solution de contournement 1) ou créer un nouveau compte à cet effet (solution de contournement 2).

Les fichiers de script Adadd.vbs, Adlist.vbs et Addel.vbs accorder l'accès à la métabase IIS. Consultez la section « Annexe » à la fin de cet article pour plus d'informations sur ces fichiers de script.

Étant donné que CDO (Collaboration Data Objects) appelle la fonction RevertToSelf avant qu'il accède à la métabase IIS, vous pouvez ajouter le compte dans lequel s'exécute le processus d'application. Pour une page ASP classique, ceci est le compte IWAM_ ComputerName.

Solution de contournement 1

L'option moins destabilizing est pour déterminer le compte que les applications sont exécutent sous, puis puis accorder l'accès de compte à la métabase IIS. Toutefois, car autres applications risquent d'utiliser le compte existant (par exemple, IWAM_ XXX ou IUSR_ XXX), cette solution de contournement peut introduire des failles si ces autres applications sont accordées l'accès à la métabase IIS. L'avantage de cette solution de contournement est que le code d'application et la configuration SMTP ne sont pas modifiés. L'inconvénient de cette solution de contournement est que qu'il peut inutilement accorder l'accès à la métabase IIS.

Pour déterminer le compte de l'application s'exécute sous et pour accorder l'accès de compte à la métabase IIS, procédez comme suit :
  1. Enregistrer les fichiers .vbs dans un répertoire sur votre serveur.
  2. Dans IIS, recherchez le répertoire virtuel qui contient votre application, cliquez avec le bouton droit sur le répertoire virtuel et puis cliquez sur Propriétés .
  3. Cliquez sur l'onglet Sécurité de répertoire , puis, sous Connexions anonymes et contrôle d'authentification , cliquez sur Modifier .
  4. Dans la boîte de dialogue méthodes d'authentification , assurez-vous que l'option la case à cocher Accès anonyme est sélectionnée, puis sous comptes utilisé pour l'accès anonyme , cliquez sur Modifier .
  5. Notez le nom de compte qui est affiché par la boîte de dialogue compte d'utilisateur anonyme .
  6. Cliquez sur Annuler pour fermer les boîtes de dialogue.
  7. À partir d'une invite de commandes, modifiez le répertoire le répertoire contenant les fichiers .vbs étape 1.
  8. Utiliser Adadd.vbs pour accorder l'accès à la métabase IIS vers le compte que vous avez noté à l'étape 5. Pour ce faire, exécutez la commande suivante à l'invite de commandes :

    cscript adadd.vbs ComputerName \ AccountName

    note Sur un contrôleur de domaine, utilisez DomainName \ AccountName, ou ne pas spécifier le nom de l'ordinateur ou nom de domaine. Vous devez seulement fournir AccountName après adadd.vbs. Pour ajouter IWAM_ computername sur un contrôleur de domaine, exécutez une des commandes suivantes à l'invite de commandes :

    cscript adadd.vbs DomainName \IWAM_ ComputerName

    -ou-

    cscript adadd.vbs IWAM_ ComputerName

    Vous devez également parfois accorder un accès métabase IIS sur le compte IWAM_ ComputerName à l'aide de Adadd.vbs. Pour ce faire, exécutez la commande suivante à l'invite de commandes :

    cscript adadd.vbs \IWAM_ ComputerNameComputerName
  9. Adlist.vbs permet de vérifier que le compte a été ajouté à la liste Accès métabase IIS. Pour ce faire, exécutez la commande suivante à l'invite de commandes :

    cscript adlist.vbs
  10. Arrêtez et redémarrez le service Administration IIS et les services dépendants.
  11. Sur les ordinateurs qui exécutent Exchange 2000, accorder utilisateur l'accès en écriture au chemin du répertoire programme Files\exchsrvr\mailroot\vsi # \pickup. Sur les ordinateurs qui exécutent pas Exchange 2000, accorder utilisateur l'accès en écriture au chemin d'accès au répertoire Inetpub\mailroot\pickup.
  12. Attendez que Active Directory réplique à la métabase IIS.
  13. Exécutez l'application.

    L'application maintenant fonctionne comme prévu.

Solution de contournement 2

Vous pouvez créer un compte, accordez ce compte accès à la métabase IIS et puis configurer le répertoire virtuel où l'application s'exécute pour s'exécuter en tant que le compte. L'avantage de cette solution de contournement est que le code d'application et la configuration SMTP ne sont pas modifiés.

Pour créer un nouveau compte de l'application pour s'exécuter sous et configurer le répertoire virtuel, procédez comme suit :
  1. Enregistrer les fichiers .vbs dans un répertoire sur votre serveur.
  2. Utilisez Directory utilisateurs et ordinateurs Active pour créer un compte d'ordinateur (par exemple, CdoExAccount) et réintégration ce compte au groupe utilisateurs.

    Ce compte ne nécessite pas une boîte aux lettres.
  3. Dans IIS, recherchez le répertoire virtuel qui contient votre application, cliquez avec le bouton droit sur le répertoire virtuel et puis cliquez sur Propriétés .
  4. Cliquez sur l'onglet Sécurité de répertoire , puis, sous Connexions anonymes et contrôle d'authentification , cliquez sur Modifier .
  5. Dans la boîte de dialogue méthodes d'authentification , assurez-vous que l'option la case à cocher Accès anonyme est sélectionnée, puis sous comptes utilisé pour l'accès anonyme , cliquez sur Modifier .
  6. Dans la boîte de dialogue compte d'utilisateur anonyme , procédez comme suit :
    1. Dans la zone Nom d'utilisateur , tapez le nom du compte que vous avez créé à l'étape 2.

      note Sur un contrôleur de domaine, utilisez DomainName \ AccountName, ou ne pas spécifier le nom de l'ordinateur ou nom de domaine. Vous devez seulement fournir AccountName. Si vous avez créé un compte d'ordinateur à niveau, tapez le nom de compte dans le format suivant : ComputerName \ AccountName
    2. Sur un contrôleur de domaine utiliser <DomainName>\<AccountName> ou ne spécifiez pas nom_ordinateur ou domaine nom (seulement donner le <AccountName>)
    3. Cliquez pour désactiver la case à cocher Autoriser les IIS pour contrôler le mot de passe .
    4. Dans la zone mot de passe , tapez le mot de passe du compte.
    5. Cliquez sur OK , puis retapez le mot de passe dans la boîte de dialogue qui s'affiche.
  7. Cliquez sur OK pour fermer toutes les boîtes de dialogue.
  8. À partir d'une invite de commandes, modifiez le répertoire le répertoire contenant les fichiers .vbs étape 1.
  9. Utiliser Adadd.vbs pour accorder l'accès à la métabase IIS vers le compte que vous avez noté à l'étape 2. Pour ce faire, exécutez la commande suivante à l'invite de commandes :

    cscript adadd.vbs ComputerName \ AccountName

    note Sur un contrôleur de domaine, utilisez DomainName \ AccountName, ou ne pas spécifier le nom de l'ordinateur ou nom de domaine. Vous devez seulement fournir AccountName après adadd.vbs. Pour ajouter IWAM_ computername sur un contrôleur de domaine, exécutez une des commandes suivantes à l'invite de commandes :

    cscript adadd.vbs DomainName \IWAM_ ComputerName

    -ou-

    cscript adadd.vbs IWAM_ ComputerName

    Vous devez également parfois accorder un accès métabase IIS sur le compte IWAM_ ComputerName à l'aide de Adadd.vbs. Pour ce faire, exécutez la commande suivante à l'invite de commandes :

    cscript adadd.vbs \IWAM_ ComputerNameComputerName
  10. Arrêtez et redémarrez le service Administration IIS et les services dépendants.
  11. Exécutez Adlist.vbs pour vous assurer que le compte a été ajouté à la liste Accès métabase IIS. Pour ce faire, exécutez la commande suivante à l'invite de commandes :

    cscript adlist.vbs
  12. Sur les ordinateurs qui exécutent Exchange 2000, accorder utilisateur l'accès en écriture au chemin du répertoire programme Files\exchsrvr\mailroot\vsi # \pickup. Sur les ordinateurs qui exécutent pas Exchange 2000, accorder utilisateur l'accès en écriture au chemin d'accès au répertoire Inetpub\mailroot\pickup.
  13. Attendez que Active Directory réplique à la métabase IIS.
  14. Exécutez l'application.

    L'application maintenant fonctionne comme prévu.

Solution de contournement 3

Si vous n'en explicitement spécifiez la méthode sendusing dans le code, la valeur cdoSendUsingPickup est la valeur par défaut. Toutefois, vous pouvez explicitement spécifier cdoSendUsingPickup et le chemin de répertoire de collecte dans le code. Pour utiliser la méthode de répertoire, le SMTP local doit être configuré pour le relais.

Les avantages de cette solution de contournement sont contrôle augmentation d'application de configuration et que la solution de contournement n'est pas limitée à la première instance de service SMTP. Sur les ordinateurs ayant plusieurs serveurs virtuels SMTP, la configuration par défaut sélectionne le premier répertoire dans la métabase IIS. Ce répertoire peut ne pas être le répertoire que l'application a besoin. En spécifiant explicitement le répertoire de collecte, vous pouvez vous assurer que la configuration par défaut sélectionne le répertoire de collecte correct. L'inconvénient de cette solution de contournement est qu'il est plus délicate à d'autres solutions de contournement. Modifications apportées à l'installation d'Exchange 2000 ou à la configuration d'administration peuvent entraîner le cesser de fonctionner en raison de modifications apportées à l'emplacement du répertoire de collecte de l'application.
Exemple de code
L'exemple de code suivant montre comment définir explicitement cdoSendUsingPickup et l'emplacement du répertoire collecte :
<%@ 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
	 %>

Solution de contournement 4

Au lieu d'écrire des messages vers le répertoire collecte local, vous pouvez écrire messages sur un serveur SMTP distant sur le réseau. Les avantages de cette solution de contournement sont inférieure consommation de ressource globale et les informations d'erreur immédiate et détaillée. Les inconvénients de cette solution de contournement sont que le serveur SMTP distant n'est pas possible et que vous perdez le mécanisme de file d'attente naturelle dans le répertoire de collecte.
Exemple de code
Le code exemple modifié ci-dessous fonctionne sur Exchange 2000 Server SP3. Notez que cet exemple ajoute du code pour créer et définir la configuration 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
	 %> 

Annexe

Pour télécharger le script fichiers accorder l'accès en lecture à IIS métabase et Active Directory, reportez-vous à l'adresse suivante du Microsoft :
http://download.microsoft.com/download/9/7/0/9706f302-99f8-49f9-8aa4-df66d771feaf/smtppermissionsscripts.exe (http://download.microsoft.com/download/9/7/0/9706f302-99f8-49f9-8aa4-df66d771feaf/smtppermissionsscripts.exe)
Le téléchargement inclut les fichiers de script suivants.
Réduire ce tableauAgrandir ce tableau
Adlist.vbsRépertorie les listes de contrôle l'accès (ACL) pour chaque instance de service SMTP sur le serveur dans Active Directory (si disponible) ou dans la métabase IIS.
Adadd.vbsAccorde l'accès d'en lecture seule comptes à toutes les instances de service SMTP sur le serveur.
Addel.vbsSupprime toutes les entrées de contrôle l'accès (ACE) pour le compte de toutes les instances de service SMTP sur le serveur.
Chaque script utilise Active Directory pour déterminer si l'ordinateur exécute Exchange 2000. Si l'ordinateur exécute Exchange 2000, modification est apportée dans Active Directory et le fichier Ds2mb.dll réplique les modifications à la métabase IIS pour la consommation par SMTP. Si l'ordinateur ne s'exécute pas Exchange 2000, les modifications sont apportées directement dans la métabase IIS.


Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server Standard Edition
Mots-clés : 
kbmt kbdownload KB816789 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 816789  (http://support.microsoft.com/kb/816789/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.