Uživatelé nemohou odesílat e-maily z mobilního zařízení nebo ze sdílené poštovní schránky na serveru Exchange 2000 Server a Exchange Server 2003

Příznaky

Při pokusu o odeslání e-mailové zprávy v Microsoft Exchange 2000 Server nebo Microsoft Exchange Server 2003 nelze odeslat e-mailové zprávy. Navíc může zobrazit jedna z následujících chybových zpráv nebo následující nedoručení zprávy (NDR).

Chybové zprávy

  • Přístup byl odepřen
  • Nemáte dostatečná oprávnění k provedení této operace u tohoto objektu. Viz kontakt složky nebo vašeho správce systému.
  • Chybová zpráva není uveden v seznamu
  • MAPI_E_NO_ACCESS -2147024891
  • Nepodařilo se odeslat zprávy uživatele USERNAME (HRESULT: -2147024891) pozastavení uživatele uživatelské_jméno. (Chyba zabezpečení – nelze přístup k poštovní schránce uživatele.)
  • Prostředek nebyl nalezen.
Poznámka: Obdržíte chybovou zprávu "Přístup odepřen" nebo "Prostředek nebyl nalezen" chybová zpráva v aplikaci Outlook Web Access při přihlášení účtu delegáta.

Zprávy o nedoručení

  • Nemáte oprávnění odesílat zprávy tomuto příjemci. Obraťte se na vašeho správce systému.
  • Zprávu nelze odeslat pomocí poštovní schránky. Nemáte oprávnění odesílat zprávy v zastoupení zadaného uživatele.

Ovlivněné produkty

Tento problém je známo ovlivnit následující produkty jiných výrobců:
  • Research In Motion (RIM) BlackBerry Enterprise Server (BES společnosti)
  • GoodLink společnosti Good Technology zasílání zpráv
Tento problém může ovlivnit také vlastní MAPI nebo aplikace založené na spolupráci datové objekty CDO odeslat e-mailové zprávy.

Mohou být ovlivněny také jiné produkty jiných výrobců, které používají účty služeb k odesílání e-mailových zpráv. Pokud používáte produkty jiných výrobců, které jsou ovlivněny tento problém, doporučujeme kontaktovat dodavatele o pomoc při řešení tohoto problému.

Však bylo potvrzeno, že následujících produktů jiných výrobců nejsou ovlivněny tento problém:
  • Cisco Unity Unified Messaging
  • Společnosti Quest Migration Suite pro výměnu
  • Nástroj ExMerge společnosti Microsoft pro výměnu

Příčina

Tomuto problému může dojít, pokud platí jedna z následujících podmínek:
  • Nemáte oprávnění k odeslání e-mailové zprávy v účtu, který používáte k odesílání e-mailové zprávy jménem vlastníka poštovní schránky.
  • Spolu se souborem Store.exe, jehož číslo verze je roven nebo vyšší než verze 6619.4 se systémem Microsoft Exchange 2000 Server Service Pack 3 (SP3). Verze 6619.4 byla poprvé zpřístupněna v následujícím článku znalostní báze Microsoft Knowledge Base:
    915358 je oprava hotfix k dispozici pro změnu chování oprávnění Full Mailbox Access na serveru Exchange 2000 Server

  • Používáte Microsoft Exchange Server 2003 SP1 spolu se souborem Store.exe, jehož číslo verze je rovno nebo rovno 7233.51.
  • Používáte Exchange Server 2003 SP2 a verze souboru Store.exe, který je roven nebo vyšší než verze 7650.23. Verze 7650.23 byla poprvé zpřístupněna v následujícím článku znalostní báze Microsoft Knowledge Base:
    895949 chování oprávnění "Odeslat jako" Změna na serveru Exchange 2003

    Tato změna není zahrnuta v aktualizaci Exchange Server 2003 SP2. Pokud používáte Exchange Server 2003 SP1 verze souboru Store.exe, který obsahuje tuto změnu a upgradovat na Exchange Server 2003 SP2, je nutné nainstalovat aktualizaci SP2 verze této opravy hotfix, abyste zachovali nové chování. Tato změna bude zahrnuta v aktualizaci Microsoft Exchange Server 2003 SP3.

OTÁZKY ZABEZPEČENÍ

Před verze souboru Store.exe, které jsou uvedeny v části "Příčina" implicitně udělit oprávnění Full Mailbox Access oprávnění Odeslat jako vlastník poštovní schránky. To znamenalo, že jiný účet, který má oprávnění Full Mailbox Access může odesílat e-mailové zprávy, které se zobrazily jako by byly odeslány vlastníkem poštovní schránky.

Mnoho zákazníků Microsoft Exchange požádaly oddělit oprávnění Odeslat jako od oprávnění Full Mailbox Access následujících dvou důvodů:
  • Odradit e-mailové podvodníky.
  • Zajistit, že e-mailové zprávy odeslané delegátem vždy lze zřetelně odlišit od e-mailových zpráv, které byly odeslány vlastníkem poštovní schránky skutečné.
Nové verze služby Exchange store vyžadují k odeslání e-mailové zprávy jménem vlastníka poštovní schránky uděleno oprávnění Odeslat jako. Však následující tři výjimky tohoto pravidla:
  • Účet vlastníka poštovní schránky nevyžaduje pro svou poštovní schránku explicitní udělení oprávnění Odeslat jako.
  • Poštovní schránky Associated External Account nevyžaduje explicitní udělení oprávnění Odeslat jako.
  • Účet delegáta, který má také oprávnění Full Mailbox Access nevyžaduje explicitní udělení oprávnění Odeslat jako.
Další informace o těchto výjimkách naleznete v části "Další informace".

Řešení

Všechny účty, kterým je udělen částečný nebo úplný přístup k poštovní schránce, s výjimkou druhů uvedených v části "Příčina", musí nyní být explicitně uděleno oprávnění Odeslat jako účtu vlastníka poštovní schránky pro odesílat poštu jménem vlastníka poštovní schránky. To zahrnuje účty služeb aplikace, které provádějí funkce, například odeslání e-mailové zprávy uživatelům mobilních zařízení.

Oprávnění Odeslat jako se uplatní na objektu uživatele služby Active Directory, nikoli na obsah poštovních schránek, které jsou uloženy v databázi. Proto musí být uděleno oprávnění Odeslat jako účtu služby pro každý objekt uživatele, který je vlastníkem poštovní schránky. Při odesílání e-mailových zpráv, nejsou odeslány z určité poštovní schránky nebo databáze, ale od uživatele. Uživatel může být vlastník poštovní schránky nebo jiného účtu, který má uděleno oprávnění Odeslat jako.

Nelze udělit oprávnění Odeslat jako v serveru se systémem Exchange Server nebo databázový objekt a dosáhnout udělení oprávnění Odeslat jako pro všechny poštovní schránky v databázi. Udělení oprávnění Odeslat jako na objekt serveru Exchange databáze poskytuje oprávnění pro samotnou databázi. Všechny poštovní schránky v databázi dědí oprávnění. Však jej není poskytnuta oprávnění uživatelům, kteří mají oprávnění Odeslat jako a kteří mají v databázi uložené poštovní schránky.

