Wachtwoord vergeten?

Wachtwoord vergeten
Vul hier uw email adres in. U ontvangt dan een nieuw wachtwoord.

Gebruikers kunnen geen e-mailberichten verzenden vanaf een mobiel apparaat of vanuit een gedeelde postbus in Exchange 2000 Server en in Exchange Server 2003

Gepost op 01-05-2007 - KB: E-mail - 0 reacties


De informatie in dit artikel is van toepassing op:

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

Symptomen

De e-mailberichten die u probeert te verzenden met Microsoft Exchange 2000 Server of Microsoft Exchange Server 2003, worden niet verzonden. Bovendien kunt u een van de volgende foutberichten of NDR-rapporten (Non Delivery Reports) ontvangen.

Foutberichten

  • Toegang geweigerd
  • U hebt niet de vereiste machtiging om deze bewerking op dit object uit te voeren. Neem contact op met de mapcontactpersoon of de systeembeheerder.
  • Onbekend bericht
  • MAPI_E_NO_ACCESS -2147024891
  • Kan e-mailbericht voor USERNAME (HRESULT:-2147024891) niet verzenden. Bewerking voor USERNAME wordt onderbroken. (Beveiligingsfout: Geen toegang tot postbus van gebruiker.)
  • Bron niet gevonden
Opmerking Outlook Web Access geeft het foutbericht 'Toegang geweigerd' of 'Bron niet gevonden' weer wanneer u bent aangemeld als een gemachtigde account.

NDR's

  • U bent niet gemachtigd om berichten naar deze ontvanger te verzenden. Neem contact op met de systeembeheerder.
  • Kan het bericht niet verzenden vanuit uw postbus. U bent niet gemachtigd om het bericht namens de opgegeven gebruiker te verzenden..
Dit probleem kan optreden bij de volgende niet-Microsoft-producten:
  • Research In Motion (RIM) BlackBerry Enterprise Server (BES)
  • GoodLink Wireless Messaging van Good Technology
Voor de volgende niet-Microsoft-producten geldt dit probleem echter niet:
  • Cisco Unity Unified Messaging
  • Quest Migration Suite voor Exchange
  • Het hulpprogramma ExMerge voor Exchange van Microsoft
Mogelijk doet het probleem zich ook voor bij aangepaste MAPI- of CDO-programma's (Collaborative Data Objects) waarmee berichten worden verzonden.

Verder kan het probleem optreden bij andere niet-Microsoft-producten die e-mail verzenden op basis van serviceaccounts. Als u een product van een andere leverancier gebruikt en met dit probleem te maken hebt, moet u contact opnemen met de betreffende leverancier om het probleem op te lossen. Zie ook de sectie 'Meer informatie'.

Belangrijk Als het voor essentiële bedrijfstoepassingen noodzakelijk is de functionaliteit van Verzenden als te herstellen, kunt u de machtiging Verzenden als verlenen aan een serviceaccount door overname in een Active Directory-container of zelfs in een volledig domein. Raadpleeg de gedetailleerde instructies in de sectie De machtiging Verzenden als toewijzen aan verschillende accounts voor informatie. Hoewel dit een efficiënte manier is om het probleem te omzeilen, moet u wel rekening houden met de gevolgen voor beveiliging en beheer. Deze toewijzing kan als gevolg hebben dat de machtiging Verzenden als onbedoeld aan andere accounts wordt toegekend. Bovendien moet u rekening houden met de machtiging Verzenden als wanneer u gebruikersaccounts naar een andere container verplaatst.

Oorzaak

Mogelijke oorzaken van dit probleem zijn:
  • Uw e-mailaccount beschikt niet over een machtiging om berichten te verzenden als eigenaar van de postbus.
  • U gebruikt Microsoft Exchange 2000 Server Service Pack 3 (SP3) met een bestandsversie van Store.exe die gelijk is aan of hoger is dan versie 6619.4. Versie 6619.4 is voor het eerst beschikbaar gesteld in het volgende Microsoft Knowledge Base-artikel:

    915358Er is een hotfix beschikbaar om de werking van de machtiging Volledige toegang voor een postbus te wijzigen in Exchange 2000 Server

  • U gebruikt Microsoft Exchange Server 2000 Service Pack 1 (SP1) met een bestandsversie van Store.exe die gelijk is aan of hoger is dan versie 7233.51. Versie 7233.51 is voor het eerst beschikbaar gesteld in het volgende Microsoft Knowledge Base-artikel:

    895949De werking van de machtiging 'Verzenden als' is gewijzigd in Exchange 2003

    Deze correctie maakt echter geen deel uit van Microsoft Exchange 2003 Service Pack 2 (SP2). Als u de Exchange Server 2003 SP1-versie van deze hotfix hebt geïnstalleerd, moet u de Service Pack 2-versie installeren na afloop van de upgrade naar Service Pack 2.
  • U gebruikt Exchange Server 2003 SP2 met een bestandsversie van Store.exe die gelijk is aan of hoger is dan versie 7650.23. Versie 7650.23 is voor het eerst beschikbaar gesteld in het volgende Microsoft Knowledge Base-artikel:

    895949De werking van de machtiging 'Verzenden als' is gewijzigd in Exchange 2003

    Opmerking Deze wijziging is niet opgenomen in Exchange 2000 Server SP3, Exchange Server 2003 SP1 of Exchange 2003 SP2. De wijziging is geïmplementeerd na de uitgave van al deze servicepacks, maar wordt in deze servicepacks wel ondersteund. De wijziging zal worden opgenomen in toekomstige servicepacks voor deze producten.

    Als u Exchange Server 2003 SP2 installeert, moet u ook de aanvullende update installeren om de gewenste werking te behouden, zelfs als u al de versie van de update voor Exchange Server 2003 SP1 hebt geïnstalleerd.

Oplossing

Voorheen werd bij het verlenen van volledige toegang tot een postbus onder een van de vermelde Store.exe-versies in de sectie "Oorzaak", de gebruiker impliciet machtiging verleend om berichten te verzenden als eigenaar van de postbus. Hierdoor leken berichten die werden verzonden via een andere account met volledige postbustoegang, ogenschijnlijk verzonden door de eigenaar van de postbus.

De machtiging Verzenden als is nu op verzoek van een groot aantal Microsoft Exchange-klanten losgekoppeld van de machtiging Volledige postbustoegang. Ten grondslag hieraan lag de behoefte om:
  • Vervalste e-mailberichten te voorkomen.
  • Een duidelijk onderscheid te maken tussen e-mailberichten die worden verzonden door een gemachtigde en door de feitelijke eigenaar van de postbus.
In alle volgende versies van het Exchange-informatiearchief moet de machtiging Verzenden als nu verplicht expliciet worden ingesteld om iemand berichten in de hoedanigheid van eigenaar van de postbus te kunnen laten verzenden. Er zijn echter drie uitzonderingen op deze regel:
  • De machtiging Verzenden als is niet expliciet vereist voor de eigen postbus in de account van de postbuseigenaar.
  • De machtiging Verzenden als is niet expliciet vereist voor de bijbehorende externe account van een postbus.
  • De machtiging Verzenden als is niet expliciet vereist voor de account van een gemachtigde die al volledige toegang tot de postbus heeft.
Zie de sectie 'Meer informatie' voor meer informatie over deze uitzonderingen.

Alle overige accounts met gedeeltelijke of volledige toegang tot een postbus moeten nu expliciet de machtiging Verzenden als hebben voor de account van de postbuseigenaar om e-mail als eigenaar van de postbus te kunnen verzenden. Dit geldt ook voor serviceaccounts voor toepassingen waarmee mobiele gebruikers e-mailberichten kunnen verzenden of andere soortgelijke taken kunnen uitvoeren.

De machtiging Verzenden als moet worden verleend aan de serviceaccount van elk gebruikersobject dat eigenaar is van een postbus. Het is niet mogelijk om de machtiging Verzenden als alleen te verlenen aan een Exchange-server of een databaseobject alsof de machtiging impliciet zou gelden voor alle postbussen in de database.

Dit komt omdat de machtiging Verzenden als een Active Directory-machtiging is die specifiek wordt ingesteld voor de betrokken Active Directory-objecten. Als u de machtiging Verzenden als instelt voor een Exchange-databaseobject, wordt die machtiging dus verleend voor de database zelf. Die machtiging geldt dan echter niet voor gebruikers die zelf een machtiging Verzenden als hebben voor een postbus in de database.

Opmerking Het verlenen van de machtiging Ontvangen als voor een Exchange-database heeft functioneel gezien hetzelfde effect als het verlenen van volledige toegang tot alle postbussen in die database. Bij de machtiging Verzenden als werkt dit niet zo.

