Les utilisateurs ne peuvent pas envoyer des messages électroniques à partir d'un périphérique mobile ou d'une boîte aux lettres partagée dans Exchange 2000 Server et Exchange Server 2003

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: 912918
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Lorsque vous essayez d'envoyer un message électronique dans Microsoft Exchange 2000 Server ou dans Microsoft Exchange Server 2003, vous ne pouvez pas envoyer le courrier électronique . En outre, vous pouvez recevoir un des messages d'erreur suivants ou Parmi les rapports de non-remise suivants (NDR).

Messages d'erreur

  • Accès refusé
  • Vous ne disposez pas des autorisations suffisantes Pour effectuer cette opération sur cet objet. Consultez le contact du dossier ou votre système administrateur.
  • Message non listé Erreur
  • MAPI_E_NO_ACCESS -2147024891
  • Impossible d'envoyer le message électronique pour utilisateur nom d'utilisateur (HRESULT : -2147024891) Pausing utilisateur USERNAME. (Erreur de sécurité- Impossible d'accéder la boîte aux lettres des utilisateurs.)
  • Ressource pas Trouvé
Remarque : Vous recevez le message d'erreur « Accès refusé » ou « ressource message d'erreur ne se trouve pas"à partir de Microsoft Outlook Web Access lorsque vous êtes connecté tant qu'un déléguer le compte.

Rapports de non-remise

  • Vous n'avez pas autorisé à envoyer à ce destinataire. Pour l'assistance, contactez votre administrateur système.
  • Le message n'a pas pu être envoyé à l'aide de votre boîte aux lettres. Vous effectuez pas avoir l'autorisation d'envoyer le message au nom de l'utilisateur spécifié.

Produits affectés

Ce problème est connu pour affecter le tiers suivant produits :
  • Research In Motion (RIM) BlackBerry Enterprise Server (BES)
  • Bonne Wireless GoodLink de technologie de messagerie
Ce problème peut également concerner MAPI personnalisés ou données collaboratives Objects (CDO)-en fonction des programmes qui envoient des messages électroniques.

Autres les produits tiers qui utilisent des comptes de service pour envoyer des messages électroniques peuvent également être affectés. Si vous exécutez un produit tiers qui est affecté par ce problème, nous vous conseillons de contacter le fournisseur pour vous aider à résoudre cela problème.

Cependant, il a été confirmé que le tiers suivant produits ne sont pas concernés par ce problème :
  • Cisco Unity Unified Messaging
  • Quest Migration Suite pour Exchange
  • L'utilitaire Microsoft ExMerge pour Exchange
Cause
Ce problème peut se produire si une des conditions suivantes est True :
  • Vous n'avez pas les autorisations pour envoyer des messages électroniques en tant que le propriétaire de boîte aux lettres dans le compte que vous utilisez pour envoyer du courrier électronique .
  • Vous exécutez Microsoft Exchange 2000 Server Service Pack 3 (SP3) avec une version du fichier Store.exe qui est égal à ou plus tard à la version 6619.4. Version 6619.4 a été la première fois disponible dans Microsoft suivant Article de la Base de connaissances :
    915358 Un correctif est disponible pour modifier le comportement de l'autorisation accès complet à la boîte aux lettres dans Exchange 2000 Server
  • Vous exécutez Microsoft Exchange Server 2003 SP1 avec une version du fichier Store.exe qui est égale ou postérieure à la version 7233.51.
  • Vous exécutez Exchange Server 2003 SP2 avec un Store.exe version du fichier qui est égale à ou plus tard à la version 7650.23. Version 7650.23 vous avez tout d'abord disponible dans la Base de connaissances Microsoft suivant article :
    895949 Comportement de l'autorisation « Envoyer en tant que » change dans Exchange 2003
    Cette modification n'est pas incluse dans Exchange Server 2003 SP2. Si vous avez exécuté la version Exchange Server 2003 SP1 du fichier Store.exe qui inclut cette modification, et que vous mettez à niveau vers Exchange Server 2003 SP2, vous devez installer la version SP2 de ce correctif pour conserver ce nouveau comportement. Ce changement sera inclus dans Microsoft Exchange Server 2003 SP3.
PROBLÈMES DE SÉCURITÉ
Avant les versions du fichier Store.exe répertoriées dans le Section, l'octroi de l'autorisation accès complet à la boîte aux lettres accordée implicitement « cause » autorisation Envoyer en tant que propriétaire de la boîte aux lettres. Cela signifiait qu'un autre compte a l'accès complet à la boîte aux lettres autorisation pourrait envoyer des messages électroniques qui apparaissaient comme s'ils étaient envoyés par le propriétaire de boîte aux lettres.

De nombreux Microsoft Exchange les clients ont demandé que l'autorisation Envoyer en tant qu'être séparés à partir de la version complète Autorisation d'accès de boîte aux lettres pour les deux raisons suivantes :
  • Pour prévenir l'usurpation d'identité électronique.
  • Pour vous assurer que messages électroniques qui sont envoyés par un délégué peut toujours être clairement différenciables des messages électroniques qui sont envoyés par le propriétaire de boîte aux lettres réelle.
Toutes les nouvelles versions de la banque Exchange va maintenant demander explicitement l'autorisation Envoyer en tant que pour envoyer des messages électroniques en tant que le propriétaire de boîte aux lettres. Toutefois, voici les trois exceptions à cette règle exigence :
  • Le compte de propriétaire de boîte aux lettres ne nécessite pas explicite envoyer en tant que autorisations pour sa propre boîte aux lettres.
  • N'est pas le cas du compte externe associé pour une boîte aux lettres exiger des autorisations Envoyer en tant qu'explicites.
  • Un compte délégué qui possède également l'accès complet à la boîte aux lettres autorisation ne requiert pas d'autorisations Envoyer en tant qu'explicites.
Pour plus d'informations sur ces exceptions, voir plus » Section d'informations ».
Résolution
Tous les comptes qui bénéficient d'un accès partiel ou complet à une boîte aux lettres, à l'exception de ceux mentionnés dans la section « Cause », doivent maintenant être accordés explicitement l'autorisation Envoyer en tant que pour le compte de propriétaire de boîte aux lettres pour envoyer du courrier en tant que propriétaire de la boîte aux lettres. Cela inclut les comptes de service d'application qui exécutent des fonctions telles que l'envoi de messages électroniques pour les utilisateurs d'appareils mobiles.

L'autorisation Envoyer en tant que s'applique à l'identité d'un objet utilisateur Active Directory, pas au contenu de boîte aux lettres qui sont stockés dans une base de données. Par conséquent, l'autorisation Envoyer en tant que doit être accordée au compte de service sur chaque objet utilisateur qui possède une boîte aux lettres. Lorsque des messages électroniques sont envoyés, ils ne sont pas envoyés à partir d'une base de données ou de boîtes aux lettres particulière, mais à partir d'un utilisateur. L'utilisateur peut être le propriétaire de boîte aux lettres ou tout autre compte qui possède l'autorisation Envoyer en tant que.

Vous ne pouvez pas octroyer l'autorisation Envoyer en tant que sur un serveur qui exécute Exchange Server ou sur un objet de base de données et obtenir l'effet de l'octroi de l'autorisation Envoyer en tant que pour toutes les boîtes aux lettres dans la base de données. L'octroi de l'autorisation Envoyer en tant que sur un objet de base de données Exchange vous donne l'autorisation à la base de données elle-même. L'autorisation est héritée par toutes les boîtes aux lettres dans la base de données. Toutefois, il ne pas vous donne l'autorisation aux utilisateurs qui disposent des autorisations Envoyer en tant qu'et qui disposent de boîtes aux lettres dans la base de données.

Remarque : L'octroi de l'autorisation Recevoir comme sur une base de données Exchange est le équivalent fonctionnel de l'octroi de l'autorisation accès complet à la boîte aux lettres à tous les boîtes aux lettres dans la base de données. Ce comportement diffère de l'envoyer Que l'autorisation.

Comment faire pour accorder les autorisations Envoyer en tant que pour un seul compte

Pour accorder explicitement un autre compte l'autorisation Envoyer en tant que boîte aux lettres propriétaire, procédez comme suit :
  1. Démarrer la gestion Active Directory utilisateurs et ordinateurs console.
  2. Sur la Vue menu, assurez-vous que leFonctionnalités avancées option est sélectionnée. Si cette option n'est pas sélectionnée, la page de sécurité sera pas visible pour le compte d'utilisateur objets.
  3. Ouvrez les propriétés du compte d'utilisateur qui possède le boîte aux lettres.
  4. Cliquez sur le Sécurité onglet.
  5. Si le compte n'est pas déjà dans la liste des utilisateurs ou de groupes noms, ajoutez le compte doit avoir l'autorisation Envoyer en tant que pour cela utilisateur.
  6. Dans le Autorisations Cliquez sur le Autoriser pour le « envoyer en tant que » autorisation pour le compte approprié.
  7. Cliquez sur OK.
  8. Redémarrez le service banque d'informations Microsoft Exchange sur le serveur Exchange concerné.
Remarque : Si vous ne redémarrez pas la banque d'informations Microsoft Exchange service, le service de banque d'informations Microsoft Exchange met à jour ses autorisations de cache pour que les nouveaux autorisations prennent effet conformément à la valeur qui est définie dans la sous-clé de Registre suivante :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

Nom de valeur : Mailbox Cache Age Limit
Type valeur : REG_DWORD
Radix : décimal
Données de la valeur : La limite d'âge du cache boîte aux lettres d'informations en quelques minutes.
La valeur par défaut pour cette entrée de Registre est de 120 minutes (deux heures). Si vous modifiez cette entrée de Registre, vous devez redémarrer Microsoft Service de banque d'informations Exchange.

Remarque : Si vous définissez les valeurs de délai d'attente pour une valeur très faible, vous pouvez affecter les performances du serveur.

Comment faire pour accorder l'autorisation Envoyer en tant que pour plusieurs comptes

Un exemple de script est fourni à la fin de cet article va rechercher un domaine du service Active Directory pour les comptes qui ont l'autorisation accès complet à la boîte aux lettres sans l'autorisation Envoyer en tant que pour une boîte aux lettres. Voici les caractéristiques d'un compte de service ou une ressource qui seront affectés par cette modification de la sécurité. Le script peut générer un fichier d'exportation que vous pouvez consulter, modifier et puis réimporter pour octroyer l'autorisation Envoyer en tant que pour les comptes qui nécessitent cette autorisation.

Vous pouvez également accorder l'autorisation Envoyer en tant que par héritage sur chaque objet utilisateur dans un domaine Active Directory ou dans un conteneur. Si vous accordez l'autorisation Envoyer en tant que par cette méthode, peut accorder des autorisations pour les objets que vous n'aviez pas l'intention. En outre, vous risquez de perdre les autorisations pour les objets qui sont déplacés à partir du conteneur. Par conséquent, cette méthode n'est pas recommandée et peut avoir des implications en matière de sécurité qui doivent être soigneusement avant d'implémenter.

Si vous accordez l'autorisation Envoyer en tant qu'à l'aide de cette méthode, les comptes qui ont hérité de l'autorisation Envoyer en tant que seront invisibles au script qui est référencé à la fin de l'article. Pour traiter ces comptes en utilisant le script à une date ultérieure, vous devez supprimer l'autorisation héritée Envoyer en tant que premier.

Pour accorder l'autorisation Envoyer en tant que pour un seul compte sur tous les comptes d'utilisateur dans un conteneur ou un domaine Active Directory à l'aide de l'héritage, procédez comme suit :
  1. Démarrer la gestion Active Directory utilisateurs et ordinateurs console.
  2. Sur la Vue menu, assurez-vous que leFonctionnalités avancées option est sélectionnée. Si cette option n'est pas sélectionnée, la page de sécurité sera pas visible pour le domaine et conteneur objets.
  3. Ouvrez les propriétés du domaine ou du conteneur, puis Cliquez sur la page sécurité.
  4. Cliquez sur Avancée.
  5. Si le compte nécessitant une autorisation n'est pas déjà répertorié, Cliquez sur Ajouter, puis sélectionnez le compte. Sinon, double-cliquez sur le compte à modifier.
  6. Dans le S'applique À liste, cliquez surObjets utilisateur.
  7. Accordez l'autorisation Envoyer en tant que compte.
  8. Cliquez sur OK jusqu'à ce que vous avez quitté et enregistrés toutes les modifications.

Règles particulières pour les comptes protégés par adminSDHolder

Si vous utilisez le script pour octroyer l'autorisation Envoyer en tant que pour un propriétaire de boîte aux lettres est également administrateur de domaine, l'autorisation Envoyer en tant que ne sera pas efficace. Nous vous recommandons fortement que vous ne pas boîte aux lettres aux comptes d'utilisateurs qui disposent des droits d'administrateur de domaine ou qui sont protégés par adminSDHolder.

L'objet adminSDHolder est un modèle pour les comptes qui ont des droits d'administration Active Directory étendus. Pour empêcher une élévation involontaire des privilèges, tout compte qui est protégé par l'objet adminSDHolder doit disposer des autorisations correspondent à celles qui figurent sur l'objet adminSDHolder .

Si vous modifiez les droits ou les autorisations sur l'objet adminSDHolder d'un compte protégé, une tâche d'arrière-plan défait le changement en quelques minutes. Par exemple, si vous accordez l'autorisation Envoyer en tant que sur un objet administrateur de domaine pour un compte de service d'application, la tâche d'arrière-plan annule automatiquement l'autorisation.

Par conséquent, vous ne pouvez pas accorder l'autorisation Envoyer en tant qu'à un compte de service d'application pour un compte qui est protégé par l'objet adminSDHolder , sauf si vous modifiez l'objet adminSDHolder . Si vous ne modifiez pas l'objet adminSDHolder , les autorisations d'accès pour tous les comptes protégés changera. Ne vous devez modifier l'objet adminSDHolder après une révision complète des implications de sécurité qui peuvent se produire avec la modification.

Pour associer une boîte aux lettres à un compte qui est protégé par l'objet adminSDHolder , procédez comme suit :
  1. Démarrer la gestion Active Directory utilisateurs et ordinateurs console.
  2. Sur la Vue menu, assurez-vous que leFonctionnalités avancées option est sélectionnée. Si cette option n'est pas sélectionnée, la page de sécurité sera pas visible pour les objets compte d'utilisateur.
  3. Créer un compte utilisateur ordinaire en tant que la boîte aux lettres propriétaire.
  4. Affecter le compte d'utilisateur ordinaire une boîte aux lettres sur un échange serveur.
  5. Ouvrez les propriétés du nouveau compte de propriétaire de boîte aux lettres.
  6. Dans le Avancées d'Exchange zone, accorder la Autorisation d'accès de la boîte aux lettres complète à l'administrateur protégé compte.
  7. Dans la page sécurité, accordez l'autorisation Envoyer en tant que pour le compte d'administrateur protégé.
  8. Cliquez sur OK Pour quitter les propriétés de la objet propriétaire de boîte aux lettres.
  9. Cliquez droit sur l'objet compte propriétaire de boîte aux lettres, puis Cliquez sur Désactiver compte Pour désactiver le compte pour toutes les ouvertures de session.
Pour plus d'informations sur protégés par adminSDHolder comptes, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
907434Le « envoyer en tant que » est supprimée d'un objet utilisateur après avoir configuré le droit « Envoyer en tant que » dans le répertoire utilisateurs et ordinateurs Active snap-in en Exchange Server
318180 Thread AdminSDHolder affecte les membres transitifs des groupes de distribution
817433 Autorisations déléguées ne sont pas disponibles et l'héritage est désactivé automatiquement
306398 Objet AdminSDHolder affecte la délégation de contrôle pour les derniers comptes administrateur

Tâches spéciales pour BlackBerry Enterprise Server

Tâche 1: Assurez-vous que le serveur BlackBerry Enterprise Server s'exécute sous un compte unique distinct

Assurez-vous que le serveur BlackBerry Enterprise Server fonctionne comme un Séparez le compte qui est créée spécifiquement pour les tâches administratives. Par par défaut, ce compte est appelé « BESAdmin ».

Si vous avez un distinct compte d'administration de BlackBerry Enterprise Server, passez à l'étape 2.

Si vous ne disposez pas d'un compte séparé, créez un compte distinct. Ensuite, utilisez ce compte pour effectuer des tâches administratives. Pour savoir comment procéder si vous exécutez BlackBerry Enterprise Server 4.0 ou BlackBerry Enterprise Server 4.1, consultez le Guide d'Installation de BlackBerry Enterprise Server.  Pour obtenir des instructions sur la procédure à suivre si vous exécutez BlackBerry Enterprise Server 3.6, reportez-vous à l'Installation de BlackBerry Enterprise Server 2000/2003 et le Guide de démarrage.

Tâche 2: Assurez-vous que le compte de service BlackBerry Enterprise Server dispose des autorisations appropriées

Vérifiez que le compte de service BlackBerry Enterprise Server les autorisations appropriées.

Remarque : Si le compte est dans un domaine, assurez-vous que le compte est un membre du groupe utilisateurs du domaine uniquement. Sur un contrôleur de domaine, le compte doit être membre du groupe Administrateurs intégrés.
  1. Sur le serveur BlackBerry Enterprise Server, procédez comme suit :
    1. Assurez-vous que le compte est un membre de la variable locale Groupe d'administrateurs.
    2. Attribuer des « Ouvrir une session localement » et « Ouvrir une session en tant que Service » autorisations au compte.
  2. Autorisations administrateur Exchange Affichage seul de subvention à la niveau du groupe d'administration. Pour ce faire, procédez comme suit :
    1. Dans Gestionnaire système Exchange, cliquez droit sur le premier Exchange Server nom du groupe d'administration, puis cliquez sur Délégué Contrôle.
    2. Notez que le service BlackBerry Enterprise Server compte est répertorié comme possédant le rôle d'administrateur Exchange Affichage seul.
  3. Accorder « Envoyer en tant que, » « Recevoir comme » et « administrer les informations Stocker » les autorisations au niveau du serveur pour chaque serveur Exchange. Pour faire cela, procédez comme suit :
    1. Dans Gestionnaire système Exchange, cliquez droit sur le premier Exchange Server nom du groupe d'administration, puis développez le Serveurs groupe.
    2. Cliquez droit sur un serveur Exchange, cliquez sur Propriétés, puis cliquez sur Sécurité.
    3. Dans le volet supérieur, sélectionnez l'entreprise BlackBerry Compte de service du serveur. Dans le volet inférieur, assurez-vous que le « envoyer en tant que, » « Recevoir comme » et « Administrer la banque d'informations » autorisations est définies sur Autoriser.
    4. Répétez les étapes 3 b et 3c pour chaque échange serveur.
  4. Accorder « Envoyer en tant que, » « Recevoir comme » et « administrer les informations Autorisations stocker » à la banque de boîtes aux lettres. Pour ce faire, procédez comme suit :
    1. Dans Gestionnaire système Exchange, cliquez droit sur le premier Nom du groupe d'administration Exchange, puis développez le Serveurs groupe.
    2. Développez le premier groupe de la banque de boîtes aux lettres, cliquez droit sur chaque banque de boîtes aux lettres, cliquez sur Propriétés, puis cliquez sur Sécurité.
    3. Dans le volet supérieur, sélectionnez l'entreprise BlackBerry Compte de service du serveur. Dans le volet inférieur, assurez-vous que le « envoyer en tant que, » « Recevoir comme » et « Administrer la banque d'informations » autorisations est définies sur Autoriser.
    4. Répétez les étapes 4 b et 4c pour chaque banque de boîtes aux lettres sur chaque Exchange server.
  5. Dans le composant logiciel enfichable ordinateurs et utilisateurs Active Directory, procédez comme ces étapes :
    1. Avec le bouton droit de l'utilisateur qui vous souhaitez ajouter pour les autorisations, puis cliquez sur Propriétés.
    2. Sur la Sécurité onglet, ajouter le Compte de service blackBerry Enterprise Server et puis cliquez sur pour sélectionner le Envoyer en tant que case à cocher.
Si vous n'exécutez pas Exchange Server 2003, reportez-vous à la tâche 3.

Tâche 3: Effacer le cache du serveur BlackBerry Enterprise Server

Pour effacer le cache d'autorisations dans la banque Exchange, redémarrer les services associés à Blackberry et redémarrez les informations de Microsoft Exchange Banque d'informations. Après avoir Redémarrez la banque Exchange, vous devez redémarrer les services associés à RIM Blackberry pour accorder au compte « BESAdmin » le nouvellement ajouté envoyer en tant que autorisation sur la banque Exchange.
Plus d'informations
Autorisations d'accès boîte aux lettres et dossiers Exchange sont fractionnées entre les bases de données Active Directory et Microsoft Exchange. Toutefois, les deux types des autorisations sont définies dans la console de gestion des utilisateurs Active Directory, mais autorisations différentes sont stockées dans deux endroits différents.

En règle générale, Si une autorisation est définie sur la page sécurité pour un objet, il est actif Autorisation d'annuaire. Si elle est définie sur les droits de boîte aux lettres Exchange avancés page, il s'agit d'une autorisation de base de données Exchange.

L'attribut Active Directory msExchMailboxSecurityDescriptor est une copie de sauvegarde d'un sous-ensemble des droits de boîte aux lettres effectifs. Il est utilisé en interne par Exchange pour une variété de buts. En outre, l'attribut msExchMailboxSecurityDescriptor est mis à jour pour correspondre à des droits actuels effectifs si les administrateurs utilisent des interfaces prises en charge pour attribuer des droits. Toutefois, si l'attribut msExchMailboxSecurityDescriptor est modifié directement par un administrateur, les modifications ne sera pas propagée vers la banque Exchange et les modifications ne prendront pas effet. Il n'est pas garanti pour être synchronisé avec les droits de boîte aux lettres réelle. Vous doivent pas utiliser l'attribut msExchMailboxSecurityDescriptor pour lire ou écrire des droits de boîte aux lettres.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
310866Comment faire pour définir les droits de boîte aux lettres Exchange Server 2003 et Exchange 2000 Server sur une boîte aux lettres qui existe dans la banque d'informations

L'autorisation accès complet à la boîte aux lettres est un Autorisation de la banque Exchange de base de données. L'autorisation Envoyer en tant qu'est un actif Autorisation d'annuaire. Avant les modifications de fichier Exchange Store.exe décrit dans cet article, le système Exchange ne consultait pas le paramètre pour l'autorisation Envoyer en tant que si l'expéditeur disposait déjà de l'accès complet à la boîte aux lettres autorisation.

Inclusion de l'autorisation Envoyer en tant qu'avec le L'autorisation d'accès de la boîte aux lettres complète a permis aux administrateurs de serveur Exchange s'octroyer des autorisations Envoyer en tant qu'effectives pour des boîtes aux lettres sur un serveur qui ils administrent. Par séparant l'autorisation Envoyer en tant qu'à partir de l'autorisation accès complet à la boîte aux lettres, Les administrateurs Active Directory peuvent maintenant bloquer ce processus puisque l'envoyer en tant que l'autorisation est une autorisation Active Directory et pas une banque d'informations Exchange autorisation. Par conséquent, le processus n'est pas nécessairement sous le contrôle de Administrateurs Exchange.

Propriétaires de boîtes aux lettres

Un propriétaire de boîte aux lettres est défini comme le compte d'utilisateur Active Directory dont l'attribut msExchMailboxGUID porte l'identificateur global unique (GUID) pour une boîte aux lettres particulière. Un seul compte dans une forêt entière est autorisé à porter le GUID d'une boîte aux lettres particulière. Si vous tentez de définir un deuxième propriétaire avec le même GUID, Active Directory rejette la modification avec une erreur.

Lorsque vous ã un compte ou lorsque vous connectez un déconnecté boîte aux lettres à un compte Active Directory, le GUID de boîte aux lettres est automatiquement définie sur ce compte. Il est rarement nécessaire ou conseillé aux administrateurs la valeur GUID de boîte aux lettres directement.

Comptes externes associés

Une configuration Exchange courante consiste à installer Exchange dans un forêt de ressources. Une forêt de ressources est une forêt dans une forêt différente comptes d'utilisateurs qui auront des boîtes aux lettres dans le système. Cela présente un problème parce que l'attribut msExchMailboxGUID peut uniquement être définie sur les objets dans la même forêt que le Exchange server.

La solution à ce problème consiste à activer la boîte aux lettres une compte de la forêt de serveur Exchange. Ensuite, vous liez cette boîte aux lettres compte à une autre forêt ou dans un domaine Microsoft Windows NT 4. Vous pouvez Pour ce faire, l'octroi de l'autorisation compte externe associé. Un seul compte peut être l'autorisation compte externe associé. Le compte Autrement dit sélectionné doit être d'une forêt différente.

Lorsque vous définissez l'associé Autorisation compte externe, vous écrivez la valeur du SID pour l'externe compte à l'attribut msExchMasterAccountSID du propriétaire de la boîte aux lettres. Par conséquent, ce n'est pas un autorisation du tout, mais un moyen pratique pour contrôler la valeur de l'attribut msExchMasterAccountSID . Une fois que l'attribut msExchMasterAccountSID a été défini, le compte externe qui possède le SID aura accès Exchange comme s'il était le propriétaire de boîte aux lettres réelle compte.

Remarque : Cela s'applique uniquement à access d'Exchange, pas à tous Accès au répertoire actif. En outre, vous devez marquer le propriétaire de boîte aux lettres compte désactivé pour les ouvertures de session après avoir défini le compte externe associé autorisation afin que toutes les autorisations fonctionnent comme prévu.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
300456Autorisations et délégations clientes ne sont pas conservées après leur affectation dans Exchange 2000

Scénarios de délégation

Un délégué est un utilisateur qui a accès partiel à une autre boîte aux lettres et le droit d'envoyer des messages électroniques pour le compte de cette boîte aux lettres propriétaire. Un scénario de délégation courant consiste à accorder l'accès délégué à un assistant administratif pour le calendrier d'un cadre. Le délégué peut en général, lire et mettre à jour le calendrier. En outre, le délégué peut répondre à tous les messages électroniques au nom de l'exécutif.

Vous pouvez utiliser les deux interfaces suivantes pour accorder l'envoyer sur la part d'et déléguer des autorisations :
  • Dans l'objet propriétaire de boîte aux lettres, accorder l'autorisation Envoyer de part de dans l'Exchange-Général boîte de dialogue.
  • Dans Microsoft Office Outlook, utilisez le Délégués boîte de dialogue.
Ces deux méthodes définissent l'attribut publicDelegates de la boîte aux lettres. Tous les utilisateurs qui sont répertoriés dans cet attribut ont envoyer sur la part de l'autorisation du propriétaire de boîte aux lettres. Lorsque ces délégués envoient un message électronique comportant le nom du propriétaire dans la À partir de zone, le message électronique est envoyé à partir du délégué et non à partir ou en tant que propriétaire de la boîte aux lettres. Le message de courrier électronique À partir de Affiche la valeur suivante :
Nom du délégué> pour le compte dePropriétaire de boîte aux lettres>
Dans certains cas, vous ne puissiez pas définir l'attribut publicDelegates dans Outlook. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
329622 l'Autorisation « Envoyer de la part de » n'est pas affectée à un utilisateur après avoir délégué l'accès dans Outlook

Si vous accordez l'accès délégué à votre boîte aux lettres, le délégué peut utiliser l'envoi de la part de même si vous n'accordez pas l'accès à l'un de vos dossiers de boîtes aux lettres. L'autorisation fondamentale qui possède un délégué est l'envoi de la part de. Autorisations d'accès aux dossiers de votre boîte aux lettres sont séparées et doivent être accordées en plus des autorisations de délégation. En règle générale, les délégués va utiliser Outlook pour accéder aux dossiers individuels pour lequel vous avez donné leur autorisation. Pour ce faire, cliquez sur Ouvrir sur la Fichier menu dans Outlook, puis cliquez sur Dossier d'un autre utilisateur.

Vous pouvez également les délégués peuvent ouvrir votre boîte aux lettres en la faisant figurer comme une boîte aux lettres supplémentaire dans le Avancée onglet de leurs profils Outlook. Cette méthode provoque votre boîte aux lettres apparaissent dans l'arborescence de dossiers Outlook du délégué. En outre, Cette méthode permet d'accéder à tous les dossiers dans votre boîte aux lettres pour lesquelles un délégué a été accordé des autorisations.

Vous souhaiterez peut-être votre délégué parfois posséder l'autorisation Envoyer de part d'et à d'autres moments du Autorisation Envoyer en tant que. Pour configurer un délégué avec ces deux autorisations, procédez comme ces étapes :
  • Accorder au délégué l'autorisation accès complet à la boîte aux lettres. Ceci ne peut pas être effectuée via Outlook. Au lieu de cela, un administrateur Active Directory doit Pour cela sur le compte de propriétaire de boîte aux lettres. Même si vous accordez des autorisations de propriétaire sur chaque dossier dans votre boîte aux lettres, ce qui n'est pas la même autorisation que la version complète Autorisation d'accès aux boîtes aux lettres.
  • N'accordez pas au délégué l'autorisation Envoyer en tant que. Si vous accorder au délégué l'autorisation Envoyer en tant que, tous les messages électroniques qui sont envoyés par le délégué sera effectué avec l'autorisation Envoyer en tant que. Le délégué sera aucun plus être en mesure d'utiliser l'envoi de la part de.
Dans ce scénario, les délégués want utiliser l'envoi de la part de devraient vous connecter à leurs propres boîtes aux lettres. Si les délégués sont réponse à ou transfert d'un message électronique qui se trouve déjà dans un de vos dossiers, le message électronique est envoyé automatiquement pour le compte de vous. Si le les délégués créent un nouveau message électronique de votre part, ils doivent taper votre nom dans le À partir de boîte de message électronique doit être envoyé votre pour le compte.

Indépendamment de si les délégués ont ouvert vos dossiers ou de votre boîte aux lettres entière comme une boîte aux lettres secondaire, tous les messages électroniques qu'ils envoi de votre part utilisera l'envoyer au nom de l'autorisation en tant que leurs propres boîte aux lettres est la boîte aux lettres principale pour le profil Outlook actuel.

Lorsque délégués veulent envoyer un message électronique comme vous, ils doivent ouvrir une session sur votre boîte aux lettres à l'aide d'un profil Outlook séparé qui ouvre uniquement votre boîte aux lettres. Courrier électronique les messages que les délégués envoient quand ils sont connectés à ce profil seront est envoyé automatiquement de votre part.

Recherche de comptes qui ont l'autorisation accès complet à la boîte aux lettres sans l'autorisation Envoyer en tant que

L'exemple de script qui est décrite dans cette section permet de rechercher une Domaine Active Directory à la fois pour les comptes d'utilisateur dans lequel la boîte aux lettres pleine L'autorisation d'accès a été accordée à une boîte aux lettres sans l'autorisation Envoyer en tant que.

Important Avant de modifier les autorisations, consultez le "À propos des propriétaires de boîtes aux lettres avec délégués" section.

Le script comporte les trois modes suivants :
  • Exporter Vous pouvez produire une liste d'utilisateurs qui ont l'accès complet à la boîte aux lettres autorisation, mais pas l'autorisation Envoyer en tant que. Vous pouvez ensuite revoir cette liste dans Le bloc-notes ou un autre éditeur pour supprimer tous les comptes que vous ne souhaitez pas avoir l'autorisation Envoyer en tant que.
  • Importation Vous pouvez importer une liste d'utilisateurs qui ont l'accès complet à la boîte aux lettres autorisation à laquelle l'autorisation Envoyer en tant que doit également être accordée. Notez que vous avez Impossible d'utiliser ce script pour octroyer l'autorisation d'accès complet à la boîte aux lettres et les Autorisation Envoyer en tant que. Chaque compte doit avoir déjà l'accès complet à la boîte aux lettres autorisation à octroyer l'autorisation Envoyer en tant que.
  • SetAll Vous pouvez accorder l'autorisation Envoyer en tant que pour tous les utilisateurs du domaine ayant déjà l'autorisation accès complet à la boîte aux lettres pour une boîte aux lettres particulière. A fichier journal sera généré dans le même format que le fichier d'exportation. Il s'agit équivalent à l'exécution les modes exportation et importation sans modifier la fichier d'exportation.
Remarque : Il n'y a aucune fonction d'annulation dans ce script.

Autorisations requises pour le script

Vous devez exécuter le script pendant que vous êtes connecté avec un compte administratif qui est de la même forêt que le propriétaire de boîte aux lettres les comptes sont à partir de. Le script peut ne pas fonctionne avec un compte qui a autorisations d'administration inter-forêts. Le script peut également échouer lorsque vous exécuter à partir d'une station de travail est joint à une forêt différente de la forêt à laquelle les comptes de propriétaire de boîte aux lettres sont joints.

Étant donné ces conditions, vous pouvez exécuter le script avec plusieurs comptes administratifs dans un session d'ouverture de session unique à l'aide de la commande RunAs.exe . Cette procédure peut être utile si vous avez segmenté les autorisations Active Directory et Exchange Server, et que vous ne disposez d'aucun compte unique qui permet d'administrer tous les serveurs Exchange ou tout Domaines Active Directory. Vous pouvez ouvrir une invite de commande pour exécuter le script en tant que chaque compte administratif. Prenons l'exemple suivant :
RunAs.exe /user:domain\account cmd.EXE
Remarque : Vous ne devez pas exécuter plusieurs copies du script en même temps dans le même domaine.

Les champs dans le fichier d'exportation sont comme suit. Les champs sont décrits dans l'ordre dans lequel elles sont présentées dans le fichier d'exportation.
  • Nom complet du compte du propriétaire de boîte aux lettres

    Il peut y avoir plusieurs lignes dans la sortie de fichier qui répertorie le même propriétaire de boîte aux lettres. Ce problème se produit lorsque plusieurs autres comptes disposer des autorisations d'accès complet à la boîte aux lettres à la même boîte aux lettres.
  • Nom de domaine et d'ouverture de session d'un compte qui possède les autorisations d'accès complet à la boîte aux lettres, mais pas l'autorisation Envoyer en tant que

    Le même compte peut apparaître plusieurs fois dans l'ensemble le fichier d'exportation lorsque le compte a accès à plusieurs boîtes aux lettres. Il s'agit susceptibles d'être le cas d'un compte de service d'application ou d'une personne qui a gère plusieurs boîtes aux lettres de ressources.
  • Nom complet d'un compte qui possède l'autorisation accès complet à la boîte aux lettres, mais pas l'autorisation Envoyer en tant que

    Ce champ est fourni en plus de la Nom d'ouverture de sessionchamp pour faciliter l'identification du compte.
  • Statut délégué du propriétaire de la boîte aux lettres

    Si le propriétaire de boîte aux lettres dispose de délégués, la valeur du champ estDispose de délégués. Si le propriétaire de boîte aux lettres ne dispose d'aucun délégués, la valeur du champ est Non Délégués.
  • État activé ou désactivé du compte du propriétaire de boîte aux lettres

    Ce champ est utile lorsque vous souhaitez identifier les ressources comptes ou des comptes de boîte aux lettres inter-forêts. En règle générale, ces comptes sont désactivé.
  • Nom unique complet du compte du propriétaire de boîte aux lettres

    Ce champ est utile lorsque vous souhaitez identifier le domaine et le conteneur du compte du propriétaire de boîte aux lettres.
  • Nom unique complet de la base de données de boîtes aux lettres du propriétaire de boîte aux lettres

    Ce champ inclut la base de données, le groupe de stockage, le serveur et le groupe d'administration pour la boîte aux lettres.
Dans l'exemple suivant, l'utilisateur qui porte le nom d'ouverture de session « NoSendAs » a l'autorisation accès complet à la boîte aux lettres, mais pas l'envoyer en tant que autorisation pour "la boîte aux lettres « mailbox Owner :
"" "Boîte aux lettres propriétaire" """" Domain\NoSendAs"" """" non envoyer en tant qu'utilisateur"" """"A délégués"" """"activé"" "[champs supplémentaires omis]

Configuration de station de travail administrative pour le script

Ce script utilise les interfaces de gestion Exchange pour communiquer avec les serveurs Exchange. Par conséquent, ce script doit être exécuté à partir d'un échange serveur ou à partir d'une station de travail avec l'administrateur du système Exchange installé.

Modification du fichier d'exportation

Le fichier d'exportation est formaté en tant que texte brut Unicode ainsi que jeux de caractères à partir de plusieurs langues peuvent être satisfaite. Certains éditeurs de texte peut être impossible d'afficher ou de modifier le fichier correctement ou peut enregistrer le fichier en tant que ANSI ou texte ASCII. L'utilitaire Bloc-notes pour Windows Server 2003, Windows XP et Microsoft Windows 2000 peut gérer correctement le texte Unicode fichiers. En outre, Microsoft Office Excel peut gérer correctement texte Unicode fichiers.

Le fichier de sortie est dans un format délimité par des tabulations avec triple guillemets autour des valeurs de chaque champ. Les guillemets triples sont utilisés pour rendre l'importation et exportation à partir d'Excel plus déterministe. Dans Excel, les guillemets triples deviennent des guillemets simples et sera revenir aux guillemets triples lorsque le fichier est enregistré à nouveau en tant que texte Unicode. Consultez les instructions suivantes pour ouvrir et enregistrer un fichier d'exportation dans correctement Excel.

Vous pouvez également filtrer un fichier d'exportation sans l'aide d'Excel à l'aide l'utilitaire Find.exe ou Findstr.exe. Ces utilitaires sont inclus avec Windows. Ils vous permettent de rechercher des mots dans un fichier et Seules les lignes qui contiennent ces mots ou uniquement les lignes qui ne contiennent pas de sortie ces mots. Par exemple, si vous souhaitez créer une liste dans le fichier de tous les propriétaires de boîtes aux lettres qui ont des délégués, appliquez une de ces commandes pour créer un fichier qui contient uniquement les lignes avec la chaîne « Has Delegates » :
Find.exe « dispose de délégués » OriginalFile.txt > HasDelegates.txt

Findstr.exe/c: "dispose de délégués" OriginalFile.txt > HasDelegates.txt
Un autre exemple, supposons que vous filtrez toutes les les propriétaires de boîtes aux lettres avec délégués. Le commutateur /V retourne toutes les lignes qui ne correspondent pas aux mots de la recherche. Vous peut utiliser une de ces commandes pour générer un fichier excluant toutes "A Lignes Delegates » :
Find.exe « Aucun Delegates » OriginalFile.txt > NoDelegates.txt

Find.exe /V « dispose de délégués » OriginalFile.txt > NoDelegates.txt

Findstr.exe/c: "Aucun Delegates" OriginalFile.txt > NoDelegates.txt

Findstr.exe /V/c: "dispose de délégués" OriginalFile.txt > NoDelegates.txt
Vous pouvez également utiliser ces commandes pour générer un fichier qui répertorie tous les comptes où un compte de service d'application a plein Autorisation d'accès aux boîtes aux lettres, mais n'a ne pas l'autorisation Envoyer en tant que. Le commutateur /I rend la commande sans respecter la casse :
Find.exe /I « domain\ServiceAccount » OriginalFile.txt > ServiceAccount.txt

Findstr.exe /I/c: "domain\ServiceAccount" OriginalFile.txt > ServiceAccount.txt
Remarque : Si vous utilisez l'utilitaire Find.exe pour créer un fichier filtré, vous devez supprimer les lignes d'en-tête que crée l'utilitaire Find.exe en haut du fichier.

Do n'utilisez pas les noms de fichiers génériques (*. *) avec l'utilitaire Findstr.exe. Si vous utilisez des caractères génériques, chaque ligne dans le fichier de sortie doit être précédée du nom de fichier. Vous devez Examinez attentivement le fichier de sortie après avoir filtré à l'aide de Find.exe ou Findstr.exe afin de vérifier que votre filtre capturé ou exclu les comptes que vous avez but.

Dans l'exemple suivant, l'utilisateur qui porte le nom d'ouverture de session « NoSendAs » a l'autorisation accès complet à la boîte aux lettres, mais pas l'envoyer en tant que autorisation pour "la boîte aux lettres « mailbox Owner.
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [additional fields omitted] 

À propos des propriétaires de boîtes aux lettres qui ont des délégués

Un délégué qui a accès complet à la boîte aux lettres (également appelé un « super délégué ») habituellement ne doit pas être accordé l'autorisation Envoyer en tant que. Lors de la Ouvre une super session directement sur boîte aux lettres du propriétaire de boîte aux lettres, le délégué peut envoyer en tant que propriétaire. Lorsque le délégué utilise (fonctions) délégation d'OutlookSupplémentaires Boîtes aux lettres à ouvrir ou Ouvrez le dossier d'un autre utilisateur), les messages sont envoyés sur le compte du propriétaire.

Accorder l'autorisation Envoyer en tant que pour un super délégué uniquement si vous souhaitez que le délégué toujours envoyer en tant que propriétaire de la boîte aux lettres et ne jamais envoyer au nom de la propriétaire de boîte aux lettres. Nous vous recommandons que vous recherchez le fichier d'exportation pour le texte "A Délégués, » et ensuite déterminer si l'un des super délégués qui sont répertoriées sont en réalité des délégués du propriétaire de la boîte aux lettres.

Uniquement les super délégués répertoriés dans le fichier d'exportation. Les délégués ordinaires n'ont pas l'autorisation accès complet à la boîte aux lettres. En outre, lorsque vous accordez l'autorisation Envoyer en tant que à un délégué ordinaire, le délégué sera toujours envoyer en tant que propriétaire de la boîte aux lettres. Ceci est vrai même lorsque le délégué ordinaire n'a pas l'autorisation accès complet à la boîte aux lettres. Si vous accordez les autorisations Envoyer en tant qu'à un délégué lorsque vous n'aviez pas l'intention Vous pouvez facilement annuler l'autorisation ultérieurement.

Comment ouvrir un fichier d'exportation dans Excel

  1. Démarrez Excel avant d'ouvrir le fichier d'exportation.
  2. Ouvrez le fichier dans Excel en fichiers texte de la frappe. Démarrage de l'Assistant Importation de texte.
  3. Dans l'Assistant Importation de texte, modifiez ou acceptez le suivant paramètres :
    • Type de données d'origine: Délimité
    • Commencer l'importation à la ligne: 1
    • Origine du fichier: Unicode (UTF-8)
    • Délimiteurs: Onglet uniquement
    • Interpréter des séparateurs identiques consécutifs comme uniques: non marqué
    • Qualificateur de texte: "(guillemets doubles)

Comment enregistrer un fichier d'exportation après avoir modifié le fichier dans Excel

  1. Dans le fichier d'exportation, cliquez sur Enregistrer en tant que.
  2. Enregistrez le fichier en utilisant un nom différent pour que vous conservez un copie non modifiée du fichier d'origine.
  3. Cliquez sur Fichier, cliquez sur Enregistrer en tant que, entrez un nom de fichier pour enregistrer la sortie et puis cliquez sur Texte Unicode dans le Enregistrer en tant que Type liste.

Syntaxe du script

Il s'agit d'un script en mode texte, et il doit être exécuté dans une commande invite de fenêtre, pas à partir de la Exécuter boîte de dialogue. Pour ouvrir une commande fenêtre d'invite, cliquez sur Démarrer, cliquez sur Exécuter, type CMD dans le Ouvrir zone, puis cliquez sur OK.

Journal des erreurs et exporter les fichiers seront enregistrés dans le répertoire de l'invite de commande en cours. Vous devez disposer des autorisations pour créer des fichiers dans ce répertoire. Pour obtenir de l'aide de la ligne de commande, entrez la commande suivante :
CSCRIPT AddSendAs.vbs
Pour exporter les utilisateurs qui ont un accès complet à la boîte aux lettres sans l'autorisation Envoyer en tant que pour un domaine, entrez la commande suivante :
CSCRIPT AddSendAs.vbs [domain controller name] –ExportExample:CSCRIPT AddSendAs.vbs CORP-DC-1 –Export
Le fichier d'exportation sera généré en tant que « Send_As_Export_H_MM_SS.txt ».

Pour importer un fichier d'exportation modifié, entrez la commande suivante :
CSCRIPT AddSendAs.vbs [domain controller name] –Import [filename]Example:CSCRIPT AddSendAs.vbs CORP-DC-1 –Import "Send_As_Export_H_MM_SS.txt"

Comment faire pour accorder l'autorisation Envoyer en tant que pour chaque boîte aux lettres dans le domaine pour tous les utilisateurs qui disposent déjà de l'autorisation accès complet à la boîte aux lettres pour une boîte aux lettres

Remarque : Si vous avez des délégués qui ont également l'accès complet à la boîte aux lettres autorisation de votre organisation, vous ne devez pas utiliser le mode SetAll. Si vous le faites Utilisez le mode SetAll dans ce cas, l'envoyer en tant que délégués seront accordées autorisation. Ce comportement peut provoquer tous les messages électroniques qu'ils envoient à utiliser l'autorisation Envoyer en tant que plutôt qu'envoyer de la part de. Vous pouvez corriger ce problème en supprimant l'autorisation Envoyer en tant que qui a été par erreur accordée au délégué :
CSCRIPT AddSendAs.vbs [domain controller name] –SetAllExample:CSCRIPT AddSendAs.vbs CORP-DC-1 –SetAll
Si vous utilisez le mode SetAll, un fichier d'exportation sera généré en tant que Send_As_Export_H_MM_SS.txt. Vous devez enregistrer ce fichier car il est un enregistrement de tous les comptes qui ont été modifiés. Si vous deviez exécuter le script une fois encore, elle produirait pas la même liste de comptes, car la comptes seraient a déjà été accordées l'autorisation Envoyer en tant que.

Erreurs que vous rencontrez lorsque vous exécutez le script sera enregistré dans le fichier Send_As_Errors_H_MM_SS.txt. Le nom de fichier d'erreur correspondra l'horodatage de hours_minutes_seconds de n'importe quel fichier d'exportation associé.

Modification du script

Il peut y avoir des comptes de votre organisation qui disposent des autorisations sur de nombreux objets, mais vous ne souhaitez pas modifier les autorisations. Pour réduire la taille du fichier d'exportation, vous pouvez filtrer ces comptes en modifiant la Variable FMA_EXCLUSIVE_LIST qui se trouve en haut du script. Par par défaut, cette variable répertorie quelques comptes qui doivent être supprimés dans la sortie du script. Vous pouvez ajouter d'autres comptes en utilisant le format suivant.
& "<Domain\Name>" & OUTPUT_DELIMITER
Par exemple, vous pourriez modifier la valeur de la variable suivante.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
pour qu'il apparaisse comme suit.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Mydomain\Service1" & OUTPUT DELIMITER
Cette modification supprime la liste du compte « Mydomain\Service1 » dans le fichier d'exportation ainsi que « NT AUTHORITY\SELF » et « Autorite NT\SYSTEM ». Notez que la valeur Domain\Name respecte la casse et il doit apparaître exactement comme il le fait ou comme il le ferait dans le fichier d'exportation.

Il existe une autre variable modifiable, FMA_EXCLUSIVE_EXSVC, qui a la valeur par défaut » \Exchange Services » & OUTPUT_DELIMITER. « Exchange Services » sont le nom d'un compte qui détient les autorisations par le biais du connecteur Active Directory dans Exchange Server 5.5 et dans les scénarios de migration et coexistence d'Exchange 2000. Ce compte est créé dans plusieurs domaines, et il peut apparaître à plusieurs reprises dans le fichier d'exportation si Il n'est pas supprimé.

La variable FMA_EXCLUSIVE_EXSVC accepte uniquement un seul compte en tant que sa valeur. Le nom du compte ne respecte pas la casse. Le compte doit commencer par une barre oblique inverse (\) et ne doit pas inclure le domaine auquel appartient le compte. Le compte sera supprimé pour tous domaines dans lesquels il existe.

Si vous avez utilisé la migration de tiers outils ou méthodes de synchronisation d'annuaire, un compte différent peut exister dans plusieurs domaines ayant accordé massivement des autorisations aux boîtes aux lettres utilisateur. Dans ce scénario, vous pouvez remplacer le nom de ce compte par « \Exchange Services ».

Conseils et avertissements

  • Ne supprimez pas les fichiers journaux et les erreurs générées par le script. Ils peuvent être utiles pour le dépannage ou l'annulation des modifications une version ultérieure. N'oubliez pas que, dès que vous avez accordé l'autorisation Envoyer en tant que pour une compte, il sera plus consigné dans le fichier d'exportation.
  • Si une base de données ou un serveur Exchange est arrêté, le traitement du script sera plus lent. Dans ce cas, vous pouvez trier le fichier d'exportation par base de données et déplacer les lignes qui sont associés à une base de données arrêtée dans un fichier différent pour une version ultérieure importer.
  • Le script supprime la sortie de comptes où l'ouverture de session nom se termine par «$ » ou est NT AUTHORITY\SYSTEM. Ces comptes système ne devraient pas généralement besoin de l'envoyer en tant qu'autorisation et leur suppression à partir du fichier d'exportation réduit considérablement sa taille.
  • Le fichier d'exportation doit être au format Unicode avant de pouvoir être importé. Si vous avez involontairement enregistré le fichier en tant que texte ANSI, vous pouvez : résoudre ce problème en chargeant le fichier dans le bloc-notes et enregistrez-le au format Unicode texte.
  • Si une importation ne fonctionne pas, résoudre les problèmes avec les comptes de test et une seule ligne dans le fichier d'importation. Vous devez configurer un test qui compte a une boîte aux lettres sur un serveur Exchange en cours d'exécution et ensuite accorder l'autorisation accès complet à la boîte aux lettres vers un autre compte de test. N'accordez pas l'autorisation Envoyer en tant que sur l'autre compte de test.
  • Il n'existe aucun mode d'annulation de ce script. Afin d'éliminer les Autorisations Envoyer en tant que vous avez accordé avec ce script, vous devez générer un autre script ou les supprimer manuellement. Pour éviter le mode d'annulation n'est pas fourni. l'utilisation de ce script pour supprimer les autorisations Envoyer en tant que pour tous les utilisateurs dans un organisation.
  • Le script ne gère pas correctement un compte qui a reçu le contrôle total d'un objet utilisateur avec accès complet à la boîte aux lettres. Contrôle total inclut l'autorisation Envoyer en tant que mais le script exporte le compte comme s'il n'avait pas l'autorisation Envoyer en tant que. Vous pouvez augmenter la taille de le fichier d'exportation, mais aucun dommage se produit à partir de l'importation du fichier, puis redondante l'octroi d'autorisations Envoyer en tant qu'à ces comptes.
  • Comptes d'utilisateur Active Directory qui ont distingué les noms et qui comprennent les onglets ou guillemets doubles non concordants ne peuvent pas être traitées à l'aide de ce script. Le script peut correctement traiter un nom qui comprend des guillemets doubles concordants comme suit :
    "CN = First « Nickname » Last, DC = domain, DC = com"
  • Chaque version de Microsoft Excel prend en charge une limite maximale des lignes différentes. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    120596Fichiers texte qui sont supérieures à 65 536 lignes ne peuvent pas être importés à Excel 97, Excel 2000, Excel 2002 et Excel 2003
    Limites de ligne pour Excel 2003 et Excel 2007 sont les suivantes :
    • Lignes d'Excel 2003 : 65 536
    • Lignes Excel 2007: 1 048 576
    Si votre fichier de sortie est supérieure à ces limites, vous devez scinder le fichier en sections avant de le charger dans Excel.
  • Le fichier Send_As_Errors répertorie les comptes spécifiques où un échec de lecture ou d'autorisations d'écriture s'est produite. Si d'autres comptes dans le domaine ont été correctement traités, ces comptes peuvent avoir quelque chose en commun le script qui empêche l'exécution avec eux. Problèmes courants incluent la suivant :
    • Manque d'autorisations administratives pour afficher ou définir propriétés sur les comptes.
    • La banque de boîtes aux lettres Exchange n'est pas en cours d'exécution.
    • La station de travail n'est pas un membre de la même domaine.
    • Le compte administratif utilisé n'est pas à partir de la même forêt.
Pour exécuter ce script, copiez et collez toutes les lignes entre début SCRIPT et fin du SCRIPT dans un éditeur de texte brut tel que le bloc-notes. Enregistrez le script sous AddSendAs.vbs. DÉBUT DU SCRIPT.
Option ExplicitDim OUTPUT_DELIMITEROUTPUT_DELIMITER = """""""" & vbTab & """"""""'Define exclusive list, if FMA is given to any user in this list, it's ignored.  If you 'want to modify this list, please be sure to follow the same format. Every alias has to 'have a OUTPUT_DELIMITER before and after itDim FMA_EXCLUSIVE_LISTFMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITERDim FMA_EXCLUSIVE_EXSVCFMA_EXCLUSIVE_EXSVC = "\Exchange Services" & OUTPUT_DELIMITER'Permission Type: Allow or Denyconst ACCESS_ALLOWED_OBJECT_ACE_TYPE  = 5const ADS_ACETYPE_ACCESS_ALLOWED = &h0const ADS_ACETYPE_ACCESS_DENIED = &h1'Flags: Specifies Inheritanceconst ADS_ACEFLAG_INHERIT_ACE = &h2const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &h4const ADS_ACEFLAG_INHERIT_ONLY_ACE = &h8const ADS_ACEFLAG_INHERITED_ACE = &h10const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &h1fconst ADS_ACEFLAG_SUCCESSFUL_ACCESS = &h40const ADS_ACEFLAG_FAILED_ACCESS = &h80'Declare ADSI constantsConst ADS_OPTION_SECURITY_MASK = 3Const ADS_OPTION_REFERRALS	= 1Const ADS_SECURITY_INFO_DACL = 4Const ADS_CHASE_REFERRALS_NEVER = &h00 Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20 Const ADS_CHASE_REFERRALS_EXTERNAL = &h40'output file nameConst EXPORT_FILE = "Send_As_Export"Const ERROR_FILE = "Send_As_Errors"' script modeconst MODE_INVALID = -1 const MODE_SETALL = 0const MODE_EXPORT = 1const MODE_IMPORT = 2const SETALL = "-SETALL"const EXPORT = "-EXPORT"const IMPORT = "-IMPORT"' argument indexConst ARG_INDEX_MODE = 1Const ARG_INDEX_DC = 0Const ARG_INDEX_FILENAME = 2' column index in import/export fileConst COLUMN_INDEX_USERDISPLAYNAME = 0Const COLUMN_INDEX_FMAALIAS = 1Const COLUMN_INDEX_FMADISPLAYNAME = 2Const COLUMN_INDEX_IFPUBLICDELEGATE = 3Const COLUMN_INDEX_MAILBOXSTATUS = 4Const COLUMN_INDEX_USERADSPATH = 5Const COLUMN_INDEX_HOMEMDB = 6Const EMPTYSTRING = ""Const STRNO = "No Delegates"Const STRYES = "Has Delegates" Const MIN_ARG = 2Const INIT_ARRAY_SIZE = 100' Microsoft Exchange Const EX_MB_SEND_AS_ACCESSMASK  = &H00100Const EX_FULLMailbox_AccessMask = 1Const MESO = "Microsoft Exchange System Objects"Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"Const ForReading	= 1Const ForWriting	= 2Const ForAppending	= 8Const TristateTrue	= -1Const ADS_SCOPE_SUBTREE = 2Dim objUserDim objSDMailBoxDim objSDNTsecurityDim objDACLNTSDDim objNewACEDim sTrusteeAlias()Dim sFMADeniedListDim sFMAExplicitAllowDim fACESendasFoundDim dArraySizeDim TotalACEDim iDim rootDSEDim connDim objCommandDim objCmdDisplayNameDim rsUsersDim FoundObjectDim objFSODim objfileImportDim objfileExportDim objfileErrorDim sImportFilePathDim cScriptModeDim dArgCountDim dArgExpectedDim sDCServerDim sMailboxStatusDim sIfPublicDelegateDim sFMAUserDisplayNameDim sExportFileNameDim sErrorsFileNameDim msPublicDelegatesDim fErrorDim fOneErrorDim fFMAAllowedOn Error Resume NextdArraySize = INIT_ARRAY_SIZEReDim Preserve sTrusteeAlias(dArraySize)dArgCount = Wscript.Arguments.Count If ( dArgCount < MIN_ARG ) Then	DisplaySyntaxEnd Iferr.ClearfError = FalsefOneError = FalsecScriptMode = MODE_INVALIDSelect Case UCase(WScript.Arguments(ARG_INDEX_MODE))	Case SETALL 		cScriptMode = MODE_SETALL		dArgExpected = ARG_INDEX_MODE + 1	Case EXPORT 		cScriptMode = MODE_EXPORT		dArgExpected = ARG_INDEX_MODE + 1	Case IMPORT 		cScriptMode = MODE_IMPORT		dArgExpected = ARG_INDEX_FILENAME + 1	Case Else 		cScriptMode = MODE_INVALIDEnd SelectIf (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then	DisplaySyntaxEnd IfsDCServer = WScript.Arguments(ARG_INDEX_DC)CreateOutputFilesIf ( cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT ) Then	Dim sDomainContainer	If (cScriptMode = MODE_SETALL) Then		Dim strInput 		WScript.StdOut.WriteLine("WARNING: If you continue, each account in the domain that has")		WScript.StdOut.WriteLine("Full Mailbox Access permission for a given mailbox will also be")		WScript.StdOut.WriteLine("granted permission to Send As the mailbox owner.")		WScript.StdOut.WriteLine()		WScript.StdOut.WriteLine("To preview the list of mailboxes before granting Send As,")		WScript.StdOut.WriteLine("cancel this operation and use the -Export mode of this script.")		WScript.StdOut.WriteLine()		WScript.StdOut.Write("Press Y to continue or any other key to cancel: ")		strInput = WScript.StdIn.ReadLine()		If (UCase(strInput) <> UCase("Y")) Then			WScript.Quit		End If		End If		WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("""!"" indicates an error processing an object.")	WScript.StdOut.WriteLine("     Check " & sErrorsFilename)	WScript.StdOut.WriteLine("Starting...")	WScript.StdOut.WriteLine()	err.Clear		Set rootDSE = GetObject("LDAP://" & sDCServer & "/RootDSE")	sDomainContainer = rootDSE.Get("defaultNamingContext")	WScript.StdOut.WriteLine("Finding domain controller [ " & sDCServer & " ] for domain [ " & sDomainContainer & " ]")		If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to find the domain or domain controller, error:" & err.Description)		objfileError.WriteLine("Failed to find the domain or domain controller, error:" & err.Description)		WScript.Quit	End If				err.Clear		Set conn = CreateObject("ADODB.Connection")	Set objCommand = CreateObject("ADODB.Command")	conn.Provider = "ADSDSOObject"	conn.Open "ADs Provider"	If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)		objfileError.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)		WScript.Quit	End If	Set objCommand.ActiveConnection = conn	WScript.StdOut.WriteLine("Searching for mailbox owner user accounts in " & sDomainContainer)		objCommand.CommandText  = "<LDAP://" & sDCServer & "/" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(msExchHomeServerName=*)) ))));adspath;subtree"	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE	objCommand.Properties("Page Size") = 100	objCommand.Properties("Timeout") = 30 	objCommand.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)	err.Clear		Set rsUsers = objCommand.Execute	If (err.number <> 0) Then		WScript.StdOut.WriteLine("Search for mailbox owners failed, error:" & err.Description)		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)		WScript.Quit	End If	If (rsUsers.RecordCount = 0) Then		WScript.StdOut.WriteLine("No mailbox owner user accounts could be seen in " & sDomainContainer & ".")		objfileError.WriteLine("No mailbox owner user accounts found in " & sDomainContainer & ".")		fError = True			End If	While Not rsUsers.EOF		If (fOneError = True) Then			WScript.StdOut.Write("!")		Else			WScript.StdOut.Write(".")		End If		fOneError = False				'Skip any mailbox object in Microsoft Exchange System Objects container		If (0 = Instr(rsUsers.Fields(0).Value, MESO)) Then			err.Clear 			Set objUser = GetObject(rsUsers.Fields(0).Value)			If (err.number <> 0) Then				objfileError.WriteLine("Failed to get user object: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Error: " & err.Description)				fError = True				fOneError = True				err.Clear			End If			Set objSDMailBox = objUser.MailboxRights			If (err.number <> 0) Then				objfileError.WriteLine("Failed to get mailbox rights: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Error: " & err.Description)				fError = True				fOneError = True				err.Clear			End If			Set objSDNTsecurity = objUser.ntSecurityDescriptor			If (err.number <> 0) Then				objfileError.WriteLine("Failed to get NTSD: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Error: " & err.Description)				fError = True				fOneError = True				err.Clear			End If						Set objDACLNTSD = Nothing			If (objUser.AccountDisabled) Then				sMailboxStatus = "Disabled"			Else				sMailboxStatus = "Enabled"			End If			'Query this user's publicDelegates list			err.Clear 			msPublicDelegates = objUser.Get("publicDelegates")			If (err.number <> 0) Then				'This user doesn't have publicDelegates list set				sIfPublicDelegate = STRNO				err.Clear			Else				sIfPublicDelegate = STRYES			End If						err.Clear 						FindAllFMAUsers objSDMailBox						If (TotalACE > dArraySize) Then			'Needs to allocate bigger size array				dArraySize = TotalACE + 1				ReDim Preserve sTrusteeAlias(dArraySize)				FindAllFMAUsers objSDMailBox			End If			If (err.number <> 0) Then				objfileError.WriteLine("Failed to query mailbox rights of user: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Error: " & err.Description)				err.Clear				fError = True				fOneError = True			End If						If TotalACE > 0 Then				Set objDACLNTSD = objSDNTsecurity.DiscretionaryAcl				For i = 0 to TotalACE - 1 Step 1										'Check if we already have Send As ACE in NT security descriptor					'If it exists, either allow or deny, we don't need to add send as to it 					CheckSendAsACE objDACLNTSD, sTrusteeAlias(i)										'Note: deny entries take precedence over allow entries. 					'If there is FMA deny ACE, skip it even if we find FMA allow ACE 					IfFMAAllowed(sTrusteeAlias(i) & OUTPUT_DELIMITER)					If ((fFMAAllowed = True) And (fACESendasFound = 0)) Then						If cScriptMode = MODE_SETALL Then							Set objNewACE = CreateObject ("AccessControlEntry")							objNewACE.AceFlags = 0 							objNewACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE							objNewACE.AccessMask = EX_MB_SEND_AS_ACCESSMASK 							objNewACE.Flags = 1							objNewACE.ObjectType = EX_MB_SEND_AS_GUID							objNewACE.Trustee = sTrusteeAlias(i)							objDACLNTSD.AddAce objNewAce						End If									'Query trustee(FMA user) to get its displayName						Dim rsTrustee						Dim objTrustee						Dim dPosition						Dim sAlias											dPosition = inStr(1, sTrusteeAlias(i), "\")						sAlias = mid(sTrusteeAlias(i), dPosition + 1)										Set objCmdDisplayName = CreateObject("ADODB.Command")									Set objCmdDisplayName.ActiveConnection = conn						objCmdDisplayName.CommandText  = "<LDAP://" & sDomainContainer & ">;(&(&(& (mailnickname=" & sAlias & ") (| (&(objectCategory=person)(objectClass=user)(msExchHomeServerName=*)) ))));adspath;subtree"						objCmdDisplayName.Properties("searchscope") = ADS_SCOPE_SUBTREE						objCmdDisplayName.Properties("Page Size") = 100						objCmdDisplayName.Properties("Timeout") = 30 						objCmdDisplayName.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)												Set rsTrustee = objCmdDisplayName.Execute										Set objTrustee = GetObject(rsTrustee.Fields(0).Value)												If (err.number <> 0) Then							'Failed to query FMA user's display name, use its alias							sFMAUserDisplayName = sAlias													Else							sFMAUserDisplayName = objTrustee.displayName													End If							'output to export file						err.Clear						objfileExport.WriteLine ("""""""" & objUser.displayName & OUTPUT_DELIMITER & sTrusteeAlias(i) & OUTPUT_DELIMITER & sFMAUserDisplayName & OUTPUT_DELIMITER & sIfPublicDelegate & OUTPUT_DELIMITER & sMailboxStatus & OUTPUT_DELIMITER & rsUsers.Fields(0).Value & OUTPUT_DELIMITER & objUser.homeMDB & """""""")						If (err.number <> 0) Then							objfileError.WriteLine("User " & rsUsers.Fields(0).Value & " could not be added to the export file. You should set permissions manually for this user.")							objfileError.WriteLine("Error: " & err.Description)							err.Clear							fError = True							fOneError = True						End If						Set objCmdDisplayName = Nothing						Set rsTrustee = Nothing						Set objTrustee = Nothing					End If				Next									If cScriptMode = MODE_SETALL Then					err.Clear					objSDNTsecurity.DiscretionaryAcl = objDACLNTSD					objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )					objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL					objUser.SetInfo					If (err.number <> 0) Then						objfileError.WriteLine("Failed to update ADSI for user: " & rsUsers.Fields(0).Value)						objfileError.WriteLine("Error: " & err.Description)						err.Clear						fError = True						fOneError = True					End If				End If				TotalACE = 0				Set objSDMailbox = Nothing				Set objSDNTsecurity = Nothing				Set objUser = Nothing				Set objDACLNTSD = Nothing			End If				End If			rsUsers.MoveNext	WendEnd IfIf (cScriptMode = MODE_IMPORT) Then	Dim sOneRow	Dim sArraySplit	Dim objUserItem	Dim UserPath	Dim objUserSD	Dim objUserDACL	Dim fNeedToAddSendAs		sImportFilePath = WScript.Arguments(ARG_INDEX_FILENAME)	WScript.StdOut.WriteLine("If you continue, each account listed in " & sImportFilePath)	WScript.StdOut.WriteLine("that has Full Mailbox Access permission for a given mailbox")	WScript.StdOut.WriteLine("will also be granted permission to Send As the mailbox owner.")	WScript.StdOut.WriteLine()	WScript.StdOut.Write("Press Y to continue or any other key to cancel: ")	strInput = WScript.StdIn.ReadLine()	If (UCase(strInput) <> UCase("Y")) Then		WScript.Quit	End If		WScript.StdOut.WriteLine("Starting...")	WScript.StdOut.WriteLine()	UserPath = EMPTYSTRING		err.Clear		Set objFSO = CreateObject("Scripting.FileSystemObject")	Set objfileImport = objFSO.OpenTextFile(sImportFilePath, ForReading, False, TristateTrue)	If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to open import file " & sImportFilePath & ", error:" & err.Description)		objfileError.WriteLine("Failed to open import file " & sImportFilePath & ", error:" & err.Description)		WScript.Quit	End If		fNeedToAddSendAs = False	Do While objfileImport.AtEndOfStream <> True		If (fOneError = True) Then			WScript.StdOut.Write("!")		Else			WScript.StdOut.Write(".")		End If		fOneError = False		err.Clear		sOneRow = objfileImport.ReadLine		sArraySplit = Split(sOneRow , OUTPUT_DELIMITER)		If (err.number <> 0) Then			objfileError.WriteLine("Failed to parse one row: " & sOneRow )			objfileError.WriteLine("Error: " & err.Description)			err.Clear			fError = True			fOneError = True		End If				If (UserPath <> sArraySplit(COLUMN_INDEX_USERADSPATH)) Then			'A new user			If (fNeedToAddSendAs = True ) Then				'update existing user				err.Clear 				objSDNTsecurity.DiscretionaryAcl = objDACLNTSD				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL				objUser.SetInfo				If (err.number <> 0) Then					objfileError.WriteLine("Failed to update permissions for user: " & UserPath)					objfileError.WriteLine("Error: " & err.Description)					fError = True					fOneError = True				End If			End If									fNeedToAddSendAs = False			Set objUser = Nothing			Set objSDNTsecurity = Nothing			Set objDACLNTSD = Nothing			UserPath = sArraySplit(COLUMN_INDEX_USERADSPATH)			err.Clear 			Set objUser = GetObject(UserPath)			Set objSDNTsecurity = objUser.ntSecurityDescriptor  			Set objDACLNTSD = objSDNTsecurity.DiscretionaryACL						If (err.number <> 0) Then				objfileError.WriteLine("Failed to get user object: " & UserPath)				objfileError.WriteLine("Error: " & err.Description)				err.Clear				fError = True				fOneError = True			End If		End If			'Add newACE   Do we need this check?		CheckSendAsACE objDACLNTSD, sArraySplit(COLUMN_INDEX_FMAALIAS)		If (fACESendasFound = 0) Then			Set objNewACE = CreateObject ("AccessControlEntry")			objNewACE.AceFlags = 0 			objNewACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE			objNewACE.AccessMask = EX_MB_SEND_AS_ACCESSMASK 			objNewACE.Flags = 1			objNewACE.ObjectType = EX_MB_SEND_AS_GUID			objNewACE.Trustee = sArraySplit(COLUMN_INDEX_FMAALIAS)			objDACLNTSD.AddAce objNewACE			fNeedToAddSendAs = True					End If	Loop		If (fNeedToAddSendAs = True ) Then		'update the last user		err.Clear 		objSDNTsecurity.DiscretionaryAcl = objDACLNTSD		objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )		objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL		objUser.SetInfo		If (err.number <> 0) Then			objfileError.WriteLine("Failed to update permissions for user: " & UserPath)			objfileError.WriteLine("Error: " & err.Description)			fError = True		End If	End IfEnd If objFSO.CloseobjfileImport.CloseobjfileExport.CloseobjfileError.CloseSet objFSO = NothingSet objfileImport = NothingSet objfileExport = NothingSet objfileError = NothingSet objCommand = NothingSet conn = NothingWScript.StdOut.WriteLine()If (fError = True) Then	WScript.StdOut.WriteLine("Finished with one or more errors. See " & sErrorsFilename)Else	WScript.StdOut.WriteLine("Finished successfully. No errors were encountered.")End IfFunction FindAllFMAUsers (objSD)Dim objACLDim objACEDim intACECountDim strIndentDim dAccessMaskBitDim dPositionDim sUserAlreadyFound	On Error Resume Next	err.Clear	TotalACE = 0	sFMADeniedList = EMPTYSTRING	sFMAExplicitAllow = EMPTYSTRING	sUserAlreadyFound = OUTPUT_DELIMITER	intACECount = 0	Set objACL = objSD.DiscretionaryAcl	intACECount = objACL.AceCount	If intACECount Then		' Open discretionary ACL (DACL) data.		For Each objACE In objACL							dPosition = inStr(1, objACE.Trustee, "$")		If ((0 = Instr(UCase(objACE.Trustee & OUTPUT_DELIMITER), UCase(FMA_EXCLUSIVE_EXSVC))) And (0 = Instr(sUserAlreadyFound, OUTPUT_DELIMITER & objACE.Trustee & OUTPUT_DELIMITER)) And (0 = Instr(FMA_EXCLUSIVE_LIST, OUTPUT_DELIMITER & objACE.Trustee & OUTPUT_DELIMITER)) And (dPosition <> Len(objACE.Trustee)) And ((objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0) And ((objACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED) Or (objACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE) )) Then			If (TotalACE < dArraySize) Then				sTrusteeAlias(TotalACE) = objACE.Trustee				sUserAlreadyFound = sUserAlreadyFound & objACE.Trustee & OUTPUT_DELIMITER			End If			TotalACE = TotalACE + 1				If ((objACE.AceFlags And ADS_ACEFLAG_INHERITED_ACE) = 0) Then				'Keep a list who explictly set FMA at mailbox level				sFMAExplicitAllow = sFMAExplicitAllow & objACE.Trustee & OUTPUT_DELIMITER						End If		ElseIf (( (objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0 ) And (objACE.AceType = ADS_ACETYPE_ACCESS_DENIED)) Then			'Keep a list who denied FMA, use OUTPUT_DELIMITER as demiliter, 			'include both inherited and explicit set at mailbox level			sFMADeniedList = sFMADeniedList & objACE.Trustee & OUTPUT_DELIMITER					End If		Next	End If	Set objACL = NothingEnd FunctionFunction CheckSendAsACE (objDiscretionaryACL, sTAlias)Dim objACEDim intACECount	err.Clear 	fACESendasFound = 0	intACECount = objDiscretionaryACL.AceCount	If intACECount Then		For Each objACE In objDiscretionaryACL				err.Clear 			If ( (objACE.Trustee = sTAlias) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then				fACESendasFound = 1			End If			If (err.number <> 0) Then				objfileError.WriteLine("Could not read permissions for this user: " & sTAlias)				objfileError.WriteLine("Error: " & err.Description)				err.Clear				fError = True				fOneError = True			End If					Next				End If	End FunctionFunction IfFMAAllowed(sTrustee)	'FMA allow ACE has been found. Assume it's true	fFMAAllowed = True		If ( (0 <> Instr(sFMADeniedList, sTrustee)) And (0 = Instr(sFMAExplicitAllow, sTrustee))	) Then		'If Denied ACE is found, and no explicit allow FMA 		fFMAAllowed = False	End If End FunctionFunction CreateOutputFiles	Dim sTimeArray	Dim sTimeShort	Dim sTime		err.Clear	sTime = Time	sTimeShort = Split(sTime, " ")	sTimeArray = Split(sTimeShort(0), ":")	Set objFSO = CreateObject("Scripting.FileSystemObject")	sErrorsFileName = ERROR_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForWriting, True, TristateTrue)	If (cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT)	Then		sExportFileName = EXPORT_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"		Set objfileExport = objFSO.OpenTextFile(sExportFileName, ForWriting, True, TristateTrue)		End If		If err.number <> 0 Then		WScript.StdOut.WriteLine("Unable to create export or error files: " & err.Description)		objfileError.WriteLine("Unable to create export or error files: " & err.Description)		fError = True		fOneError = True		WScript.Quit		End IfEnd FunctionFunction DisplaySyntax	WScript.StdOut.WriteLine("Syntax:")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Export accounts with Full Mailbox Access that do not have Send As permission:")	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Export")	WScript.StdOut.WriteLine("         NOTE: The list will be saved to Send_As_Export_HH_MM_SS.txt")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Grant Send As to all accounts listed in an export file:")	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Import ""filename.txt""")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Grant Send As to all accounts in the domain with Full Mailbox Access:")	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -SetAll")	WScript.StdOut.WriteLine("         NOTE: Accounts will be listed in Send_As_Export_HH_MM_SS.txt")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("For all modes, errors are saved to Send_As_Errors_HH_MM_SS.txt")	WScript.Quit	End Function
SCRIPT DE FIN

Microsoft fournit des exemples de programmation à titre d'illustration uniquement, sans garantie expresse ou implicite. Cela sous-entend, sans toutefois être exhaustif, un processus opérationnel pour des circonstances d'utilisation particulières. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté ainsi qu'avec les outils utilisés pour créer et déboguer les procédures. Ingénieurs du support technique Microsoft peuvent vous expliquer la fonctionnalité d'une procédure particulière. Toutefois, ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.

Pour plus d'informations sur la prise en charge les options qui sont disponibles auprès de Microsoft, visitez le site Web Microsoft suivant site : Les produits tiers qui traite de cet article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft n'offre aucune garantie, expresse ou implicite, concernant les performances ou la fiabilité de ces produits.
XADM Blackberry Enterprise Server BES GoodLink Cisco unifié Messagerie RIM OWA

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 912918 - Dernière mise à jour : 12/09/2015 04:18:33 - Révision : 1.0

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

  • kbnosurvey kbarchive kbtshoot kbpending kbbug kbprb kbmt KB912918 KbMtfr
Commentaires