Poznámka: Udělení oprávnění Receive As pro databázi aplikace Exchange je ekvivalentní udělení oprávnění Full Mailbox Access ke všem poštovním schránkám v databázi. Tím se liší od chování oprávnění Odeslat jako.

Jak udělit oprávnění Odeslat jako pro jeden účet

Chcete-li explicitně udělit oprávnění Odeslat jako vlastník poštovní schránky jiného účtu, postupujte takto:
  1. Spuštění konzoly Správa Active Directory uživatelé a počítače.
  2. V nabídce Zobrazit zkontrolujte, zda
    Je vybrána možnost Upřesňující funkce . Pokud tato možnost není vybrána, nebude stránka Security viditelná pro objekty uživatelského účtu.
  3. Otevřete dialogové okno Vlastnosti uživatelského účtu, který je vlastníkem poštovní schránky.
  4. Klepněte na kartu zabezpečení .
  5. Pokud účet již není v seznamu skupiny nebo jméno uživatele, přidáte účet, který má uděleno oprávnění Odeslat jako pro tohoto uživatele.
  6. V seznamu oprávnění klepněte na tlačítko Povolit pro "Odeslat jako" oprávnění pro příslušný účet.
  7. Klepněte na tlačítko OK
  8. Restartujte službu Microsoft Exchange Information Store na serveru Exchange obsahující tuto chybu.
Poznámka: Pokud nerestartujete službu Microsoft Exchange Information Store, Microsoft Exchange Information Store service bude aktualizovat svoji mezipaměť oprávnění tak, aby nové oprávnění projevily, podle hodnoty, která je nastavena v podklíči registru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
Název hodnoty: Limit stáří mezipaměti poštovní schránky
Typ hodnoty: REG_DWORD
Číselná soustava: desítková
Údaj hodnoty: limit stáří mezipaměti informace poštovní schránky v minutách.
Výchozí hodnota pro tuto položku registru je 120 minut (dvě hodiny). Pokud upravíte tato položka registru, je nutné restartovat službu Microsoft Exchange Information Store.

Poznámka: Pokud nastavíte hodnoty časového limitu na velmi nízkou hodnotu, může ovlivnit výkon serveru.

Jak udělit oprávnění Odeslat jako pro více účtů

Ukázkový skript je k dispozici na konci tohoto článku, která bude hledat doméně služby Active Directory pro účty, které mají oprávnění Full Mailbox Access bez oprávnění Odeslat jako pro poštovní schránku. Jedná se o vlastnosti, ovlivní tato změna zabezpečení účtu služby nebo prostředku. Skript může vytvořit soubor exportu, který lze zkontrolovat, upravit a poté zpět importovat a udělit oprávnění Odeslat jako účtům, které toto oprávnění vyžadují.

Můžete také udělit oprávnění Odeslat jako prostřednictvím dědičnosti každého objektu uživatele v doméně služby Active Directory nebo kontejneru. Pokud udělíte oprávnění Odeslat jako touto metodou, můžete udělit oprávnění pro objekty, které jste nechtěli. Kromě toho může dojít ke ztrátě oprávnění pro objekty, které jsou přesunuty z kontejneru. Proto tuto metodu nedoporučujeme a může mít vliv na zabezpečení, které je pečlivě zvážit před jejím.

Pokud udělíte oprávnění Odeslat jako touto metodou, účty, které mají zděděná oprávnění Odeslat jako se stanou neviditelnými skript, který odkazuje na konci článku. Tyto účty lze zpracovat pomocí skriptu k pozdějšímu datu, je nejprve odebrat zděděná oprávnění Odeslat jako.

Chcete-li udělit oprávnění Odeslat jako pro jeden účet na všech uživatelských účtů v doméně služby Active Directory nebo kontejneru pomocí dědičnosti, postupujte takto:
  1. Spuštění konzoly Správa Active Directory uživatelé a počítače.
  2. V nabídce Zobrazit zkontrolujte, zda
    Je vybrána možnost Upřesňující funkce . Pokud tato možnost není vybrána, nebude stránka Security viditelná pro objekty domény a kontejneru.
  3. Otevřete dialogové okno Vlastnosti domény nebo kontejneru a potom klepněte na stránku zabezpečení.
  4. Klepněte na tlačítko Upřesnit.
  5. Pokud není uveden požadovaný účet oprávnění, klepněte na tlačítko Přidata potom vyberte účet. Jinak poklepejte na účet pro úpravy.
  6. V seznamu Applies Onto klepněte
    Objektů uživatele.
  7. Udělte účtu oprávnění Odeslat jako.
  8. Klepnutím na tlačítko OK uložte všechny změny a ukončete dialogová okna.

Zvláštní pravidla pro účty chráněné objektem adminSDHolder

Pokud použijete skript oprávnění Odeslat jako pro vlastníka poštovní schránky, který je zároveň správcem domény, nebude efektivní oprávnění Odeslat jako. Důrazně doporučujeme, že jste není povolit poštovní schránku u uživatelských účtů, které mají práva správce domény nebo který je chráněn objektem adminSDHolder.



Objekt adminSDHolder je šablonou účtů, které mají rozsáhlá oprávnění ke správě služby Active Directory. Chcete-li zabránit nechtěnému zvýšení úrovně oprávnění, musí mít všechny účty chráněné objektem adminSDHolder oprávnění, která jsou uvedena v objektu adminSDHolder samotném.



Pokud změníte práva nebo oprávnění objektu adminSDHolder chráněného účtu, úloha pozadí tyto změny v průběhu několika minut vrátí zpět. Například pokud udělíte oprávnění Odeslat jako na objekt správce domény pro účet služby aplikace, úloha na pozadí automaticky odvolá oprávnění.



Nemůžete tedy udělit oprávnění Odeslat jako účtu služby aplikace, který je chráněn objektem adminSDHolder , dokud nezměníte samotný objekt adminSDHolder . Pokud však změníte objekt adminSDHolder , bude změna přístupových oprávnění všech chráněných účtů. Objekt adminSDHolder byste měli měnit pouze po úplné přezkoumání zabezpečení důsledky, které mohou nastat ve změně.


Chcete-li přiřazení poštovní schránky účtu, který je chráněn objektem adminSDHolder , postupujte takto:
  1. Spuštění konzoly Správa Active Directory uživatelé a počítače.
  2. V nabídce Zobrazit zkontrolujte, zda
    Je vybrána možnost Upřesňující funkce . Pokud tato možnost není vybrána, nebude stránka Security viditelná pro objekty uživatelského účtu.
  3. Vytvoření účtu běžného uživatele jako vlastníka poštovní schránky.
  4. Přiřaďte běžnému uživatelskému účtu poštovní schránky na serveru Exchange.
  5. Otevřete dialogové okno Vlastnosti nového účtu vlastníka poštovní schránky.
  6. V dialogovém okně Upřesnit Exchange udělte oprávnění Full Mailbox Access k chráněnému účtu správce.
  7. Na stránce zabezpečení udělte chráněnému účtu správce oprávnění Odeslat jako.
  8. Klepněte na tlačítko OK zavřete okno s vlastnostmi objektu vlastníka poštovní schránky.
  9. Klepněte pravým tlačítkem na objekt účtu vlastníka poštovní schránky a potom klepněte na tlačítko Zakázat účet zakázat všechna přihlášení k účtu.