Hier geldt de machtiging alleen voor het databaseobject zelf. De machtiging Verzenden als geldt niet voor de postbussen in de database. De machtiging Ontvangen als wordt daarentegen overgenomen door alle postbussen in de database.

Het verschil tussen deze twee machtigingen wordt wellicht duidelijker wanneer u de postbussen in een database beschouwt als mappen in een afzonderlijke postbus (de 'databasepostbus'). Als u volledige toegang hebt tot de database, hebt u automatisch toegang tot de volledige inhoud van de database, dus ook tot alle postbussen.

De machtiging Verzenden als is gekoppeld aan de identiteit van een Active Directory-gebruikersobject, en niet aan de postbusgegevens die zijn opgeslagen in een database. De verzending van e-mailberichten is daarbij niet gebonden aan een bepaalde postbus of database, maar aan een specifieke gebruiker. Dit kan een gebruiker zijn met de account van de postbuseigenaar of een andere account die de machtiging Verzenden als heeft.

Ga als volgt te werk wanneer u een andere account expliciet wilt machtigen om berichten te verzenden als eigenaar van de postbus:
  1. Start de console Active Directory: gebruikers en computers.
  2. Klik op Geavanceerd in het menu Beeld. Als deze optie niet is geselecteerd, is de beveiligingspagina niet zichtbaar voor gebruikersaccountobjecten.
  3. Open de eigenschappen van de gebruikersaccount die eigenaar is van de postbus.
  4. Open het tabblad Beveiliging.
  5. Voeg de account waarvoor deze gebruiker de machtiging Verzenden als moet hebben toe aan de lijst met groepen en gebruikers (indien nodig).
  6. Klik in het vak Machtigingen op de machtiging 'Verzenden als' toestaan voor de betreffende account.
  7. Klik op OK.
  8. Start de service Microsoft Exchange Information Store opnieuw op de betreffende Exchange-server.
Opmerking Als u de service Microsoft Exchange Information Store niet opnieuw start, wordt de machtigingencache van de service bijgewerkt om ervoor te zorgen dat de nieuwe machtigingen worden geactiveerd op basis van de waarde die is ingesteld in de volgende registersubsleutel:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

Naam: Mailbox Cache Age Limit
Type: REG_DWORD
Grondtal: Decimaal
Gegevens: De limiet voor de ouderdom van de informatiecache voor de mailbox in minuten.

De standaardwaarde voor deze registervermelding is 120 minuten (twee uur). Als u deze registervermelding wijzigt, moet u de service Microsoft Exchange Information Store opnieuw starten.

Opmerking Als u zeer lage time-outwaarden instelt, kan dit invloed hebben op de prestaties van de server.

De machtiging Verzenden als toewijzen aan verschillende accounts

Aan het einde van dit artikel treft u een voorbeeldscript aan waarmee u op een Active Directory-domein kunt zoeken naar accounts die volledige toegang tot een postbus bieden, maar waarmee geen berichten als eigenaar van de postbus kunnen worden verzonden. Dergelijke machtigingen zijn kenmerkend voor de service- of resourceaccounts waarop deze beveiligingsupdate betrekking heeft. U kunt het script gebruiken om een exportbestand te genereren dat u vervolgens kunt doornemen, wijzigen en importeren om de machtiging Verzenden als te verlenen aan de accounts die daarvoor in aanmerking komen.

U kunt de machtiging Verzenden als ook door overname verlenen aan elk gebruikersobject in een Active Directory-domein of een container. Als u de machtiging op deze manier toewijst, loopt u mogelijk het risico dat deze ook aan onbedoelde objecten wordt verleend. Bovendien bestaat het risico dat er machtigingen verloren gaan wanneer u gemachtigde objecten uit de container verwijdert. Deze methode wordt derhalve niet aangeraden. Bedenk goed welke beveiligingsrisico's u loopt voordat u deze werkwijze toepast.

Ga als volgt te werk als u de machtiging Verzenden als wilt verlenen aan een afzonderlijke account voor alle gebruikersaccounts in een Active Directory-domein of een container:
  1. Start de console Active Directory: gebruikers en computers.
  2. Klik op Geavanceerd in het menu Beeld. Als deze optie niet is geselecteerd, is de beveiligingspagina niet zichtbaar voor domein- en containerobjecten.
  3. Open de eigenschappen van het domein of de container en klik op de beveiligingspagina.
  4. Klik op de knop Geavanceerd.
  5. Als de te machtigen account niet in de lijst staat, klikt u op Toevoegen en selecteert u de account. Dubbelklik anders op de account die u wilt bewerken.
  6. Klik op Gebruikersobjecten in de lijst Van toepassing op.
  7. Verleen de account de machtiging Verzenden als.
  8. Klik op OK totdat alle dialoogvensters gesloten zijn.
Opmerking In het script dat aan het einde van dit artikel wordt beschreven, wordt rekening gehouden met overgenomen machtigingen. Als u de machtiging Verzenden als met deze methode toekent, worden de accounts met de overgenomen machtiging Verzenden als dus onzichtbaar voor het script. Als u deze accounts later wilt verwerken met het script, moet u eerst de overgenomen machtiging Verzenden als verwijderen.

Speciale regels voor accounts met een adminSDHolder-beveiliging

Wanneer u het script uitvoert om de machtiging Verzenden als te verlenen, worden postbuseigenaars die tevens als domeinbeheerder fungeren, uitgesloten. Wij raden u met klem af om postbussen in te schakelen voor gebruikersaccounts die rechten als domeinbeheerder of adminSDHolder-beveiligingen hebben.

Het adminSDHolder-object is een sjabloon voor accounts die uitgebreide Active Directory-beheerdersrechten hebben. Om misbruik van de bevoegdheden te voorkomen, moeten alle accounts die met een adminSDHolder-object zijn beveiligd, dezelfde toegangsrechten hebben als het adminSDHolder-object.

Als u de rechten of machtigingen wijzigt van een account die via een adminSDHolder-object is beveiligd, wordt de wijziging direct automatisch ongedaan gemaakt. Stel dat u op een domeinbeheerdersobject de machtiging Verzenden als verleent aan een serviceaccount van een toepassing, dan wordt automatisch een achtergrondtaak uitgevoerd om deze machtiging in te trekken.

Het is daarom niet mogelijk om de machtiging te verlenen aan toepassingsserviceaccounts die zijn beveiligd door een adminSDHolder-object. In dat geval moet u het adminSDHolder-object zelf wijzigen. Als u het adminSDHolder-object zelf wijzigt, worden de toegangsrechten van alle beveiligde accounts dienovereenkomstig aangepast. Wijzig het adminSDHolder-object alleen nadat u hebt bekeken welke gevolgen dit heeft voor de beveiliging.

Ga als volgt te werk om een postbus te koppelen aan een account die wordt beveiligd door een adminSDHolder-object:
  1. Start de console Active Directory: gebruikers en computers.
  2. Klik op Geavanceerd in het menu Beeld. Als deze optie niet is geselecteerd, is de beveiligingspagina niet zichtbaar voor gebruikersaccountobjecten.
  3. Maak een gewone gebruikersaccount voor de eigenaar van de postbus.
  4. Wijs een postbus op een Exchange-server toe aan deze gewone gebruikersaccount.
  5. Open de eigenschappen van de nieuwe account voor de postbuseigenaar.
  6. Verleen in het vak Exchange Advanced de machtiging Volledige postbustoegang aan de beveiligde beheerdersaccount.
  7. Wijs op de beveiligingspagina de machtiging Verzenden als toe aan de beveiligde beheerdersaccount.
  8. Klik op OK om het eigenschappenvenster van het postbuseigenaarobject te sluiten.
  9. Klik met de rechtermuisknop op het object van de postbuseigenaaraccount en klik op Account uitschakelen om de account uit te schakelen voor elke aanmelding.
Voor meer informatie over met adminSDHolder beveiligde accounts klikt u op de volgende artikelnummers in de Microsoft Knowledge Base:

907434Het recht Verzenden als wordt verwijderd van een gebruikersobject nadat u het recht Verzenden als configureert in de module Active Directory: gebruikers en computers in Exchange Server

318180AdminSDHolder-thread heeft invloed op transitieve leden van distributiegroepen

817433Overgedragen machtigingen zijn niet beschikbaar en overname wordt automatisch uitgeschakeld

306398AdminSDHolder-object heeft invloed op de overdracht van besturing voor vorige Administrator-accounts

Speciale taken voor BlackBerry Enterprise Server

Taak 1: Controleer of de BlackBerry Enterprise Server wordt uitgevoerd als een afzonderlijke, unieke account

Controleer of de BlackBerry Enterprise Server wordt uitgevoerd als een afzonderlijke account die speciaal is ingesteld voor beheertaken. Deze account wordt standaard 'BESAdmin' genoemd.

Als u werkt met een afzonderlijke account voor het beheer van de BlackBerry Enterprise Server, gaat u verder met taak 2.

Als u niet werkt met een afzonderlijke account, maakt u de account in deze stap. Vervolgens gebruikt u deze account voor het uitvoeren van beheertaken. Raadpleeg voor het instellen van de account de instructies op een van de volgende BlackBerry-websites, afhankelijk van uw versie van BlackBerry Enterprise Server.

Als u werkt met BlackBerry Enterprise Server 4.0 of BlackBerry Enterprise Server 4.1, gaat u naar de volgende BlackBerry-website: Als u werkt met BlackBerry Enterprise Server 3.6, gaat u naar de volgende BlackBerry-website:

Taak 2: Controleer of de BlackBerry Enterprise Server-serviceaccount de juiste machtigingen heeft

Controleer of de BlackBerry Enterprise Server-serviceaccount de juiste machtigingen heeft.

Opmerking Als de account zich binnen een domein bevindt, controleert u of de account alleen lid is van de groep Domeingebruikers. Op een domeincontroller moet de account lid zijn van de ingebouwde groep Administrators.
  1. Voer de volgende stappen uit op de BlackBerry Enterprise Server:
    1. Controleer of de account lid is van de lokale groep Administrators.
    2. Wijs de machtigingen 'Lokaal aanmelden' en 'Aanmelden als service' toe aan de account.
  2. Ken Exchange View-Only Administrator-machtigingen toe op het niveau van de beheergroep. Ga hiervoor als volgt te werk:
    1. Klik in Exchange System Manager met de rechtermuisknop op de eerste Exchange Server-beheergroep en klik op Beheer overdragen.
    2. De BlackBerry Enterprise Server-serviceaccount wordt vermeld met de rol Exchange View-Only Administrator.
  3. Ken de machtigingen 'Verzenden als', 'Ontvangen als' en 'Administer Information Store' toe op het serverniveau van elke Exchange Server-server. Ga hiervoor als volgt te werk:
    1. Klik in Exchange System Manager met de rechtermuisknop op de eerste Exchange Server-beheergroep en vouw de groep Servers uit.
    2. Klik met de rechtermuisknop op een Exchange Server-server, klik op Eigenschappen en klik op Beveiliging.
    3. Selecteer de BlackBerry Enterprise Server-serviceaccount in het bovenste deelvenster. Controleer in het onderste deelvenster of de machtigingen 'Verzenden als', 'Ontvangen als' en 'Administer Information Store' zijn ingesteld op Toestaan.
    4. Herhaal stap 3b en 3c voor elke Exchange Server-server.
  4. Ken de machtigingen 'Verzenden als', 'Ontvangen als' en 'Administer Information Store' toe aan het postbusarchief. Ga hiervoor als volgt te werk:
    1. Klik in Exchange System Manager met de rechtermuisknop op de eerste Exchange-beheergroep en vouw de groep Servers uit.
    2. Vouw de eerste postbusarchiefgroep uit, klik met de rechtermuisknop op elk postbusarchief, klik op Eigenschappen en klik op Beveiliging.
    3. Selecteer de BlackBerry Enterprise Server-serviceaccount in het bovenste deelvenster. Controleer in het onderste deelvenster of de machtigingen 'Verzenden als', 'Ontvangen als' en 'Administer Information Store' zijn ingesteld op Toestaan.
    4. Herhaal stap 4b en 4c voor elk postbusarchief op elke Exchange Server-server.
  5. Ga als volgt te werk vanuit de module Active Directory: gebruikers en computers:
    1. Klik met de rechtermuisknop op de gebruiker voor wie u machtigingen wilt toevoegen en klik op Eigenschappen.
    2. Open het tabblad Beveiliging, voeg de BlackBerry Enterprise Server-serviceaccount toe en schakel het selectievakje Verzenden als in.
Als u niet werkt met Exchange Server 2003, gaat u naar taak 3.

Taak 3: Maak de cache op de BlackBerry Enterprise Server leeg

Voor het leegmaken van de machtigingencache in Information Store start u de services die betrekking hebben op Blackberry opnieuw en start u Microsoft Exchange Information Store opnieuw. Nadat u Information Store opnieuw hebt gestart, moet u de services die betrekking hebben op RIM Blackberry opnieuw starten om aan de “BESAdmin�-account de nieuwe toegevoegde machtiging Verzenden als te geven voor Exchange Information Store.

Ga voor meer informatie over specifieke Blackberry-serververeisten naar de volgende BlackBerry-website :

Meer informatie

De machtigingen voor de toegang tot Exchange-postbussen en -mappen zijn verdeeld over Active Directory- en Microsoft Exchange-databases. Hoewel beide soorten machtigingen worden ingesteld in de Active Directory-beheerconsole, worden ze op twee afzonderlijke locaties opgeslagen.

Machtigingen die worden ingesteld op de beveiligingspagina van een object, gelden in het algemeen als Active Directory-machtigingen. Machtigingen die worden ingesteld op de pagina met geavanceerde Exchange-postbusrechten, zijn meestal machtigingen in een Exchange-database. Wanneer u de postbusrechtenpagina probeert te openen terwijl de database van een gebruiker niet beschikbaar is, wordt daarom het volgende foutbericht weergegeven:
De Microsoft Information Store-service is niet beschikbaar.
De machtiging Associated External Account vormt een uitzondering op de regel dat machtigingen die worden ingesteld via de pagina met geavanceerde Exchange-postbusrechten worden opgeslagen in de Exchange-database. Associated External Account is eigenlijk helemaal geen machtiging, maar een manier om het Active Directory-kenmerk msExchMasterAccountSID in te stellen. Het kenmerk msExchMasterAccountSID is geen machtiging, maar bepaalt hoe andere machtigingen werken. Zie de sectie 'Bijbehorende externe accounts' voor meer informatie over het kenmerk msExchMasterAccountSID.

Opmerking Het Active Directory-kenmerk msExchMailboxSecurityDescriptor is een reservekopie van een subset van de feitelijke postbusrechten. Het wordt intern door Exchange gebruikt voor uiteenlopende doeleinden. Het kenmerk msExchMailboxSecurityDescriptor wordt automatisch bijgewerkt wanneer een beheerder de huidig toegewezen rechten wijzigt via een daartoe bestemde en ondersteunde interface.

Als de beheerder het kenmerk msExchMailboxSecurityDescriptor echter rechtstreeks bewerkt, worden de wijzigingen niet overgenomen in het Exchange-archief en worden de wijzigingen niet doorgevoerd. Er is dus geen garantie dat de wijzigingen daadwerkelijk worden gesynchroniseerd met de feitelijke postbusrechten. Gebruik het kenmerk msExchMailboxSecurityDescriptor niet voor het lezen of schrijven van postbusrechten.

Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:

310866Postbusrechten in Exchange Server 2003 en Exchange 2000 Server instellen voor een postbus die aanwezig is in het informatiearchief


De machtiging Volledige postbustoegang wordt in het Exchange-databasearchief opgeslagen. De machtiging Verzenden als wordt opgeslagen in Active Directory. Voordat het bestand Store.exe van Exchange werd gewijzigd (zie eerder in dit artikel), werd de machtiging Verzenden als niet gecontroleerd als de afzender tevens over de machtiging Volledige postbustoegang beschikte.

Opmerking U kunt de machtiging Verzenden als toekennen zonder de machtiging Volledige postbustoegang te verlenen. In deze situaties werd door Exchange altijd de machtiging Verzenden als gecontroleerd.

Het toewijzen van de machtiging Verzenden als met de machtiging Volledige postbustoegang betekent dat beheerders van Exchange-servers zichzelf eenvoudig machtigingen kunnen verlenen om vanuit elke beheerde postbus berichten te verzenden namens anderen. Beheerders hebben namelijk het volledige beheer over een Exchange-database. Door Verzenden als los te koppelen van Volledige postbustoegang, kunnen Active Directory-beheerders dit nu voorkomen. De machtiging Verzenden als is nu immers een Active Directory-machtiging en wordt niet meer opgeslagen in het Exchange-archief. Het proces wordt daarom niet meer per se door Exchange-beheerders bestuurd.

Postbuseigenaren