Další informace o účtech chráněných objektem adminSDHolder naleznete získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

907434 "Odeslat jako" doprava je odebrána z objektu uživatele po konfiguraci "Odeslat jako" práva v Active Directory Users and Computers modul snap-in v Exchange Server

318180 Objekt adminSDHolder ovlivňuje tranzitivní členy distribučních skupin

817433 delegovaná oprávnění nejsou k dispozici a dědění je automaticky zakázána.

306398 objekt AdminSDHolder ovlivňuje delegování správy pro bývalé účty správce

Speciální úlohy pro server BlackBerry Enterprise Server

Krok 1: Ujistěte se, že server BlackBerry Enterprise Server je spuštěn jako samostatný jedinečný účet

Ujistěte se, že server BlackBerry Enterprise Server je spuštěn jako samostatný účet, který je přesně vytvořen pro úlohy správy. Ve výchozím nastavení tento účet se nazývá "BESAdmin."

Pokud máte samostatný účet pro správu serveru BlackBerry Enterprise Server, přejděte k úloze 2.


Pokud nemáte samostatný účet, vytvořte samostatný účet. Potom použijte tento účet k provádění úkolů správy. Pokyny o tom, jak to provést, pokud používáte BlackBerry Enterprise Server 4.0 nebo BlackBerry Enterprise Server 4.1 naleznete v tématu Průvodce instalací serveru BlackBerry Enterprise Server.  Pokyny, jak postupovat, pokud používáte server BlackBerry Enterprise Server 3.6, viz BlackBerry Enterprise Server 2000/2003 instalace a příručky Začínáme.

Krok 2: Ověřte, zda účet služby BlackBerry Enterprise Server má příslušná oprávnění

Ověřte, zda účet služby BlackBerry Enterprise Server má příslušná oprávnění.

Poznámka: Pokud je účet v doméně, ujistěte se, že účet je členem skupiny Domain Users. V řadiči domény účet musí být členem předdefinované skupiny Administrators.
  1. Na serveru BlackBerry Enterprise Server postupujte takto:
    1. Ujistěte se, že účet je členem místní skupiny Administrators.
    2. Přiřadíte účtu oprávnění "Přihlásit se místně" a "Protokolu jako služba".
  2. Správce přidělte serveru Exchange udělit oprávnění na úrovni skupiny pro správu. Chcete-li to provést, postupujte takto:
    1. Exchange System Manager klepněte pravým tlačítkem na název první skupiny pro správu Exchange Server a potom klepněte na příkaz Delegovat řízení.
    2. Všimněte si, že účet služby BlackBerry Enterprise Server je uveden jako roli správce přidělte serveru Exchange.
  3. Udělit oprávnění "Odeslat jako," "Zobrazí jako" a "Spravovat službu Information Store" oprávnění na serveru úroveň pro každý Exchange server. Chcete-li to provést, postupujte takto:
    1. V Exchange System Manager klepněte pravým tlačítkem na název první skupiny pro správu Exchange Server a potom rozbalte položku
      Skupina serverů .
    2. Klepněte pravým tlačítkem myši Exchange server, klepněte na tlačítko
      Vlastnostia potom klepněte na tlačítko
      Zabezpečení.
    3. V horním podokně vyberte účet služby BlackBerry Enterprise Server. V dolním podokně zkontrolujte, zda "Odeslat jako" "Zobrazí jako" a "Spravovat službu Information Store" oprávnění jsou nastavena na
      Povolit.
    4. Zopakujte kroky 3b a 3c pro každý Exchange server.
  4. Udělit oprávnění "Odeslat jako," "Zobrazí jako" a "Spravovat službu Information Store" oprávnění pro úložiště poštovních schránek. Chcete-li to provést, postupujte takto:
    1. V Exchange System Manager klepněte pravým tlačítkem na název první skupiny pro správu serveru Exchange a potom rozbalte položku
      Skupina serverů .
    2. Rozbalte uzel první skupina úložiště poštovních schránek, klepněte pravým tlačítkem na každé úložiště poštovních schránek, klepněte na příkaz Vlastnostia potom klepněte na tlačítko
      Zabezpečení.
    3. V horním podokně vyberte účet služby BlackBerry Enterprise Server. V dolním podokně zkontrolujte, zda "Odeslat jako" "Zobrazí jako" a "Spravovat službu Information Store" oprávnění jsou nastavena na
      Povolit.
    4. Zopakujte kroky 4b a 4c pro každé úložiště poštovních schránek na každém serveru Exchange.
  5. V modulu snap-in Active Directory Users and Computers postupujte takto:
    1. Klepněte pravým tlačítkem myši uživatele, který chcete přidat oprávnění a potom klepněte na příkaz Vlastnosti.
    2. Na kartě zabezpečení přidejte účet služby BlackBerry Enterprise Server a klepnutím vyberte
      Odeslat jako zaškrtávací políčko.
Pokud používáte Exchange Server 2003, přejděte k úloze 3.

Úloha 3: Vymazání mezipaměti na serveru BlackBerry Enterprise Server

Chcete-li vymazat mezipaměť oprávnění úložiště serveru Exchange, restartujte služby související se serverem Blackberry a potom restartujte Microsoft Exchange Information Store. Po restartování úložiště serveru Exchange je třeba restartovat služby související se serverem RIM Blackberry udělit účtu "BESAdmin" nově přidané oprávnění Odeslat jako úložiště serveru Exchange.

Další informace

Přístupová oprávnění Exchange poštovní schránky a složky jsou rozděleny mezi databází služby Active Directory a Microsoft Exchange. Však oba typy oprávnění jsou nastavena v konzole pro správu služby Active Directory uživatele, ale různá oprávnění, které jsou uloženy na dvou různých místech.

Obecně platí Pokud je oprávnění nastaveno na stránce zabezpečení pro objekt, je oprávněním služby Active Directory. Pokud je nastavena na stránce Exchange Advanced práv poštovní schránky, je oprávnění databáze serveru Exchange.

Atribut msExchMailboxSecurityDescriptor služby Active Directory je záložní kopií podmnožiny účinných práv poštovní schránky. Ji používá interně Exchange pro různé účely. Navíc je atribut msExchMailboxSecurityDescriptor aktualizován tak, aby odpovídala aktuální účinná práva, pokud správci přiřadit práva pomocí podporovaných rozhraní. Nicméně, pokud je atribut msExchMailboxSecurityDescriptor upravován správcem přímo, změny nebudou přeneseny do úložiště serveru Exchange a změny se projeví. Není zaručeno, budou synchronizovány s platnými právy poštovní schránky. Ke čtení a zápisu práv poštovní schránky byste neměli používat atribut msExchMailboxSecurityDescriptor .
Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