Een postbuseigenaar is de Active Directory-gebruikersaccount waarvan het kenmerk msExchMailboxGUID verwijst naar de GUID (Globally Unique Identifier) van een bepaalde postbus. De unieke GUID van een bepaalde postbus mag binnen een forest slechts voor één account worden gebruikt. Er verschijnt een foutbericht wanneer u een tweede eigenaar met dezelfde GUID probeert in te stellen.

Wanneer u een postbus inschakelt voor een account of een losgekoppelde postbus wilt verbinden aan een Active Directory-account, wordt de GUID van die postbus automatisch op die account ingesteld. U hoeft de GUID van een postbus slechts zelden direct in te stellen en over het algemeen wordt dit dan ook afgeraden.

Bijbehorende externe accounts

Exchange wordt doorgaans geïnstalleerd en geconfigureerd in een forest met bronnen. Een forest met bronnen is een forest dat tot een ander forest behoort dan de gebruikersaccounts waaraan de postbussen van het systeem worden toegewezen. Dit levert een probleem op bij de instelling van het kenmerk msExchMailboxGUID. Dit kenmerk kan namelijk uitsluitend worden ingesteld voor objecten in hetzelfde forest als de Exchange-server.

U omzeilt dit probleem door een postbus in te schakelen voor een account in het Exchange-serverforest en deze account te koppelen aan een andere account in een ander forest of in een Microsoft Windows NT 4-domein. U kunt dit doen door de machtiging Associated External Account te verlenen. U kunt deze machtiging slechts aan één account verlenen. De betreffende account moet tot een ander forest behoren.

Wanneer u de machtiging Associated External Account instelt, wordt de SID-waarde van de externe account toegewezen aan het kenmerk msExchMasterAccountSID van de postbuseigenaar. Het is dus in feite geen machtiging maar een handige manier om de waarde van het kenmerk msExchMasterAccountSID te bepalen. Nadat u het kenmerk msExchMasterAccountSID hebt ingesteld, heeft de externe account met de betreffende SID dezelfde toegangsrechten tot Exchange als een echte account voor postbuseigenaars.

Dit geldt overigens alleen voor de toegang tot Exchange, en niet voor de volledige Active Directory-toegang. Wanneer u de machtiging Associated External Account hebt ingesteld, moet u de account van de postbuseigenaar uitschakelen voor aanmeldingen zodat alle machtigingen ook volgens verwachting werken.

300456Machtigingen en rechten op clients blijven niet behouden nadat ze zijn toegewezen in Exchange 2000

Overdrachtsscenario's

Een gemachtigde is een gebruiker die gedeeltelijk toegang heeft tot andermans postbus en bevoegd is om berichten te versturen namens de postbuseigenaar. In een overdrachtsscenario kan bijvoorbeeld een administratief medewerker worden gemachtigd om toegang te krijgen tot de agenda van een leidinggevende. Doorgaans krijgt de gemachtigde daarbij lees- en schrijftoegang tot de agenda. Verder kan de gemachtigde in staat worden gesteld om namens de leidinggevende e-mailberichten te beantwoorden.

Deze gemachtigde toegang wordt verleend door de gemachtigde toe te voegen aan het meerwaardige kenmerk publicDelegates van de postbuseigenaar. Alle gebruikers die aan dit kenmerk worden toegewezen, krijgen de machtiging Verzenden namens voor de postbuseigenaar. Wanneer een gemachtigde een bericht verstuurt met de naam van de eigenaar in het vak Van, bevat het vak Van de volgende waarde:

<Naam van gemachtigde> namens <Postbuseigenaar>

Het bericht wordt verzonden door de gemachtigde en niet door of in de hoedanigheid van de postbuseigenaar.

Hieronder ziet u in welke twee interfaces u de machtiging Verzenden namens kunt verlenen en andere rechten kunt overdragen:
  • Gebruik in het postbuseigenaarobject het dialoogvenster Exchange General om de machtiging Verzenden namens te verlenen.
  • Gebruik in Microsoft Outlook het dialoogvenster Gemachtigden.
Met beide methoden wordt het kenmerk publicDelegates ingesteld. In Outlook kunt u echter ook nog speciale machtigingen voor mappen verlenen aan de gemachtigde. U kunt deze machtigingen ook rechtstreeks aan de gemachtigde verlenen via de eigenschappen van een bepaalde map in Outlook.

In sommige gevallen kan het kenmerk publicDelegates niet in Outlook worden ingesteld.

329622Machtiging 'Verzenden namens' is niet toegekend aan een gebruiker na delegeren van toegang in Outlook


Een gemachtigde die toegang heeft gekregen tot uw postbus, kan de machtiging Verzenden namens ook gebruiken zonder dat u toegang tot een van de postbusmappen hebt verleend. Verzenden namens vormt de basismachtiging van een gemachtigde. De machtigingen voor uw postbusmappen moeten afzonderlijk worden toegewezen aan de gemachtigde.

Een gemachtigde zal de mappen waartoe hij of zij toegang heeft, doorgaans openen in Microsoft Outlook. Dit kan door te klikken op Openen in het menu Bestand van Outlook en vervolgens te klikken op Map van andere gebruiker.

Een gemachtigde kan uw postbus ook openen door deze als extra postbus in te stellen op het tabblad Geavanceerd van zijn of haar Outlook-profiel. Op deze manier wordt uw postbus weergegeven in de Outlook-mappenstructuur van de gemachtigde. Bovendien heeft de gemachtigde zo toegang tot alle postbusmappen waarvoor hij of zij is gemachtigd.

Mogelijk wilt u dat een gemachtigde in sommige gevallen de machtiging Verzenden namens heeft en in andere gevallen de machtiging Verzenden als. Ga als volgt te werk om een gemachtigde deze twee machtigingen te verlenen:
  • Verleen de gemachtigde de machtiging Volledige postbustoegang. Dit is niet mogelijk via Outlook. Een beheerder van Active Directory moet dit doen door de account van de postbuseigenaar te wijzigen. De machtiging Volledige postbustoegang is iets anders dan een eigenaarsmachtiging voor elke map in uw postbus.
  • Verleen de gemachtigde niet de machtiging Verzenden als. Anders worden alle berichten van de gemachtigde met deze machtiging verzonden en lijkt het alsof ze door de postbuseigenaar zelf zijn verstuurd en is de machtiging Verzenden namens niet meer beschikbaar voor de gemachtigde.
In dit scenario moeten gemachtigden zich bij hun eigen postbus aanmelden om de machtiging Verzenden namens te kunnen gebruiken. Wanneer de gemachtigden een bericht uit een van uw mappen beantwoorden of doorsturen, wordt dit automatisch namens u verzonden. Als ze een nieuw bericht maken namens u, moeten ze uw naam invoeren in het vak Van om het namens u te kunnen verzenden.

Alle berichten uit uw mappen of secundair geopende postbus worden automatisch met deze machtiging verzonden, zolang er in het huidige Outlook-profiel van de gemachtigde maar een eigen primaire postbus is ingesteld.

Wanneer een gemachtigde berichten wil verzenden alsof u ze zelf hebt gestuurd, moeten ze zich bij uw postbus aanmelden met een afzonderlijk Outlook-profiel waarmee uitsluitend uw postbus kan worden geopend. Alle berichten die de gemachtigden met dit profiel verzenden, zijn automatisch afkomstig van u.

Accounts zoeken die wel een machtiging Volledige postbustoegang hebben maar geen machtiging Verzenden als

Met het onderstaande voorbeeldscript kunt u per Active Directory-domein zoeken naar gebruikersaccounts waarbij de machtiging Volledige postbustoegang is verleend zonder de machtiging Verzenden als.

Belangrijk Raadpleeg de sectie Postbuseigenaren met gemachtigden voordat u machtigingen wijzigt.

Het script heeft de volgende drie werkmodi:
  • Exporteren: u kunt een lijst met gebruikers exporteren die volledige toegang tot een postbus hebben, maar niet in andermans hoedanigheid kunnen verzenden. U kunt deze lijst vervolgens bekijken in Kladblok of een andere teksteditor en de accounts die niet in aanmerking komen voor de machtiging Verzenden als, uit de lijst verwijderen.
  • Importeren: u kunt een lijst met gebruikers importeren die volledige toegang tot een postbus hebben en die tevens de machtiging Verzenden als moeten krijgen. U kunt dit script niet gebruiken om zowel de machtiging Volledige postbustoegang als de machtiging Verzenden als te verlenen. Elke account moet al over de machtiging Volledige postbustoegang beschikken om in aanmerking te kunnen komen voor de machtiging Verzenden als.
  • SetAll: u kunt de machtiging Verzenden als verlenen aan alle gebruikers in het domein die al volledige toegang hebben tot een bepaalde postbus. Er wordt een logboekbestand gegenereerd met dezelfde indeling als het exportbestand. In deze werkmodus worden de export- en importmodus gezamenlijk uitgevoerd zonder dat het exportbestand kan worden bewerkt.