310866 jak nastavit práva poštovní schránky Exchange Server 2003 a serveru Exchange 2000 na poštovní schránku, která existuje v úložišti informací


Oprávnění Full Mailbox Access je oprávněním úložiště databáze serveru Exchange. Oprávnění Odeslat jako je oprávněním služby Active Directory. Před Store.exe serveru Exchange změny souborů, které jsou popsány v tomto článku v systému Exchange není naleznete v nastavení oprávnění Odeslat jako Pokud odesílatel již měla oprávnění Full Mailbox Access.

Zahrnutí oprávnění Odeslat jako spolu s oprávněním Full Mailbox Access umožnilo správcům serveru Exchange přisvojit si efektivní oprávnění Odeslat jako pro libovolnou poštovní schránku na jimi spravovaném serveru. Po oddělení oprávnění Odeslat jako od oprávnění Full Mailbox Access, Správce služby Active Directory mohou tento proces blokovat, protože oprávnění Odeslat jako je oprávněním služby Active Directory a nikoli oprávněním úložiště serveru Exchange. Proto procesu není nutně pod dohledem správci serveru Exchange.

Vlastníci poštovní schránky

Vlastník poštovní schránky je definován jako uživatelský účet služby Active Directory, jehož atribut msExchMailboxGUID obsahuje globálně jedinečný identifikátor (GUID) pro určité poštovní schránky. Pouze jeden účet v celé doménové struktuře může obsahovat identifikátor GUID určité poštovní schránky. Pokud se pokusíte nastavit druhého vlastníka se stejným identifikátorem GUID služby Active Directory změnu odmítne a s chybou.


Pokud je povolení poštovní schránky účtu nebo při připojení odpojené poštovní schránky účtu služby Active Directory, poštovní schránky automaticky nastaven identifikátor GUID účtu. Zřídka je nutné nebo doporučené pro správce nastavit identifikátory GUID poštovní schránky přímo.

Přidružené externí účty

Instalace serveru Exchange v doménové struktuře prostředků je běžnou konfigurací serveru Exchange. Struktura prostředků je doménové struktury v jiné struktuře uživatelských účtů, které v systému budou mít poštovní schránky. To představuje problém, protože atribut msExchMailboxGUID je možné nastavit pouze na objekty ve stejné doménové struktuře jako Exchange server.

Řešením tohoto problému je povolení poštovní schránky účtu v doménové struktuře serveru Exchange. Pak tento účet poštovní schránky povoleno propojit na jednu v jiné doménové struktuře nebo v doméně systému Microsoft Windows NT 4. To lze provést udělením oprávnění Associated External Account. Jeden účet může být uděleno oprávnění Associated External Account. Účet, který je vybrán, musí být z jiné doménové struktury.

Pokud nastavíte oprávnění Associated External Account, jsou zapíše hodnota SID externího účtu do atributu msExchMasterAccountSID vlastníka poštovní schránky. Proto není oprávnění, ale o vhodný způsob řízení hodnoty atributu msExchMasterAccountSID . Po msExchMasterAccountSID atribut byl nastaven, bude externímu účtu, který vlastní SID, udělen přístup k serveru Exchange jako by šlo o skutečný vlastník schránky.

Poznámka: To se týká pouze přístupů k serveru Exchange, aby veškerý přístup služby Active Directory. Navíc byste měli poznačit účtu vlastníka poštovní schránky jako zakázané pro přihlášení poté, co nastavíte oprávnění Associated External Account tak, aby všechna oprávnění pracovat podle očekávání.

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

300456 oprávnění a delegování klientů nepřetrvají po přiřazení k serveru Exchange 2000

Scénáře delegování

Delegát je uživatel, kterému bylo uděleno částečný přístup k jiné poštovní schránce a právo na odeslání e-mailové zprávy jménem vlastníka této poštovní schránky. Obvyklým scénářem delegování je udělení delegovaného přístupu administrativnímu pracovníkovi ke kalendáři nadřízeného. Delegát je čtení a aktualizace kalendáře. Navíc delegát může odpovídat na e-maily za svého nadřízeného.

Následující dvě rozhraní můžete použít k poskytnutí odeslat za uživatele a oprávnění delegáta:
  • V objektu vlastníka poštovní schránky posílat udělte za oprávnění v obecné Exchange dialogové okno.
  • V aplikace Microsoft Office Outlook použijte dialogové okno Delegáti .
Obě tyto metody nastavit atribut publicDelegates poštovní schránky. Všichni uživatelé, kteří jsou uvedeni v tomto atributu mít účet oprávnění pro vlastníka poštovní schránky odeslat. Pokud tento delegát odešle e-mailovou zprávu, která má název vlastníka v poli od , e-mailová zpráva je odeslána delegátem a není ani vlastníka poštovní schránky. Pole od e-mailové zprávy zobrazí následující hodnotu:
<Název delegáta> jménem <Vlastníka poštovní schránky>
V některých případech může být možné v aplikaci Outlook nastavit atribut publicDelegates .
Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

329622 "Odeslat jménem" oprávnění není přiřazen uživateli po delegování přístupu v aplikaci Outlook


Pokud delegátovi udělíte přístup ke své schránce, bude delegát moci použít odeslat zastoupení jiné osoby i v případě, že jste mu neudělili přístup k žádné složce své poštovní schránky. Základní oprávnění, která má delegát je odeslat jménem oprávnění. Oprávnění pro přístup ke své poštovní schránky jsou oddělená a musíte udělit navíc k oprávněním delegování. Delegáti se obvykle používají Outlook přistupují k jednotlivým složkám, ke kterým jim bylo uděleno oprávnění. Chcete-li to provést, klepněte na tlačítko Otevřít v nabídce soubor v aplikaci Outlook a potom klepněte na příkaz Složka jiného uživatele.

Alternativně mohou delegáti otevřít poštovní schránky uvedou jako další poštovní schránku v
Na kartě Upřesnit jejich profily aplikace Outlook. Tato metoda způsobí, že poštovní schránky ve stromu složek delegáta aplikace Outlook. Kromě toho tato metoda umožňuje přístup ke všem složkám v poštovní schránce, jejíž delegát udělena oprávnění.

Je vhodné, aby někdy mít účet oprávnění Odeslat a jindy oprávnění Odeslat jako. Chcete-li konfiguraci delegáta s oběma oprávněními, postupujte takto:
  • Udělte delegátovi oprávnění Full Mailbox Access. Tuto akci nelze provést prostřednictvím aplikace Outlook. Místo toho Správce služby Active Directory musí provádět v účtu vlastníka poštovní schránky. I když udělíte oprávnění vlastníka u všech složek v poštovní schránce, která není stejná oprávnění jako oprávnění Full Mailbox Access.
  • Neudělujte delegátovi oprávnění Odeslat jako. Pokud delegátovi udělíte oprávnění Odeslat jako, bude provedeno všechny e-mailové zprávy odeslané delegát s oprávněním Odeslat jako. Delegát nebude moci používat účet oprávnění Odeslat.
V tomto scénáři delegátů, které chcete použít účet oprávnění Odeslat přihlašují ke svým vlastním poštovním schránkám. Pokud delegáti posílají odpověď nebo předávají dál e-mail, který se již nachází v některé z vašich složek, e-mailové zprávy automaticky odeslán za vás. Pokud delegát vytvoří nové e-mailové zprávy vaším jménem, že do pole z e-mailové zprávy zasílané na váš účet, zadejte své jméno.

Delegáti tom, zda otevřeli své složky nebo nastavili celou poštovní schránku jako svou sekundární poštovní schránku všechny e-mailové zprávy odeslané z je budou používat nezávisle na účet oprávnění Odeslat, dokud je vlastní poštovní schránka primární poštovní schránka pro aktuální profil aplikace Outlook.

Pokud chce delegát odeslat e-mailové zprávy jako vy, měl by se přihlásit k poštovní schránce pomocí samostatného profil aplikace Outlook, který otevře pouze vaší poštovní schránku. E-mailových zpráv, které odesílají delegáty, zatímco je přihlášen k tomuto profilu bude automaticky odeslána od vás.

Hledání účtů, které mají oprávnění Full Mailbox Access bez oprávnění Odeslat jako

Vzorový skript, který je popsaný v této části můžete hledat jednu doménu služby Active Directory v době pro uživatelské účty, které bylo uděleno oprávnění Full Mailbox Access k poštovní schránce bez oprávnění Odeslat jako.


Důležité: Než změníte oprávnění, naleznete v části "Vlastníci poštovní schránky s delegáty".

Skript má v následujících třech režimech:
  • Exportovat Můžete vypsat seznam uživatelů, kteří mají oprávnění Full Mailbox Access, ale nemá uděleno oprávnění Odeslat jako. Potom můžete zkontrolovat tento seznam v programu Poznámkový blok nebo jiného editoru, chcete-li odebrat všechny účty, které chcete udělit oprávnění Odeslat jako.
  • Importovat Můžete importovat seznam uživatelů, kteří mají oprávnění Full Mailbox Access, kterému by měl také uděleno oprávnění Odeslat jako. Všimněte si, že nelze použít tento skript Chcete-li udělit oprávnění Full Mailbox Access a odeslat jako oprávnění. Každý účet již musí mít uděleno oprávnění Odeslat jako oprávnění Full Mailbox Access.
  • SetAll Můžete udělit oprávnění Odeslat jako všem uživatelům v doméně, kteří již mají určité poštovní schránky uděleno oprávnění Full Mailbox Access. Soubor protokolu bude vytvořen ve stejném formátu jako soubor exportu. Jedná se o ekvivalent spuštění vývozních a dovozních režimů bez úpravy souboru exportu.
Poznámka: Tento skript není žádná funkce zpět.

Oprávnění, které jsou požadovány pro skript

Když jste přihlášeni k účtu správce ve stejnému lesu, ve které se nacházejí účty vlastníků poštovní schránky, je nutné spustit skript. Skript nemusí pracovat s účtem, který má oprávnění správce v rámci struktury. Skript nemusí fungovat, pokud jej spustíte v pracovní stanici, který je připojen k jiné doménové struktuře než ve struktuře, ke kterému jsou připojeny účty vlastníků poštovní schránky.

Za těchto podmínek, můžete použít skript s více účty správce v jediné relaci pomocí příkazu RunAs.exe . Tento postup může být užitečné, pokud máte přízi oprávnění služby Active Directory a Exchange Server a mít žádný účet, který můžete spravovat všechny servery Exchange nebo všechny domény služby Active Directory. Můžete otevřít příkazový řádek ke spuštění skriptu s každým účtem správce. Zvažte následující příklad:
RunAs.exe /user:domain\account CMD.EXE
Poznámka: Není vhodné spouštět více kopií skriptu současně pro stejnou doménu.

Pole v souboru exportu jsou takto. Pole jsou popsána v pořadí, v jakém jsou uvedeny v souboru exportu.
  • Zobrazovaný název účtu vlastníka poštovní schránky

    Výstupní soubor, který uvádí stejného vlastníka poštovní schránky může být více než jeden řádek. K tomuto chování dochází, když několik různých účtu oprávnění Full Mailbox Access na stejnou poštovní schránku.
  • Doména a přihlašovací jméno účtu, který má oprávnění Full Mailbox Access, ale nemá uděleno oprávnění Odeslat jako

    Stejný účet může objevit vícekrát v celém souboru exportu, pokud má účet přístup k několika poštovním schránkám. Bude se zřejmě jednat o účet služby aplikace nebo osoby, která spravuje více prostředků poštovních schránek.
  • Zobrazovaný název účtu, který má oprávnění Full Mailbox Access, ale nemá uděleno oprávnění Odeslat jako

    Toto pole je k dispozici kromě pole Přihlašovací jménoa usnadnit identifikaci účtu.
  • Stav delegáta vlastníka poštovní schránky.

    Pokud delegáty vlastníka poštovní schránky, je hodnota pole
    Has Delegates. Pokud vlastník poštovní schránky nemá žádné delegáty, v poli hodnota je No Delegates.
  • Stav povoleno nebo zakázáno účtu vlastníka poštovní schránky

    Toto pole je užitečné, pokud chcete identifikovat účty prostředku nebo účty poštovní schránky mezi doménovými strukturami. Obvykle se tyto účty jsou zakázány.
  • Úplný rozlišující název účtu vlastníka poštovní schránky

    Toto pole je užitečné při identifikaci domény a kontejneru účtu vlastníka poštovní schránky.
  • Úplný rozlišující název databáze poštovní schránky vlastníka poštovní schránky

    Toto pole obsahuje databáze, skupinu úložiště, serveru a skupinu správce této poštovní schránky.
V následujícím příkladu má uživatel s přihlašovacím jménem "NoSendAs" oprávnění Full Mailbox Access, ale není uděleno oprávnění Odeslat jako pro poštovní schránku "Mailbox Owner":
"" "Mailbox Owner" "" "" "Doména\NoSendAs" "" "" "Ne odeslat jako uživatel" "" "" "Has Delegates" "" "" "povolené" "" [Další pole byla vynechána]

Konfigurace pracovní stanice správce pro skript

Tento skript používá ke komunikaci se servery Exchange pomocí rozhraní správy Exchange. Proto musí být tento skript spustit ze serveru Exchange nebo pracovní stanici s nainstalovaným programem Exchange System Administrator.

Úpravy souboru exportu