Opmerking Dit script kent geen herstelfunctie.

Vereiste machtigingen voor het script

U kunt het script alleen uitvoeren als u zich hebt aangemeld met een beheerdersaccount die behoort tot hetzelfde forest als de postbuseigenaarsaccounts. Het script werkt mogelijk niet met een account met beheerdersrechten voor verschillende forests. Daarnaast functioneert het script mogelijk niet als u het uitvoert vanaf een werkstation dat lid is van een ander forest dan het forest waarvan de postbuseigenaarsaccounts deel uitmaken.

Gezien deze beperkingen kunt u het script beter met verschillende beheerdersaccounts uitvoeren in één aanmeldingssessie door de opdracht RunAs.exe te gebruiken. Deze procedure kan handig zijn als de machtigingen voor Active Directory en Exchange Server verdeeld zijn over verschillende segmenten en er geen centrale account is voor het beheren van alle Exchange-servers of alle Active Directory-domeinen. U kunt een opdrachtprompt openen om het script voor elke beheerdersaccount uit te voeren. Neem het volgende voorbeeld:

RunAs.exe /user:domain\account CMD.EXE

Opmerking Het is niet toegestaan diverse instanties van het script tegelijkertijd uit te voeren voor hetzelfde domein.

Het exportbestand bevat de volgende velden. De velden worden beschreven in de volgorde waarin ze in het exportbestand voorkomen.
  • Display name of the mailbox owner account

    Het uitvoerbestand bevat mogelijk meer dan één regel met dezelfde postbuseigenaar. Deze extra regels ontstaan als er verschillende accounts zijn met volledige toegang tot dezelfde postbus.
  • Domain and logon name of an account that has the Full Mailbox Access permissions but not the Send As permission

    Wanneer een account toegang heeft tot meerdere postbussen, wordt deze mogelijk verschillende malen opgenomen in het exportbestand. Dit kan bijvoorbeeld gebeuren bij serviceaccounts voor toepassingen of wanneer iemand postbussen voor verschillende resources beheert.
  • Display Name of an account that has the Full Mailbox Access permission but not the Send As permission

    Dit veld maakt samen met het veld Logon Name een eenvoudige identificatie van de account mogelijk.
  • Delegate Status of the mailbox owner

    Als de postbuseigenaar gemachtigden heeft, bevat dit veld de waarde Has Delegates. Als de postbuseigenaar geen gemachtigden heeft, bevat dit veld de waarde No Delegates.
  • Enabled or disabled status of the mailbox owner account

    Met dit veld kunt u postbusaccounts van resources of voor verschillende forests identificeren. Dergelijke accounts zijn meestal uitgeschakeld.
  • Full Distinguished Name of the mailbox owner account

    Met dit veld kunt u het domein en de container van de account van de postbuseigenaar identificeren.
  • Full Distinguished Name of the mailbox owner’s mailbox database

    Dit veld bevat de database, archiefgroep, server en beheergroep van de postbus.
In het volgende voorbeeld heeft de gebruiker met de aanmeldingsnaam 'NoSendAs' volledige toegang tot de postbus 'Mailbox Owner', maar geen bevoegdheid om berichten te verzenden als postbuseigenaar:

"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [overige velden zijn weggelaten]

Werkstation voor beheer configureren voor het script

In dit script worden Exchange-beheerinterfaces gebruikt voor de communicatie met Exchange-servers. Daarom moet u het script uitvoeren vanaf een Exchange-server of vanaf een werkstation waarop Exchange-systeembeheer mogelijk is.

Het exportbestand bewerken

Het exportbestand heeft een Unicode-tekstindeling zonder opmaak zodat het kan worden weergegeven in de tekensets voor verschillende talen. Mogelijk kan het bestand in sommige teksteditors niet goed worden weergegeven of bewerkt, of wordt het in een ANSI- of ASCII-indeling opgeslagen. In de Kladblok-versie van Microsoft Windows XP, Microsoft Windows 2000 en Microsoft Windows 2003 worden alle Unicode-tekstbestanden juist verwerkt. Ook in Microsoft Excel worden Unicode-tekstbestanden juist weergegeven en bewerkt.

Het uitvoerbestand heeft een indeling met tabs als scheidingstekens waarbij de verschillende veldwaarden tussen driedubbele aanhalingstekens worden geplaatst. Met deze driedubbele aanhalingstekens kunnen de import- en exportbewerkingen in Excel op een deterministische manier worden uitgevoerd. De driedubbele aanhalingstekens worden in Excel zelf als enkele aanhalingstekens weergeven, en weer omgezet naar hun driedubbele vorm zodra u het bestand als Unicode-tekst opslaat. Hieronder wordt beschreven hoe u een exportbestand in Excel kunt openen en opslaan.

U kunt een exportbestand ook zonder Excel filteren, namelijk met de hulpprogramma's Find.exe of Findstr.exe. Deze hulpprogramma's worden met Windows meegeleverd. Met deze programma's kunt u woorden in een bestand zoeken en alleen de regels retourneren die deze woorden bevatten of juist niet bevatten. Als u bijvoorbeeld een lijst wilt maken van alle postbuseigenaren in het bestand die gemachtigden hebben, gebruikt u een van deze opdrachten om een bestand te maken dat alleen regels bevat die de tekenreeks “Has Delegates� bevat:

Find.exe “Has Delegates� OriginalFile.txt > HasDelegates.txt

Findstr.exe /C:�Has Delegates� OriginalFile.txt > HasDelegates.txt

Een ander voorbeeld is dat u alle postbuseigenaren wegfiltert die een of meer gemachtigden hebben. De schakeloptie /V zorgt ervoor dat alleen de regels zonder de zoekwoorden worden geselecteerd. U kunt de volgende opdrachten gebruiken om een bestand te genereren met alle regels waarop niet de tekenreeks “Has Delegates� voorkomt:

Find.exe “No Delegates� OriginalFile.txt > NoDelegates.txt

Find.exe /V “Has Delegates� OriginalFile.txt > NoDelegates.txt

Findstr.exe /C:�No Delegates� OriginalFile.txt > NoDelegates.txt

Findstr.exe /V /C:�Has Delegates� OriginalFile.txt > NoDelegates.txt

Met deze opdrachten kunt u een bestand genereren dat alle accounts bevat waarbij de account van een toepassingsserver wel de machtiging Volledige postbustoegang, maar niet de machtiging Verzenden als heeft. Met de schakeloptie /I maakt de opdracht onderscheid tussen hoofdletters en kleine letters:

Find.exe /I “domain\ServiceAccount� OriginalFile.txt > ServiceAccount.txt

Findstr.exe /I /C:�domain\ServiceAccount� OriginalFile.txt > ServiceAccount.txt

Opmerking Als u Find.exe gebruikt om een gefilterd bestand te genereren, moet u de koptekstregels verwijderen die door Find.exe worden toegevoegd aan het begin van het bestand.

Gebruik geen jokertekens (*.*) bij Findstr.exe. Als u dat wel doet, wordt elke regel in het uitvoerbestand voorafgegaan door de bestandsnaam. Controleer het uitvoerbestand van Find.exe of Findstr.exe zorgvuldig om er zeker van te zijn dat u met het filter de gewenste accounts hebt geselecteerd of uitgesloten.

In het volgende voorbeeld heeft de gebruiker met de aanmeldingsnaam 'NoSendAs' volledige toegang tot de postbus 'Mailbox Owner', maar geen bevoegdheid om berichten te verzenden als postbuseigenaar.
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [overige velden zijn weggelaten]

Postbuseigenaren met gemachtigden

Het is meestal niet verstandig een gemachtigde met volledige postbustoegang (ook wel een 'supergemachtigde' genoemd) de machtiging Verzenden als te verlenen. Wanneer de supergemachtigde zich rechtstreeks aanmeldt bij de postbus van de postbuseigenaar, kan de gemachtigde verzenden als de postbuseigenaar. Wanneer de gemachtigde de overdrachtsfuncties van Outlook gebruikt (Additional Mailboxes to Open en Map van andere gebruiker openen), worden berichten verzonden namens de postbuseigenaar en niet als de eigenaar.

Verleen de machtiging Verzenden als alleen aan een supergemachtigde als deze altijd als de postbuseigenaar en nooit namens de postbuseigenaar berichten mag verzenden. Het is raadzaam in het exportbestand te zoeken naar de tekst 'Has Delegates' en vervolgens vast te stellen of een genoemde supergemachtigde in werkelijkheid een gemachtigde van de postbuseigenaar is.

Het exportbestand bevat alleen supergemachtigden. Gewone gemachtigden beschikken niet over de machtiging Volledige postbustoegang. Bovendien is het zo dat berichten van een gewone gemachtigde met de machtiging Verzenden als altijd als de postbuseigenaar worden verzonden. Dit is zelfs zo wanneer de gewone gemachtigde geen volledige postbustoegang heeft. Als u de machtiging Verzenden als toewijst aan een gemachtigde terwijl dit niet de bedoeling is, kunt u de machtiging later weer intrekken.

Een exportbestand openen in Excel

  1. Zorg dat Excel is gestart.
  2. Kies het bestandstype Tekstbestand om het bestand in Excel te openen. Hiermee start u de wizard Tekst importeren.
  3. Wijzig of accepteer de volgende instellingen in de wizard Tekst importeren:
    • Oorspronkelijk gegevenstype: Gescheiden
    • Importeren starten bij rij: 1
    • Oorspronkelijk bestand: Unicode (UTF-8)
    • Scheidingstekens: Alleen tab
    • Dubbele scheidingstekens als één beschouwen: niet gemarkeerd
    • Tekstscheidingsteken " (dubbele aanhalingstekens)

Een gewijzigd exportbestand opslaan in Excel

  1. Klik op Opslaan als in het exportbestand.
  2. Geef het bestand een andere naam zodat u een kopie van het oorspronkelijke bestand achter de hand hebt.
  3. Klik op Bestand, Opslaan als, typ de naam van het uitvoerbestand en selecteer Unicodetekst in de vervolgkeuzelijst Opslaan als.

Syntaxis van het script

U moet dit tekstmodusscript uitvoeren in een opdrachtpromptvenster en niet vanuit het dialoogvenster Uitvoeren. Klik op Start, klik op Uitvoeren, typ cmd in het dialoogvenster Openen en klik op OK om het opdrachtpromptvenster te openen.

De foutenlogboeken en exportbestanden worden opgeslagen in de huidige directory van de opdrachtprompt. U moet de juiste rechten hebben om bestanden in deze directory te kunnen maken.
Voer de volgende opdracht in als u hulp nodig hebt voor de opdrachtregel:


CSCRIPT AddSendAs.vbs

Voer de volgende opdracht in om een exportbestand te maken met de gebruikers van een bepaald domein die wel een machtiging Volledige postbustoegang hebben maar geen machtiging Verzenden als:


CSCRIPT AddSendAs.vbs [naam van domeincontroller] —ExportVoorbeeld:CSCRIPT AddSendAs.vbs CORP-DC-1 —Export

Het gegenereerde exportbestand wordt opgeslagen onder de naam "Send_As_Export_H_MM_SS.txt".
Voer de volgende opdracht in om een gewijzigd exportbestand te importeren:


CSCRIPT AddSendAs.vbs [naam van domeincontroller] —Import [bestandsnaam]
Voorbeeld:
CSCRIPT AddSendAs.vbs CORP-DC-1 —Import "Send_As_Export_H_MM_SS.txt"

De machtiging Verzenden als per postbus in het domein verlenen aan alle gebruikers die al volledige toegang hebben tot een postbus

Opmerking Gebruik de modus SetAll niet als er in de organisatie gemachtigden zijn die tevens de machtiging Volledige postbustoegang hebben. Als u in dat geval SetAll gebruikt, krijgen deze gemachtigden de machtiging Verzenden als. Hierdoor zouden zij hun berichten in de hoedanigheid van de postbuseigenaar kunnen verzenden en niet meer namens deze persoon. U lost dit probleem op door de onbedoeld verleende machtiging Verzenden als weer in te trekken.


CSCRIPT AddSendAs.vbs [naam van domeincontroller] —SetAll
Voorbeeld:
CSCRIPT AddSendAs.vbs CORP-DC-1 —SetAll

In de modus SetAll wordt het exportbestand Send_As_Export_H_MM_SS.txt gegenereerd. Dit bestand bevat een overzicht van alle gewijzigde accounts. Sla dit bestand daarom op. Als u het script opnieuw zou uitvoeren, krijgt u een ander uitvoerresultaat waarin de accounts die eerder de machtiging Verzenden als hebben gekregen, niet meer zijn opgenomen.

De fouten die optreden tijdens de uitvoering van het script worden opgeslagen in het bestand Send_As_Errors_H_MM_SS.txt. De naam van het foutenlogboek bevat hetzelfde tijdstempel uren_minuten_seconden als het bijbehorende exportbestand.

Scriptaanpassingen

Uw organisatie kan accounts hebben die machtigingen voor veel objecten hebben en waarvan u de machtigingen niet wilt wijzigen. Om de grootte van het exportbestand toch te beperken, kunt u deze accounts filteren door de variabele FMA_EXCLUSIVE_LIST aan het begin van het script aan te passen. Deze variabele bevat standaard enkele accounts die worden onderdrukt in de uitvoer van het script. Gebruik de volgende syntaxis om extra accounts toe te voegen:
& "<Domain\Name>" & OUTPUT_DELIMITER
U kunt bijvoorbeeld de waarde van de volgende variabele zo veranderen:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
dat deze als volgt wordt weergegeven:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Mijndomein\Service1" & OUTPUT DELIMITER
Deze aanpassing onderdrukt de vermelding van de account Mijndomein\Service1 in het exportbestand, evenals die van NT AUTHORITY\SELF en NT AUTHORITY\SYSTEM. De waarde voor Domein\Naam is hoofdlettergevoelig en moet exact overeenkomen met de waarde zoals die voorkomt of zou voorkomen in het exportbestand.

Het script bevat nog een variabele die u kunt aanpassen, namelijk FMA_EXCLUSIVE_EXSVC. Deze variabele heeft standaard de waarde '\Exchange Services' & OUTPUT_DELIMITER. 'Exchange Services' is de naam van een account waaraan machtigingen worden toegekend via ADC (Active Directory Connector) in Exchange 5.5 en scenario's voor coëxistentie en migratie van Exchange 2000. Deze account wordt in verschillende domeinen gemaakt en kan herhaaldelijk voorkomen in het exportbestand als u de account niet onderdrukt.

U kunt voor de variabele FMA_EXCLUSIVE_EXSVC maar één account opgeven als waarde. De accountnaam is niet hoofdlettergevoelig. De accountnaam moet beginnen met een backslash (\) en mag niet het domein bevatten waarvan de account deel uitmaakt. De account wordt onderdrukt voor alle domeinen waarin de account aanwezig is.

Als u migratieprogramma's of methoden voor adreslijstsynchronisatie van andere leveranciers hebt gebruikt, kan er in diverse domeinen nog een andere account aanwezig zijn die uitgebreide machtigingen heeft voor de postbussen van gebruikers. In dat geval kunt u de naam van die account gebruiken in plaats van '\Exchange Services'.