Soubor exportu je formátována jako prostý text tak, aby znakové sady z více jazyků kódováním Unicode. Některé textové editory mohou nemůže při správném zobrazení nebo úpravě souboru nebo mohou soubor ukládat jako text ANSI nebo ASCII. Program Poznámkový blok systému pro systém Windows Server 2003, Windows XP a Microsoft Windows 2000 správně zpracovat textové soubory Unicode. Aplikace Microsoft Office Excel lze správně zpracovávat textové soubory Unicode.

Výstupní soubor je ve formátu odděleného tabulátory s třemi uvozovkami okolo jednotlivých hodnot každého pole. Tři uvozovky se používají k importu a exportu z aplikace Excel deterministického. V aplikaci Excel tři uvozovky se stanou jednoduché uvozovky a bude nahrazen triple uvozovek při soubor znovu uložen jako text s kódováním Unicode. Postupujte podle následujících pokynů správně otevření a uložení souboru exportu v aplikaci Excel.

Soubor exportu můžete také filtrovat bez použití aplikace Excel pomocí nástrojů Find.exe nebo Findstr.exe nástroj. Tyto nástroje jsou součástí systému Windows. Umožňují uživatelům vyhledávání slov v souboru a výstup pouze řádky, které obsahují tato slova nebo pouze řádky, které neobsahují těchto slov. Například pokud chcete vytvořit seznam všech vlastníků poštovní schránky, které mají delegáti souboru, použijte některý z těchto příkazů k vytvoření souboru, který obsahuje pouze řádky s řetězcem "Has Delegates":
Find.exe "Has Delegates" PůvodníSoubor.txt > MáDelegáty.txt

Findstr.exe/c: "Has Delegates" PůvodníSoubor.txt > MáDelegáty.txt
Například předpokládejme, že odfiltrovat všech vlastníků poštovní schránky s delegáty. Přepínače /V zobrazí všechny řádky, které neobsahují zadaná slova. Kterýmkoli z následujících příkazů můžete použít ke generování souboru vyřadí všechny řádky "Has Delegates":
Find.exe "No Delegates" PůvodníSoubor.txt > ŽádníDelegáti.txt


Find.exe /V "Has Delegates" PůvodníSoubor.txt > ŽádníDelegáti.txt


Findstr.exe/c: "No Delegates" PůvodníSoubor.txt > ŽádníDelegáti.txt


Findstr.exe /V/c: "Has Delegates" PůvodníSoubor.txt > ŽádníDelegáti.txt
Tyto příkazy můžete také vytvořit soubor se seznamem účtů kde účet služby aplikace oprávnění Full Mailbox Access, ale nemá oprávnění Odeslat jako. Přepínač /I Vypne příkaz malá a velká písmena:
Find.exe /I "domain\ServiceAccount" OriginalFile.txt > ServiceAccount.txt


Findstr.exe /I /C:"domain\ServiceAccount" OriginalFile.txt > ServiceAccount.txt
Poznámka: Pokud filtrovaný soubor pomocí nástroje Find.exe, musíte odstranit řádky záhlaví, které nástroj Find.exe vytvoří v horní části souboru.

Nepoužívejte názvy souborů pomocí zástupných znaků (*. *) pomocí nástroje Findstr.exe. Pokud použijete zástupné znaky, každý řádek souboru bude uveden názvem souboru. Po filtrování pomocí nástroje Find.exe nebo Findstr.exe, chcete-li ověřit, že byly zahrnuty nebo vyjmuty požadované účty, které jste měli v úmyslu měli pečlivě zkontrolujte výstupní soubor.

V následujícím příkladu má uživatel s přihlašovacím jménem "NoSendAs" oprávnění Full Mailbox Access, ale nikoli oprávnění Odeslat jako pro poštovní schránku "Mailbox Owner".
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [additional fields omitted] 

Vlastníci poštovní schránky s delegáty

Delegát s oprávněním Full Mailbox Access (také známé jako "delegátovi") by neměl být uděleno oprávnění Odeslat jako. Jakmile se superdelegát přímo přihlásí k poštovní schránce vlastníka poštovní schránky, delegát může odesílat zprávy jménem vlastníka. Pokud delegát používá funkce delegování aplikace Outlook (Otevřít další poštovní schránky nebo Otevřít další složky uživatele), zprávy jsou odesílány jménem majitele.

Oprávnění Odeslat jako udělte delegátovi pouze v případě, že chcete, aby delegát vždy odesílat zprávy jménem vlastníka poštovní schránky a nikdy odesílání jménem vlastníka poštovní schránky. Doporučujeme vyhledat v souboru exportu textu "Has Delegates" a pak určete, zda některá superdelegáti, které jsou uvedeny ve skutečnosti delegáty vlastníka poštovní schránky.

V exportním souboru jsou uvedeny pouze superdelegáti. Běžní delegáti nemají oprávnění Full Mailbox Access. Navíc při běžné delegátovi udělíte oprávnění Odeslat jako, delegát bude vždy odeslat jako vlastníka poštovní schránky. To platí i v případě, že normální delegát nemá oprávnění Full Mailbox Access. Pokud delegátovi udělit oprávnění Odeslat jako, pokud jste nechtěli, můžete snadno odebrat oprávnění později.

Jak otevřít exportovaný soubor v aplikaci Excel

  1. Před otevřením souboru exportu, spuštění aplikace Excel.
  2. Otevřete soubor v aplikaci Excel jako typ textových souborů. Spustí se Průvodce importem textu.
  3. V Průvodci importem textu změňte nebo potvrďte následující nastavení:
    • Typ zdrojových dat: oddělený
    • Začátek importu na řádku: 1
    • Typ souboru: kódování Unicode (UTF-8)
    • Oddělovače: pouze tabulátor
    • Posloupnost oddělovačů jako jeden: neoznačené
    • Textový kvalifikátor: "(dvojité uvozovky)

Postup při uložení souboru exportu po úpravě v aplikaci Excel

  1. V souboru exportu klepněte na tlačítko Uložit jako.
  2. Uložte soubor pomocí jiný název, abyste zachovali neupravenou kopii původního souboru.
  3. Klepněte na soubor, klepněte na příkaz Uložit jako, zadejte název souboru pro uložení výstupu a v seznamu Uložit jako typ klepněte na položku text v kódu Unicode .

Syntaxe skriptu

Jedná se o skript pro textový režim a by měl být spuštěn v okně příkazového řádku, nikoli z dialogového okna Spustit . Chcete-li otevřít okno příkazového řádku, klepněte na tlačítko Start, klepněte na tlačítko Spustit, typ
Příkaz CMD v Otevřít pole a pak klepněte na
OK.

Protokol chyb a exportovat soubory budou uloženy do aktuálního adresáře v příkazovém řádku. Musíte mít oprávnění k vytváření souborů v tomto adresáři. Chcete-li získat nápovědu k příkazovému řádku, zadejte následující příkaz:
CSCRIPT AddSendAs.vbs 
Export uživatelů, kteří mají úplný přístup k poštovní schránce bez oprávnění Odeslat jako pro doménu, zadejte následující příkaz:
CSCRIPT AddSendAs.vbs [domain controller name] –ExportExample:
CSCRIPT AddSendAs.vbs CORP-DC-1 –Export