Tips en opmerkingen

  • Verwijder niet de door het script gegenereerde log- en foutenbestanden. Deze bestanden bevatten mogelijk belangrijke informatie waarmee u achteraf problemen kunt oplossen of wijzigingen kunt herstellen. Accounts waaraan u de machtiging Verzenden als hebt verleend, worden namelijk niet meer opgehaald wanneer u een nieuw exportbestand maakt.
  • De verwerkingstijd van het script zal toenemen wanneer een Exchange-server of -database is uitgeschakeld. In dat geval kunt u het exportbestand per database sorteren en de regels van een uitgeschakelde database verplaatsen naar een ander bestand dat u later importeert.
  • Accounts waarvan de aanmeldingsnaam eindigt op "$" of die de naam NT AUTHORITY\SYSTEM hebben, worden niet opgenomen in het uitvoerbestand. Voor deze systeemaccounts is de machtiging Verzenden als meestal niet nodig. Door ze uit te sluiten blijft het exportbestand overzichtelijk.
  • Het exportbestand kan alleen in een Unicode-indeling worden geïmporteerd. Als u het bestand per ongeluk als een ANSI-tekstbestand hebt opgeslagen, opent u dit bestand in Kladblok en slaat u het op als Unicodetekst.
  • Als de importbewerking mislukt, probeert u het probleem op te lossen door het script uit te voeren voor testaccounts en een importbestand met één regel te maken. Maak een testaccount voor een postbus op een Exchange-server en geef een andere testaccount de machtiging Volledige postbustoegang (en dus niet de machtiging Verzenden als).
  • Het script beschikt niet over een herstelmodus. De machtigingen Verzenden als die u met dit script hebt verleend, kunt u alleen handmatig intrekken of verwijderen met een ander daartoe bestemd script. Er is geen herstelmodus toegevoegd om te voorkomen dat het script wordt gebruikt om de machtiging Verzenden als te verwijderen voor alle gebruikers in een organisatie.
  • Het script kan niet goed overweg met accounts die naast de machtiging Volledige postbustoegang, de machtiging Volledig beheer hebben voor een gebruikersobject. De machtiging Volledig beheer betekent dat de account ook de machtiging Verzenden als heeft, maar het script exporteert de account alsof dat niet het geval is. Hierdoor kan de grootte van het exportbestand toenemen, maar het kan geen kwaad het bestand te importeren en de machtiging Verzenden als toch toe te kennen aan dergelijke accounts.
  • Active Directory-gebruikersaccounts die DN-namen hebben en tabs of een oneven aantal dubbele aanhalingstekens bevatten, kunnen niet door dit script worden verwerkt. Het script kan wel goed overweg met namen die een even aantal dubbele aanhalingstekens bevatten, zoals in het volgende voorbeeld:

    “CN=First “Nickname� Last,DC=domain,DC=com�

  • Excel ondersteunt bestanden met maximaal 65.535 regels. Als uw uitvoerbestand groter is, moet u het bestand opsplitsen voordat u het opent in Excel.
  • Het bestand Send_As_Errors bevat accounts waarvoor het niet gelukt is machtigingen te lezen of weg te schrijven. Als andere accounts in het domein zonder problemen zijn verwerkt, hebben de accounts in dit bestand mogelijk iets gemeenschappelijks waardoor het script ze niet kan verwerken. Veelvoorkomende problemen zijn onder andere:
    • Geen beheerdersrechten voor het bekijken of instellen van eigenschappen voor de accounts.
    • Het postbusarchief van Exchange is niet actief.
    • Het werkstation is geen lid van hetzelfde domein.
    • De gebruikte administratieve account is niet afkomstig uit hetzelfde forest.