Soubor exportu bude vytvořen jako "Send_As_Export_H_MM_SS.txt."

Chcete-li importovat soubor exportu upraveného, zadejte následující příkaz:
CSCRIPT AddSendAs.vbs [domain controller name] –Import [filename]

Example:


CSCRIPT AddSendAs.vbs CORP-DC-1 –Import "Send_As_Export_H_MM_SS.txt"

Jak udělit oprávnění Odeslat jako pro každou poštovní schránku v doméně pro všechny uživatele, kteří již mají oprávnění Full Mailbox Access poštovní schránky

Poznámka: Pokud máte delegátů, kteří také uděleno oprávnění Full Mailbox Access v organizaci, neměli používat režim SetAll. Pokud v takové situaci použijete režim SetAll, delegátům uděleno oprávnění Odeslat jako. Toto chování může způsobit všechny e-mailové zprávy, které jsou odesílány s použitím oprávnění Odeslat jako místo posílat v zastoupení jiné osoby. Toto chování můžete napravit odebráním oprávnění Odeslat jako, které bylo nechtěně uděleno delegátovi:
CSCRIPT AddSendAs.vbs [domain controller name] –SetAll

Example:


CSCRIPT AddSendAs.vbs CORP-DC-1 –SetAll

Pokud použijete režim SetAll, vytvoří se soubor exportu bude názvem Send_As_Export_H_MM_SS.txt. Tento soubor má uložit, protože je záznam všech účtů, které byly změněny. Kdyby skript znovu spustit, nebude vytvořen stejný seznam účtů, protože účty by již bylo uděleno oprávnění Odeslat jako.


Chyby, které je spuštěn skript bude uložena do souboru s názvem Send_As_Errors_H_MM_SS.txt. Chyba název souboru bude odpovídat časové razítko razítkem příslušného souboru exportu.

Úpravy skriptu

Mohou být účty ve vaší organizaci, které mají oprávnění na mnoho objektů, ale nechcete změnit oprávnění. Chcete-li zmenšit soubor exportu, lze tyto účty odfiltrovat úpravou proměnné FMA_EXCLUSIVE_LIST, která se nachází v horní části skriptu. Ve výchozím nastavení tato proměnná obsahuje několik účtů, které mají být ve výstupu ze skriptu potlačeny. Další účty lze přidat v následujícím formátu.
& "<Domain\Name>" & OUTPUT_DELIMITER
Může například změnit hodnotu následující proměnné.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
takže se zobrazí takto.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Mydomain\Service1" & OUTPUT DELIMITER
Potlačí tuto změnu výpisu účtu "TatoDoména\Služba1" v exportním souboru "NT AUTHORITY\SELF" a "NT AUTHORITY\SYSTEM". Všimněte si, že hodnoty Doména\Název jsou rozlišována malá a musí být uvedeny přesně stejně jako nebo jako by v souboru exportu.

Existuje jiné proměnné, FMA_EXCLUSIVE_EXSVC, který má výchozí hodnotu "\Exchange Services" & OUTPUT_DELIMITER. "Služby Exchange" je název účtu, který má uděleno oprávnění prostřednictvím Active Directory Connector v scénářů pro migraci a koexistenci Exchange Server 5.5 a Exchange 2000. Tento účet je vytvořen ve více doménách, a může se zobrazit opakovaně v exportním souboru Pokud není potlačen.

Proměnné FMA_EXCLUSIVE_EXSVC může být pouze jeden účet přijme jako jeho hodnotu. Název účtu není velká a malá písmena. Zadaný účet musí začínat znak zpětného lomítka (\) a neměl by obsahovat název domény, do které náleží. Účet bude potlačen u všech domén, ve kterých existuje.

Pokud jste použili nástroje pro migraci třetích stran nebo metody synchronizace adresáře, může existovat jiný účet ve více doménách udělena rozsáhlá oprávnění pro uživatelské poštovní schránky. V tomto scénáři můžete nahradit název účtu "\Exchange Services."

Tipy a upozornění

  • Nezahazujte soubory protokolu a chyby, které jsou generovány pomocí skriptu. Mohou posloužit při řešení potíží nebo pozdějším navrácení provedených změn. Nezapomeňte, že jakmile udělíte oprávnění Odeslat jako pro účet jej bude zaznamenána již v souboru exportu.
  • Pokud databáze nebo serveru Exchange server je vypnutý, bude pomalejší zpracování skriptu. V takovém případě můžete soubor exportu setřídit podle databáze a přemístit řádky nefungující databáze do jiného souboru a import provést později spojené.
  • Skript potlačí výstup účtů, kde končí znakem "$" přihlašovací jméno, nebo je NT AUTHORITY\SYSTEM. Tyto systémové účty typicky nepotřebují oprávnění Odeslat jako a jejich odstraněním ze souboru exportu výrazně zmenší velikost.
  • Soubor exportu musí být ve formátu Unicode před importem. Pokud jste nechtěnému uložení souboru jako textu ANSI, tento problém lze vyřešit načítání souboru v programu Poznámkový blok a uložit jej jako text s kódováním Unicode.
  • Pokud import nefunguje, Poradce při potížích s použitím testovacích účtů a jednořádkového souboru importu. Je nakonfigurovat testovací účet, který má poštovní schránku na serveru Exchange server a potom udělte oprávnění Full Mailbox Access jinému testovacímu účtu. Neudělujte oprávnění Odeslat jako pro testovací účet.
  • Neexistuje žádný režim zpět pro tento skript. Chtěli odvolat oprávnění Odeslat jako, která je udělena tímto skriptem, musíte vytvořit nový skript, nebo je ručně odebrat. Není k dispozici funkce navrácení vyhnout použití tohoto skriptu, chcete-li odebrat oprávnění Odeslat jako všem uživatelům v organizaci.
  • Skript zpracovává chybně účet, kterým bylo uděleno oprávnění k úplnému řízení objektu uživatele a Full Mailbox Access. Úplné řízení zahrnuje oprávnění Odeslat jako, ale skript vyexportuje účet bez oprávnění Odeslat jako oprávnění. Zvýší se sice velikost souboru exportu, ale žádné z importu souboru a nevzniknou potom odeslat jako oprávnění pro tyto účty.
  • Uživatelské účty služby Active Directory s rozlišitelnými názvy, které obsahují znak tabulátoru nebo nepárové uvozovky nelze zpracovat pomocí skriptu. Skript je schopen správně zpracovat název, který obsahuje párové uvozovky, například následující:
    "CN = Jméno"Přezdívka"příjmení, DC = doména, DC = com"
  • Každá verze aplikace Excel podporuje jiného řádku maximální limit. Další informace získáte klepnutím na následující číslo článku databáze Microsoft Knowledge Base:

    120596 textové soubory větší než 65536 řádků nelze importovat do aplikace Excel 97, Excel 2000, Excel 2002 a Excel 2003

    Omezení řádků pro aplikaci Excel 2003 a Excel 2007 jsou následující:
    • Aplikace Excel 2003:65 536 řádků.
    • Excel 2007:1 048 576 řádků
    Pokud výstupní soubor je větší než tato omezení, je nutné rozdělit soubor do oddílů před načtením v aplikaci Excel.
  • Soubor Send_As_Errors bude obsahovat konkrétní obchodní vztahy v případě, že došlo k chybě při čtení nebo zápisu oprávnění. Pokud ostatní účty v doméně, které byly správně zpracovány tyto účty může mít něco společného které zabrání skript spustit s nimi. Běžné problémy patří:
    • Nedostatečná oprávnění správce k zobrazení a nastavení vlastností účtů.
    • Úložiště poštovních schránek serveru Exchange není spuštěna.
    • Pracovní stanice není členem stejné domény.
    • Účet správce, který je používán není součástí stejné doménové struktury.