U kunt dit script uitvoeren door alle regels tussen BEGIN SCRIPT en EINDE SCRIPT te kopiëren naar een gewone teksteditor, zoals Kladblok. Sla het script op als AddSendAs.vbs. BEGIN SCRIPT
Option Explicit
Dim OUTPUT_DELIMITEROUTPUT_DELIMITER = """""""" & vbTab & """"""""
'Lijst voor uitsluiten definiëren, als FMA is ingesteld op een gebruiker in deze lijst wordt de gebruiker genegeerd. Als u 'deze lijst wilt wijzigen, gebruik dan dezelfde syntaxis. Elke alias moet'worden voorafgegaan door een OUTPUT_DELIMITER en worden gevolgd doorDim 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
'Soort machtiging: Toestaan of Weigerenconst ACCESS_ALLOWED_OBJECT_ACE_TYPE = 5const ADS_ACETYPE_ACCESS_ALLOWED = &h0const ADS_ACETYPE_ACCESS_DENIED = &h1
'Vlaggen: Instelling van de overnameconst 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
'ADSI-constanten declarerenConst ADS_OPTION_SECURITY_MASK = 3Const ADS_OPTION_REFERRALS = 1Const ADS_SECURITY_INFO_DACL = 4Const ADS_CHASE_REFERRALS_NEVER = &h00Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20Const ADS_CHASE_REFERRALS_EXTERNAL = &h40
'naam uitvoerbestandConst EXPORT_FILE = "Send_As_Export"Const ERROR_FILE = "Send_As_Errors"
' scriptmodusconst MODE_INVALID = -1 const MODE_SETALL = 0const MODE_EXPORT = 1const MODE_IMPORT = 2const SETALL = "-SETALL"const EXPORT = "-EXPORT"const IMPORT = "-IMPORT"
' argumentindexConst ARG_INDEX_MODE = 1Const ARG_INDEX_DC = 0Const ARG_INDEX_FILENAME = 2
' kolomindex in import-/exportbestandConst 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 = 6
Const 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 = 2
Dim objUserDim objSDMailBoxDim objSDNTsecurityDim objDACLNTSDDim objNewACE
Dim 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 fFMAAllowed
On Error Resume NextdArraySize = INIT_ARRAY_SIZEReDim Preserve sTrusteeAlias(dArraySize)
dArgCount = Wscript.Arguments.Count If ( dArgCount < MIN_ARG ) Then DisplaySyntaxEnd If
err.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 If
sDCServer = WScript.Arguments(ARG_INDEX_DC)
CreateOutputFiles
If ( cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT ) Then Dim sDomainContainer If (cScriptMode = MODE_SETALL) Then Dim strInput WScript.StdOut.WriteLine("WAARSCHUWING: als u verdergaat, krijgt elke account in het domein die de") WScript.StdOut.WriteLine("machtiging Volledige postbustoegang heeft voor een postbus ook de") WScript.StdOut.WriteLine("machtiging Verzenden als.") WScript.StdOut.WriteLine() WScript.StdOut.WriteLine("U kunt de lijst met postbussen bekijken voordat u Verzenden als toekent") WScript.StdOut.WriteLine("door deze bewerking te annuleren en de modus -Export van dit script te gebruiken.") WScript.StdOut.WriteLine() WScript.StdOut.Write("Druk op J om door te gaan of op een andere toets om te annuleren: ") strInput = WScript.StdIn.ReadLine() If (UCase(strInput) <> UCase("J")) Then WScript.Quit End If End If WScript.StdOut.WriteLine() WScript.StdOut.WriteLine("""!"" geeft een fout aan tijdens de verwerking van een object.") WScript.StdOut.WriteLine(" Controle van " & sErrorsFilename) WScript.StdOut.WriteLine("Wordt gestart...") WScript.StdOut.WriteLine()
err.Clear Set rootDSE = GetObject("LDAP://" & sDCServer & "/RootDSE") sDomainContainer = rootDSE.Get("defaultNamingContext") WScript.StdOut.WriteLine("Zoeken van domeincontroller [ " & sDCServer & " ] voor domein [ " & sDomainContainer & " ]") If (err.number <> 0) Then WScript.StdOut.WriteLine("Het domein of de domeincontroller is niet gevonden, fout:" & err.Description) objfileError.WriteLine("Het domein of de domeincontroller is niet gevonden, fout:" & 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("Geen binding met Active Directory-server, fout:" & err.Description) objfileError.WriteLine("Geen binding met Active Directory-server, fout:" & err.Description) WScript.Quit End If
Set objCommand.ActiveConnection = conn WScript.StdOut.WriteLine("Zoeken naar gebruikersaccounts van postbuseigenaren 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("Geen postbuseigenaren gevonden, fout:" & err.Description) objfileError.WriteLine("Geen postbuseigenaren gevonden, fout:" & err.Description) WScript.Quit End If
If (rsUsers.RecordCount = 0) Then WScript.StdOut.WriteLine("Geen gebruikersaccounts van postbuseigenaren gevonden in " & sDomainContainer & ".") objfileError.WriteLine("Geen gebruikersaccounts van postbuseigenaren gevonden 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 'Postbusobjecten in Microsoft Exchange System Objects-container overslaan 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("Kan gebruikersobject niet ophalen: " & rsUsers.Fields(0).Value) objfileError.WriteLine("Fout: " & err.Description) fError = True fOneError = True err.Clear End If Set objSDMailBox = objUser.MailboxRights If (err.number <> 0) Then objfileError.WriteLine("Ophalen van postbusrechten mislukt: " & rsUsers.Fields(0).Value) objfileError.WriteLine("Fout: " & err.Description) fError = True fOneError = True err.Clear End If Set objSDNTsecurity = objUser.ntSecurityDescriptor If (err.number <> 0) Then objfileError.WriteLine("Ophalen van NTSD mislukt: " & rsUsers.Fields(0).Value) objfileError.WriteLine("Fout: " & 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 uitvoeren op de lijst publicDelegates van deze gebruiker err.Clear msPublicDelegates = objUser.Get("publicDelegates") If (err.number <> 0) Then 'Er is geen lijst publicDelegates ingesteld voor deze gebruiker sIfPublicDelegate = STRNO err.Clear Else sIfPublicDelegate = STRYES End If err.Clear FindAllFMAUsers objSDMailBox If (TotalACE > dArraySize) Then 'Toewijzing van groter bereik vereist dArraySize = TotalACE + 1 ReDim Preserve sTrusteeAlias(dArraySize) FindAllFMAUsers objSDMailBox End If If (err.number <> 0) Then objfileError.WriteLine("Kan postbusrechten van gebruiker niet opzoeken: " & rsUsers.Fields(0).Value) objfileError.WriteLine("Fout: " & 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 'Controleren of Send As ACE al is opgenomen in NT-beveiligingsdescriptor 'Indien waar, dan toestaan of weigeren en hoeft Verzenden als niet meer worden toegevoegd CheckSendAsACE objDACLNTSD, sTrusteeAlias(i) 'Opmerking: Vermeldingen voor weigeren hebben voorrang op die voor toestaan. 'Overslaan bij Deny ACE voor volledige postbustoegang, ook als er een Allow ACE bestaat 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 'Vertrouwde gebruikers met volledige postbustoegang doorzoeken om displayName op te halen 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("zoekbereik") = ADS_SCOPE_SUBTREE objCmdDisplayName.Properties("Paginagrootte") = 100 objCmdDisplayName.Properties("Time-out") = 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 'Kan weergavenaam van gebruiker niet opzoeken, gebruik alias sFMAUserDisplayName = sAlias Else sFMAUserDisplayName = objTrustee.displayName End If 'uitvoer naar exportbestand 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("Gebruiker " & rsUsers.Fields(0).Value & " is niet toegevoegd aan het exportbestand. Wijs handmatig machtigingen toe aan deze gebruiker.") objfileError.WriteLine("Fout: " & 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("Kan ADSI niet bijwerken voor gebruiker: " & rsUsers.Fields(0).Value) objfileError.WriteLine("Fout: " & 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 If
If (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("Als u verdergaat, krijgen alle accounts in " & sImportFilePath) WScript.StdOut.WriteLine("met de machtiging Volledige postbustoegang voor een postbus ook de") WScript.StdOut.WriteLine("machtiging Verzenden als.") WScript.StdOut.WriteLine() WScript.StdOut.Write("Druk op J om door te gaan of op een andere toets om te annuleren: ") strInput = WScript.StdIn.ReadLine() If (UCase(strInput) <> UCase("J")) Then WScript.Quit End If WScript.StdOut.WriteLine("Wordt gestart...") 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("Het importbestand " & sImportFilePath & "kan niet worden geopend, fout:" & err.Description) objfileError.WriteLine("Het importbestand " & sImportFilePath & "kan niet worden geopend, fout:" & 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("Kan rij niet parseren: " & sOneRow ) objfileError.WriteLine("Fout: " & err.Description) err.Clear fError = True fOneError = True End If If (UserPath <> sArraySplit(COLUMN_INDEX_USERADSPATH)) Then 'Een nieuwe gebruiker If (fNeedToAddSendAs = True ) Then 'bestaande gebruiker bijwerken 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("Machtigingen niet bijgewerkt voor gebruiker: " & UserPath) objfileError.WriteLine("Fout: " & 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("Kan gebruikersobject niet ophalen: " & UserPath) objfileError.WriteLine("Fout: " & err.Description) err.Clear fError = True fOneError = True End If End If 'newACE toevoegen Vereist? 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 'laatste gebruiker bijwerken 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("Machtigingen niet bijgewerkt voor gebruiker: " & UserPath) objfileError.WriteLine("Fout: " & err.Description) fError = True End If End If
End If
objFSO.CloseobjfileImport.CloseobjfileExport.CloseobjfileError.Close
Set objFSO = NothingSet objfileImport = NothingSet objfileExport = NothingSet objfileError = NothingSet objCommand = NothingSet conn = Nothing
WScript.StdOut.WriteLine()If (fError = True) Then WScript.StdOut.WriteLine("Script voltooid met een of meer fouten. Zie " & sErrorsFilename)Else WScript.StdOut.WriteLine("Script voltooid zonder fouten.")End If
Function 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 ' Discretionaire ACL-gegevens (DACL) openen. 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 'Een lijst bijhouden van degenen met een expliciete volledige postbustoegang op postbusniveau sFMAExplicitAllow = sFMAExplicitAllow & objACE.Trustee & OUTPUT_DELIMITER End If ElseIf (( (objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0 ) And (objACE.AceType = ADS_ACETYPE_ACCESS_DENIED)) Then 'Een lijst behouden van degenen die volledige postbustoegang is geweigerd, met OUTPUT_DELIMITER als scheidingsteken, 'inclusief overgenomen en expliciete op postniveau ingestelde waarden sFMADeniedList = sFMADeniedList & objACE.Trustee & OUTPUT_DELIMITER End If Next End If
Set objACL = NothingEnd Function
Function 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("Machtigingen voor deze gebruiker kunnen niet worden gelezen: " & sTAlias) objfileError.WriteLine("Fout: " & err.Description) err.Clear fError = True fOneError = True End If Next End If End Function
Function IfFMAAllowed(sTrustee) 'FMA allow ACE gevonden. Instellen op true fFMAAllowed = True If ( (0 <> Instr(sFMADeniedList, sTrustee)) And (0 = Instr(sFMAExplicitAllow, sTrustee)) ) Then 'Indien denied ACE gevonden en expliciete volledige postbustoegang ontbreekt fFMAAllowed = False End IfEnd Function
Function 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("Exportbestand of foutbestanden kunnen niet worden gemaakt: " & err.Description) objfileError.WriteLine("Exportbestand of foutbestanden kunnen niet worden gemaakt: " & err.Description) fError = True fOneError = True WScript.Quit End If
End Function
Function DisplaySyntax WScript.StdOut.WriteLine("Syntaxis:") WScript.StdOut.WriteLine() WScript.StdOut.WriteLine("Accounts exporteren die wel volledige postbustoegang hebben, maar niet Verzenden als:") WScript.StdOut.WriteLine(" CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Export") WScript.StdOut.WriteLine("OPMERKING: De lijst wordt opgeslagen als Send_As_Export_UU_MM_SS.txt") WScript.StdOut.WriteLine() WScript.StdOut.WriteLine("Verzenden als toekennen aan alle accounts in een exportbestand:") WScript.StdOut.WriteLine(" CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Import ""bestandsnaam.txt""") WScript.StdOut.WriteLine() WScript.StdOut.WriteLine("Verzenden als toekennen aan alle accounts in het domein met volledige postbustoegang:") WScript.StdOut.WriteLine(" CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -SetAll") WScript.StdOut.WriteLine("OPMERKING: Accounts worden opgenomen in Send_As_Export_UU_MM_SS.txt") WScript.StdOut.WriteLine() WScript.StdOut.WriteLine("Voor alle modi worden fouten opgeslagen in Send_As_Errors_UU_MM_SS.txt")
WScript.Quit End Function

END SCRIPT

Microsoft verstrekt deze code zonder enige expliciete of impliciete garantie, daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.
Als u meer informatie wilt over de beschikbare ondersteuningsopties van Microsoft, gaat u naar de volgende Microsoft-website: De niet-Microsoft-producten die in dit artikel worden vermeld, worden vervaardigd door fabrikanten die geheel onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.

PrintPrint RSS reactiesRSS reacties BookmarkBookmark

Gekoppelde tags

Access, Beveiligingsupdate, Cache, Database, Excel, Exchange, Exchange 2000, Exchange Server 2003, Filter, Fix, Foutbericht, Outlook, Outlook Web Access, Procedure, Query, Record, Service Pack, Update, Upgrade, Windows 2000, Windows NT, Windows XP

Reacties
Nog geen reacties geplaatst.

Winkelmandje

Het winkelmandje is leeg

Inloggen
Als u hierboven op de knop 'bestellen' klikt krijgt u een overzicht van de door uw gewenste producten. Indien het overzicht compleet en correct is kunt via de wizard de verdere gegevens invullen en uw bestelling afronden. In het bestelproces kunt u altijd op 'vorige' drukken om terug te gaan in het proces. Bij Perrit staan vertrouwen, privacy en veiligheid op de eerste plaats, wij zullen uw gegevens dan ook met uiterste zorgvuldigheid behandelen en nooit doorgeven aan derden.

Perrit.nl Sherwood Rangers 29 Hengelo

Perrit.nl telefoon: +31 74 750 12 20

Kenniscentrum - Gebruikers kunnen geen e-mailberichten verzenden vanaf een mobiel apparaat of vanuit een gedeelde postbus in Exchange 2000 Server en in Exchange Server 2003
Perrit Kenniscentrum - Gebruikers kunnen geen e-mailberichten verzenden vanaf een mobiel apparaat of vanuit een gedeelde postbus in Exchange 2000 Server en in Exchange Server 2003