Chcete-li tento skript spustit, zkopírujte a vložte všechny řádky mezi SKRIPTEM BEGIN a END SCRIPT do editoru prostého textu, například programu Poznámkový blok. Uložte skript s názvem AddSendAs.vbs. SPUSTIT SKRIPT.
Option Explicit
Dim OUTPUT_DELIMITER
OUTPUT_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 it
Dim FMA_EXCLUSIVE_LIST
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
Dim FMA_EXCLUSIVE_EXSVC
FMA_EXCLUSIVE_EXSVC = "\Exchange Services" & OUTPUT_DELIMITER

'Permission Type: Allow or Deny
const ACCESS_ALLOWED_OBJECT_ACE_TYPE = 5
const ADS_ACETYPE_ACCESS_ALLOWED = &h0
const ADS_ACETYPE_ACCESS_DENIED = &h1

'Flags: Specifies Inheritance
const ADS_ACEFLAG_INHERIT_ACE = &h2
const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &h4
const ADS_ACEFLAG_INHERIT_ONLY_ACE = &h8
const ADS_ACEFLAG_INHERITED_ACE = &h10
const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &h1f
const ADS_ACEFLAG_SUCCESSFUL_ACCESS = &h40
const ADS_ACEFLAG_FAILED_ACCESS = &h80

'Declare ADSI constants
Const ADS_OPTION_SECURITY_MASK = 3
Const ADS_OPTION_REFERRALS= 1
Const ADS_SECURITY_INFO_DACL = 4
Const ADS_CHASE_REFERRALS_NEVER = &h00
Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20
Const ADS_CHASE_REFERRALS_EXTERNAL = &h40

'output file name
Const EXPORT_FILE = "Send_As_Export"
Const ERROR_FILE = "Send_As_Errors"

' script mode
const MODE_INVALID = -1
const MODE_SETALL = 0
const MODE_EXPORT = 1
const MODE_IMPORT = 2
const SETALL = "-SETALL"
const EXPORT = "-EXPORT"
const IMPORT = "-IMPORT"

' argument index
Const ARG_INDEX_MODE = 1
Const ARG_INDEX_DC = 0
Const ARG_INDEX_FILENAME = 2

' column index in import/export file
Const COLUMN_INDEX_USERDISPLAYNAME = 0
Const COLUMN_INDEX_FMAALIAS = 1
Const COLUMN_INDEX_FMADISPLAYNAME = 2
Const COLUMN_INDEX_IFPUBLICDELEGATE = 3
Const COLUMN_INDEX_MAILBOXSTATUS = 4
Const COLUMN_INDEX_USERADSPATH = 5
Const COLUMN_INDEX_HOMEMDB = 6

Const EMPTYSTRING = ""
Const STRNO = "No Delegates"
Const STRYES = "Has Delegates"
Const MIN_ARG = 2
Const INIT_ARRAY_SIZE = 100

' Microsoft Exchange
Const EX_MB_SEND_AS_ACCESSMASK = &H00100
Const EX_FULLMailbox_AccessMask = 1
Const MESO = "Microsoft Exchange System Objects"
Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"

Const ForReading= 1
Const ForWriting= 2
Const ForAppending= 8
Const TristateTrue= -1
Const ADS_SCOPE_SUBTREE = 2

Dim objUser
Dim objSDMailBox
Dim objSDNTsecurity
Dim objDACLNTSD
Dim objNewACE

Dim sTrusteeAlias()
Dim sFMADeniedList
Dim sFMAExplicitAllow
Dim fACESendasFound
Dim dArraySize
Dim TotalACE
Dim i
Dim rootDSE
Dim conn
Dim objCommand
Dim objCmdDisplayName
Dim rsUsers
Dim FoundObject
Dim objFSO
Dim objfileImport
Dim objfileExport
Dim objfileError
Dim sImportFilePath
Dim cScriptMode
Dim dArgCount
Dim dArgExpected
Dim sDCServer
Dim sMailboxStatus
Dim sIfPublicDelegate
Dim sFMAUserDisplayName
Dim sExportFileName
Dim sErrorsFileName
Dim msPublicDelegates
Dim fError
Dim fOneError
Dim fFMAAllowed

On Error Resume Next
dArraySize = INIT_ARRAY_SIZE
ReDim Preserve sTrusteeAlias(dArraySize)

dArgCount = Wscript.Arguments.Count
If ( dArgCount < MIN_ARG ) Then
DisplaySyntax
End If

err.Clear
fError = False
fOneError = False
cScriptMode = MODE_INVALID
Select 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_INVALID
End Select
If (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then
DisplaySyntax
End 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("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
Wend
End 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("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 If

End If

objFSO.Close
objfileImport.Close
objfileExport.Close
objfileError.Close

Set objFSO = Nothing
Set objfileImport = Nothing
Set objfileExport = Nothing
Set objfileError = Nothing
Set objCommand = Nothing
Set conn = Nothing

WScript.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 If

Function FindAllFMAUsers (objSD)
Dim objACL
Dim objACE
Dim intACECount
Dim strIndent
Dim dAccessMaskBit
Dim dPosition
Dim 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 = Nothing
End Function

Function CheckSendAsACE (objDiscretionaryACL, sTAlias)
Dim objACE
Dim 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 Function

Function 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 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("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 If

End Function

Function 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
END SCRIPT

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo odvozené. To zahrnuje, ale není omezen pouze na předpokládané záruky obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu. Nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků.

Další informace o možnostech podpory, které jsou k dispozici od společnosti Microsoft naleznete na následujícím webu společnosti Microsoft:Produkty třetích stran, které tento článek popisuje jsou vyráběny společnostmi nezávislými na společnosti Microsoft. Společnost Microsoft neposkytuje žádnou záruku, implicitně předpokládanou ani jinou týkající se výkonu nebo spolehlivosti těchto produktů.
Vlastnosti

ID článku: 912918 - Poslední kontrola: 16. 1. 2017 - Revize: 2

Váš názor