Użytkownicy nie mogą wysyłać wiadomości e-mail z urządzeń przenośnych lub udostępnionych skrzynek pocztowych w programach Exchange 2000 Server i Exchange Server 2003

Ten artykuł został zarchiwizowany. Jest oferowany „taki, jaki jest” i nie będzie już aktualizowany.
Symptomy
Nie można wysłać wiadomości e-mail za pomocą programu Microsoft Exchange 2000 Server lub Microsoft Exchange Server 2003. Ponadto może być wyświetlany jeden z następujących komunikatów o błędach lub jeden z następujących raportów o niedostarczeniu (NDR).

Komunikaty o błędach

  • Odmowa dostępu
  • Nie masz uprawnień do wykonania tej operacji na tym obiekcie. Sprawdź kontakt dla tego folderu lub skontaktuj się z administratorem systemu.
  • Komunikat o błędzie spoza listy
  • MAPI_E_NO_ACCESS -2147024891
  • Nie można wysłać wiadomości pocztowej dla użytkownika NAZWA_UŻYTKOWNIKA (Wynik HRESULT:-2147024891). Wstrzymywanie użytkownika NAZWA_UŻYTKOWNIKA. (Błąd zabezpieczeń — nie można uzyskać dostępu do skrzynki pocztowej użytkownika).
  • Nie można znaleźć zasobu
Uwaga: Komunikat o błędzie „Access denied” (Odmowa dostępu) lub „Resource not found” (Nie można znaleźć zasobu) w programie Outlook Web Access jest wyświetlany, gdy użytkownik jest zalogowany jako pełnomocnik.

Raporty o niedostarczeniu

  • Ta wiadomość nie została dostarczona, ponieważ nie masz uprawnień do wysyłania poczty do tego adresata. W sprawie pomocy skontaktuj się z administratorem swojego systemu.
  • Nie można wysłać wiadomości przy użyciu tej skrzynki pocztowej. Nie masz uprawnień do wysyłania tej wiadomości w imieniu podanego użytkownika.
Wiadomo, że ten problem dotyczy następujących produktów innych firm:
  • BlackBerry Enterprise Server (BES) firmy Research In Motion (RIM)
  • GoodLink Wireless Messaging firmy Good Technology
Potwierdzono jednak, że ten problem nie dotyczy następujących produktów innych firm:
  • Unity Unified Messaging firmy Cisco
  • Migration Suite for Exchange firmy Quest
  • Narzędzie ExMerge dla programu Exchange firmy Microsoft
Ten problem może też dotyczyć niestandardowych aplikacji opartych na interfejsie MAPI lub programów opartych na obiektach CDO (Collaborative Data Object), które wysyłają wiadomości e-mail.

Ten problem może również dotyczyć innych produktów innych firm, które używają kont usługi do wysyłania wiadomości e-mail. Jeśli jest używany produkt innej firmy, którego dotyczy ten problem, zaleca się skontaktowanie z jego producentem w celu uzyskania pomocy w rozwiązaniu tego problemu. Aby uzyskać więcej informacji, zobacz sekcję „Więcej informacji”.

Ważne: Awaryjnym sposobem przywrócenia funkcji Wyślij jako w aplikacjach o podstawowym znaczeniu dla działalności firmy może być udzielenie uprawnienia Wyślij jako kontu usługi przez dziedziczenie w kontenerze usługi Active Directory lub nawet w całej domenie. W tym celu zapoznaj się ze szczegółowymi instrukcjami w sekcji Jak udzielić uprawnienia Wyślij jako wielu kontom. Chociaż jest to skuteczny sposób natychmiastowego rozwiązania problemu, należy także uwzględnić jego wpływ na bezpieczeństwo i zarządzanie. Uprawnienie Wyślij jako może zostać zastosowane również do tych kont, którym nie miało być udzielone. Ponadto trzeba uwzględnić to uprawnienie w przypadku przenoszenia kont użytkownika do innego kontenera.
Przyczyna
Ten problem może wystąpić, jeśli jest spełniony jeden z następujących warunków:
  • Nie masz uprawnień do wysyłania wiadomości e-mail jako właściciel skrzynki pocztowej na koncie, którego używasz do wysyłania wiadomości e-mail.
  • Używasz programu Microsoft Exchange 2000 Server z dodatkiem Service Pack 3 (SP3), w którym plik Store.exe ma numer wersji równy 6619.4 lub nowszy. Wersja 6619.4 została po raz pierwszy udostępniona w następującym artykule w bazie wiedzy Microsoft Knowledge Base:
    915358 Dostępna jest poprawka zmieniająca zachowanie uprawnień pełnego dostępu do skrzynki pocztowej w programie Exchange 2000 Server
  • Używasz programu Microsoft Exchange Server 2003 z dodatkiem Service Pack 1 (SP1), w którym plik Store.exe ma numer wersji równy 7233.51 lub nowszy. Wersja 7233.51 została po raz pierwszy udostępniona w następującym artykule w bazie wiedzy Microsoft Knowledge Base:
    895949 Zmiana działania uprawnień do korzystania z funkcji "Wyślij jako" w programie Exchange 2003
    Należy zauważyć, że ta poprawka nie wchodzi w skład dodatku Service Pack 2 (SP2) dla programu Microsoft Exchange 2003. Jeśli zainstalowano wersję tej poprawki dla programu Exchange Server 2003 z dodatkiem SP1, po uaktualnieniu do dodatku Service Pack 2 należy zainstalować wersję poprawki dla dodatku Service Pack 2.
  • Używasz programu Exchange Server 2003 z dodatkiem SP2, w którym plik Store.exe ma numer wersji równy 7650.23 lub nowszy. Wersja 7650.23 została po raz pierwszy udostępniona w następującym artykule w bazie wiedzy Microsoft Knowledge Base:
    895949 Zmiana działania uprawnień do korzystania z funkcji "Wyślij jako" w programie Exchange 2003
    Uwaga: Ta zmiana nie była wprowadzona w programach Exchange 2000 Server SP3, Exchange Server 2003 SP1 i Exchange 2003 SP2. Zmiana ta została zaimplementowana po wydaniu wszystkich powyższych dodatków Service Pack, lecz jest obsługiwana w każdym z nich. Ta zmiana zostanie wprowadzona w kolejnych dodatkach Service Pack dla tych produktów.

    Jeśli instalujesz program Exchange Server 2003 SP2, musisz również zainstalować dodatkową aktualizację, aby zachowanie to pozostało niezmienione, nawet jeśli wersja aktualizacji programu Exchange Server 2003 SP1 jest już zainstalowana.
Rozwiązanie
Przed wydaniem wersji pliku Store.exe, które zostały wymienione w sekcji Przyczyna, udzielenie uprawnienia Pełny dostęp do skrzynki pocztowej powodowało udzielenie w sposób pośredni uprawnienia do wysyłania wiadomości jako właściciel skrzynki pocztowej. Oznaczało to, że inne konto mające uprawnienie Pełny dostęp do skrzynki pocztowej umożliwiało wysłanie wiadomości e-mail wyglądających tak, jakby zostały wysłane przez właściciela skrzynki pocztowej.

Wielu klientów korzystających z programu Microsoft Exchange żądało rozdzielenia uprawnienia Wyślij jako od uprawnienia Pełny dostęp do skrzynki pocztowej. Przyczyny tych żądań były następujące:
  • Zapobieganie fałszowaniu poczty e-mail.
  • Zapewnienie, że wiadomości e-mail wysłane przez pełnomocnika zawsze będą wyraźnie odróżniać się od wiadomości e-mail wysłanych przez rzeczywistego właściciela skrzynki pocztowej.
Wszystkie nowe wersje Magazynu informacji programu Exchange będą jawnie wymagać uprawnienia Wyślij jako do wysyłania wiadomości e-mail jako właściciel skrzynki pocztowej. Jednak istnieją trzy wyjątki od tego wymagania, które przedstawiono poniżej:
  • Konto właściciela skrzynki pocztowej nie wymaga jawnie uprawnienia Wyślij jako dla swojej własnej skrzynki pocztowej.
  • Skojarzone konto zewnętrzne skrzynki pocztowej nie wymaga jawnie uprawnienia Wyślij jako.
  • Konto pełnomocnika, które ma także uprawnienie Pełny dostęp do skrzynki pocztowej, nie wymaga jawnie uprawnienia Wyślij jako.
Aby uzyskać więcej szczegółowych informacji dotyczących tych wyjątków, zobacz sekcję „Więcej informacji”.

Wszystkie inne konta, którym udzielono częściowego lub pełnego dostępu do skrzynki pocztowej, muszą teraz mieć jawnie udzielone uprawnienie Wyślij jako, aby umożliwiały wysyłanie poczty jako właściciel skrzynki pocztowej. Dotyczy to kont usług aplikacji, które wykonują funkcje, takie jak wysyłanie wiadomości e-mail do użytkowników urządzeń przenośnych.

Uprawnienie Wyślij jako musi zostać udzielone kontu usługi w każdym obiekcie użytkownika, który jest właścicielem skrzynki pocztowej. Nie można udzielić uprawnienia Wyślij jako na serwerze programu Exchange lub w obiekcie bazy danych i osiągnąć efektu udzielenia uprawnienia Wyślij jako dla wszystkich skrzynek pocztowych w bazie danych.

To zachowanie występuje, ponieważ uprawnienie Wyślij jako jest uprawnieniem usługi Active Directory dotyczącym obiektów usługi Active Directory, dla których zostało ustawione. Udzielenie uprawnienia Wyślij jako w obiekcie bazy danych programu Exchange daje użytkownikowi uprawnienie do uprawnienia Wyślij jako w samej bazie danych. Jednak nie daje użytkownikowi uprawnienia do użytkowników z uprawnieniem Wyślij jako, których skrzynki pocztowe znajdują się w bazie danych.

Uwaga: Udzielenie uprawnienia Odbierz jako w bazie danych programu Exchange jest funkcjonalnym odpowiednikiem udzielenia uprawnienia Pełny dostęp do skrzynki pocztowej dotyczącego wszystkich skrzynek pocztowych w bazie danych. Jest to różnica w stosunku do zachowania uprawnienia Wyślij jako.

W przypadku uprawnienia Wyślij jako uprawnienie jest stosowane tylko do samego obiektu bazy danych. Nie jest ono stosowane do skrzynek pocztowych w bazie danych. Uprawnienie Odbierz jako jest ewidentnie dziedziczone przez wszystkie skrzynki pocztowe znajdujące się w bazie danych.

Aby lepiej zrozumieć różnicę między tymi dwoma uprawnieniami, należy pomyśleć o wszystkich skrzynkach pocztowych w bazie danych tak, jakby były folderami w jednej skrzynce pocztowej (skrzynka pocztowa „baza danych”). Jeśli masz pełny dostęp do bazy danych, masz uprawnienie dostępu do całej zawartości bazy danych. Obejmuje to wszystkie skrzynki pocztowe.

Uprawnienie Wyślij jako jest stosowane do tożsamości obiektu użytkownika w usłudze Active Directory, a nie do zawartości skrzynek pocztowych przechowywanych w bazie danych. Podczas wysyłania wiadomości e-mail nie są wysyłane z danej skrzynki pocztowej lub bazy danych, ale od użytkownika. Użytkownikiem może być właściciel skrzynki pocztowej lub dowolne inne konto mające uprawnienie Wyślij jako.

Aby jawnie udzielić innemu kontu uprawnienia do wysyłania jako właściciel skrzynki pocztowej, wykonaj następujące kroki:
  1. Uruchom konsolę zarządzania Użytkownicy i komputery usługi Active Directory.
  2. Upewnij się, że w menu Widok zaznaczono opcję Opcje zaawansowane. Jeśli ta opcja nie będzie zaznaczona, nie będzie wyświetlana strona Zabezpieczenia dla obiektów kont użytkowników.
  3. Otwórz właściwości konta użytkownika, które jest właścicielem skrzynki pocztowej.
  4. Kliknij kartę Zabezpieczenia.
  5. Jeśli konto nie znajduje się jeszcze na liście nazw grup lub użytkowników, dodaj konto, które ma mieć uprawnienie Wyślij jako dla tego użytkownika.
  6. W polu Uprawnienia kliknij pole Zezwalaj dotyczące uprawnienia „Wyślij jako” dla odpowiedniego konta.
  7. Kliknij przycisk OK.
  8. Uruchom usługę magazynu informacji programu Microsoft Exchange na właściwym serwerze Exchange.
Uwaga: W przypadku nieuruchomienia ponownie usługi Magazyn informacji programu Microsoft Exchange usługa ta dokona aktualizacji pamięci podręcznej uprawnień, aby nowe uprawnienia zadziałały zgodnie z wartością określoną w następującym podkluczu rejestru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem


Nazwa wartości: Mailbox Cache Age Limit
Typ wartości: REG_DWORD
Podstawa: Dziesiętna
Dane wartości: Limit czasowy przechowywania w pamięci podręcznej informacji skrzynki pocztowej, w minutach.
Domyślna wartość dla tego wpisu rejestru to 120 minut (dwie godziny). Po zmodyfikowaniu tego wpisu rejestru należy ponownie uruchomić usługę Magazynu informacji programu Microsoft Exchange.

Uwaga: Ustawienie niskich wartości limitu czasu może wpłynąć na wydajność serwera.

Jak udzielić uprawnienia Wyślij jako wielu kontom

Przykładowy skrypt podany na końcu tego artykułu będzie wyszukiwał w domenie usługi katalogowej Active Directory konta, które mają uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie mają dla skrzynki pocztowej uprawnienia Wyślij jako. Są to typowe konta usług lub zasobów, na które ma wpływ ta zmiana zabezpieczeń. Skrypt może wygenerować plik eksportu, który można przejrzeć i edytować, a następnie zaimportować z powrotem w celu udzielenia uprawnienia Wyślij jako kontom, które wymagają tego uprawnienia.

Uprawnienia Wyślij jako można też udzielić przez dziedziczenie w każdym obiekcie użytkownika w domenie lub kontenerze usługi Active Directory. Udzielenie uprawnienia Wyślij jako tą metodą może spowodować udzielenie go obiektom, które nie powinny mieć tego uprawnienia. Ponadto możliwa jest utrata uprawnienia przez obiekty, które zostaną przeniesione z kontenera. Dlatego ta metoda nie jest preferowana i przed jej zastosowaniem należy dokładnie przeanalizować zmiany w zabezpieczeniach, które powstaną na skutek jej użycia.

Aby udzielić uprawnienia Wyślij jako jednemu kontu lub wszystkim kontom użytkowników w domenie lub kontenerze usługi Active Directory, wykonaj następujące kroki:
  1. Uruchom konsolę zarządzania Użytkownicy i komputery usługi Active Directory.
  2. Upewnij się, że w menu Widok zaznaczono opcję Opcje zaawansowane. Jeśli ta opcja nie będzie zaznaczona, nie będzie wyświetlana strona Zabezpieczenia dla obiektów domeny i kontenera.
  3. Otwórz właściwości domeny lub kontenera, a następnie kliknij stronę Zabezpieczenia.
  4. Kliknij przycisk Zaawansowane.
  5. Jeśli konto, które wymaga uprawnienia, nie znajduje się jeszcze na liście, kliknij przycisk Dodaj, a następnie wybierz konto. W przeciwnym razie kliknij dwukrotnie konto, aby je edytować.
  6. Na liście Zastosuj do kliknij pozycję Obiekty użytkownik.
  7. Udziel kontu uprawnienia Wyślij jako.
  8. Klikaj przycisk OK do czasu zamknięcia wszystkich okien i zapisania wszystkich zmian.
Uwaga: Skrypt opisany na końcu tego artykułu uwzględnia uprawnienia dziedziczone. Dlatego w przypadku udzielenia uprawnienia Wyślij jako przy użyciu tej metody konta z odziedziczonym uprawnieniem Wyślij jako staną się niewidoczne dla skryptu. Aby później przetworzyć te konta za pomocą skryptu, należy najpierw usunąć odziedziczone uprawnienie Wyślij jako.

Specjalne reguły dotyczące kont chronionych za pomocą obiektów adminSDHolder

Użycie skryptu w celu udzielenia uprawnienia Wyślij jako właścicielowi skrzynki pocztowej, który jest również administratorem domeny, spowoduje, że uprawnienie nie będzie obowiązywać. Zdecydowanie zaleca się, aby do obsługi skrzynek pocztowych nie używać kont użytkowników, które mają prawa administratora domeny lub są chronione za pomocą obiektów adminSDHolder.

Obiekt adminSDHolder jest szablonem kont mających szerokie prawa administracyjne w usłudze Active Directory. Aby zapobiec niezamierzonemu zwiększaniu uprawnień, każde konto chronione za pomocą obiektu adminSDHolder musi mieć prawa dostępu zgodne z prawami wymienionymi w obiekcie adminSDHolder.

Jeśli zmienisz prawa lub uprawnienia w obiekcie adminSDHolder chronionego konta, zadanie w tle w ciągu kilku minut cofnie tę zmianę. Na przykład jeśli udzielisz uprawnienia Wyślij jako w obiekcie administratora domeny kontu usługi aplikacji, zadanie w tle automatycznie wycofa to uprawnienie.

Dlatego nie można udzielić uprawnienia Wyślij jako kontu usługi aplikacji, które jest chronione za pomocą obiektu adminSDHolder, o ile nie zostanie zmieniony sam obiekt adminSDHolder. Zmiana obiektu adminSDHolder spowoduje zmianę uprawnień dostępu dla wszystkich chronionych kont. Obiekt adminSDHolder można zmienić tylko po pełnym przejrzeniu następstw dla kwestii zabezpieczeń, które może spowodować dana zmiana.

Aby skojarzyć skrzynkę pocztową z kontem, które jest chronione za pomocą obiektu adminSDHolder, wykonaj następujące kroki:
  1. Uruchom konsolę zarządzania Użytkownicy i komputery usługi Active Directory.
  2. Upewnij się, że w menu Widok zaznaczono opcję Opcje zaawansowane. Jeśli ta opcja nie będzie zaznaczona, nie będzie wyświetlana strona Zabezpieczenia dla obiektów kont użytkowników.
  3. Utwórz konto zwykłego użytkownika, które będzie właścicielem skrzynki pocztowej.
  4. Przypisz konto zwykłego użytkownika na serwerze programu Exchange.
  5. Otwórz właściwości nowego konta właściciela skrzynki pocztowej.
  6. W polu Exchange — zaawansowane udziel chronionemu kontu administratora uprawnienia Pełny dostęp do skrzynki pocztowej.
  7. Na stronie Zabezpieczenia udziel chronionemu kontu administratora uprawnienia Wyślij jako.
  8. Kliknij przycisk OK, aby zamknąć właściwości obiektu właściciela skrzynki pocztowej.
  9. Kliknij prawym przyciskiem myszy obiekt konta właściciela skrzynki pocztowej, a następnie kliknij polecenie Wyłącz konto, aby wyłączyć konto ze wszystkich opcji logowania.
Aby uzyskać więcej informacji dotyczących kont chronionych za pomocą obiektu adminSDHolder, kliknij następujące numery artykułów w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:
907434 Prawo „Wysyłanie jako” jest usuwane z obiektu użytkownika po skonfigurowaniu prawa „Wysyłanie jako” w przystawce Użytkownicy i komputery usługi Active Directory w programie Exchange Server
318180 AdminSDHolder thread affects transitive members of distribution groups
817433 Delegated permissions are not available and inheritance is automatically disabled
306398 AdminSDHolder object affects delegation of control for past administrator accounts

Specjalne zadania dla serwera BlackBerry Enterprise Server

Zadanie 1: Upewnij się, że serwer BlackBerry Enterprise Server działa jako osobne, unikatowe konto.

Upewnij się, że serwer BlackBerry Enterprise Server działa jako osobne konto, utworzone wyłącznie na potrzeby zadań administrowania. Domyślna nazwa konta to „BESAdmin”.

Jeśli posiadasz osobne konto na potrzeby administrowania serwerem BlackBerry Enterprise Server, przejdź do zadania numer 2.

Jeśli nie masz osobnego konta, utwórz je. Następnie używaj go do wykonywania zadań administracyjnych. Aby uzyskać informacje na ten temat, przejdź do jednej z witryn w sieci Web dotyczących rozwiązania BlackBerry, w której omówiono używaną wersję serwera BlackBerry Enterprise Server.

Jeśli używasz serwera BlackBerry Enterprise Server 4.0 lub BlackBerry Enterprise Server 4.1, odwiedź następującą witrynę firmy BlackBerry w sieci Web: Jeśli używasz serwera BlackBerry Enterprise Server 3.6, odwiedź następującą witrynę firmy BlackBerry w sieci Web:

Zadanie 2: Upewnij się, że do konta usługi BlackBerry Enterprise Server przypisane są odpowiednie uprawnienia.

Sprawdź, czy do konta usługi BlackBerry Enterprise Server przypisane są odpowiednie uprawnienia.

Uwaga: Jeśli konto znajduje się w domenie, upewnij się, że należy ono tylko do jednej grupy Użytkowników domeny. Na kontrolerze domeny konto powinno należeć do grupy Wbudowanych administratorów.
  1. Na serwerze BlackBerry Enterprise Server wykonaj następujące kroki:
    1. Upewnij się, że konto należy do grupy Administratorów lokalnych.
    2. Przypisz do konta uprawnienia Zaloguj lokalnie oraz Zaloguj w trybie usługi.
  2. Udziel serwerowi Exchange uprawnień administratora tylko do podglądu na poziomie grupy administracyjnej. Aby to zrobić, wykonaj następujące kroki:
    1. W programie Exchange System Manager kliknij prawym przyciskiem myszy pierwszą nazwę grupy administracyjnej serwera Exchange Server, a następnie wybierz polecenie Deleguj kontrolę.
    2. Należy zwrócić uwagę na to, że konto usługi BlackBerry Enterprise Server widnieje na liście jako Administrator serwera Exchange tylko do podglądu (Exchange View-Only Administrator).
  3. Na poziomie serwera udziel uprawnień „Wyślij jako”, „Odbierz jako” oraz „Administruj magazynem informacji” każdemu serwerowi Exchange Server. Aby to zrobić, wykonaj następujące kroki:
    1. W programie Exchange System Manager kliknij prawym przyciskiem myszy pierwszą nazwę grupy administracyjnej serwera Exchange Server, a następnie rozwiń grupę Servers (Serwery).
    2. Kliknij prawym przyciskiem myszy serwer Exchange Server, a następnie kolejno polecenia Properties (Właściwości) i Security (Zabezpieczenia).
    3. W górnym okienku wybierz konto usługi BlackBerry Enterprise Server. Upewnij się, że w dolnym okienku uprawnienia „Wyślij jako”, „Odbierz jako” oraz „Administruj magazynem informacji” są ustawione jako Allow (Zezwalaj).
    4. Powtórz kroki 3b i 3c dla każdego serwera Exchange Server.
  4. Udziel uprawnień „Wyślij jako”, „Odbierz jako” oraz „Administruj magazynem informacji” magazynowi skrzynki pocztowej. Aby to zrobić, wykonaj następujące kroki:
    1. W programie Exchange System Manager kliknij prawym przyciskiem myszy pierwszą nazwę grupy administracyjnej serwera Exchange, a następnie rozwiń grupę Servers (Serwery).
    2. Rozwiń pierwszą grupę magazynu skrzynki pocztowej, kliknij prawym przyciskiem myszy każdy magazyn skrzynki pocztowej, a następnie kliknij kolejno polecenia Properties (Właściwości) i Security (Zabezpieczenia).
    3. W górnym okienku wybierz konto usługi BlackBerry Enterprise Server. Upewnij się, że w dolnym okienku uprawnienia „Wyślij jako”, „Odbierz jako” oraz „Administruj magazynem informacji” są ustawione jako Allow (Zezwalaj).
    4. Powtórz kroki 4b i 4c dla każdego magazynu skrzynki pocztowej każdego serwera Exchange Server.
  5. W przystawce Użytkownicy i komputery usługi Active Directory wykonaj następujące kroki:
    1. Prawym przyciskiem myszy kliknij użytkownika, dla którego chcesz dodać uprawnienia, a następnie kliknij polecenie Properties (Właściwości).
    2. Na karcie Security (Zabezpieczenia) dodaj konto usługi BlackBerry Enterprise Server, a następnie kliknij, aby zaznaczyć pole wyboru Send As (Wyślij jako).
Jeśli nie używasz programu Exchange Server 2003, przejdź do zadania nr 3.

Zadanie 3: Wyczyść pamięć podręczną serwera BlackBerry Enterprise Server

Aby wyczyścić pamięć podręczną uprawnień w Magazynie informacji, należy ponownie uruchomić usługi związane z serwerem Blackberry i ponownie uruchomić usługę Magazyn informacji programu Microsoft Exchange. Po ponownym uruchomieniu usługi Magazyn informacji należy ponownie uruchomić usługi związane z serwerem RIM Blackberry, aby udzielić kontu „BESAdmin” nowo dodanego uprawnienia Wyślij jako w odniesieniu do Magazynu informacji programu Exchange.

Aby uzyskać więcej informacji dotyczących szczegółowych wymagań związanych z serwerem Blackberry, odwiedź następującą witrynę BlackBerry w sieci Web:
Więcej informacji
Uprawnienia dostępu do skrzynki pocztowej i folderu programu Exchange są podzielone między bazy danych usługi Active Directory i programu Microsoft Exchange. Chociaż oba rodzaje uprawnień są ustawiane w konsoli zarządzania użytkownikami usługi Active Directory, różne uprawnienia są przechowywane w dwóch osobnych lokalizacjach.

Jeśli uprawnienie jest ustawiane na stronie Zabezpieczenia danego obiektu, jest ono uprawnieniem usługi Active Directory. Jeśli jest ono ustawiane na stronie Exchange — zaawansowane, Prawa skrzynki pocztowej, jest ono uprawnieniem bazy danych programu Exchange. Dlatego podczas próby uzyskania dostępu do strony Prawa skrzynki pocztowej, gdy baza danych użytkownika jest niedostępna, jest wyświetlany następujący komunikat o błędzie:
Usługa Magazyn informacji firmy Microsoft jest niedostępna.
Uprawnienie Skojarzone konto zewnętrzne jest wyjątkiem od reguły stanowiącej, że uprawnienia ustawiane za pomocą strony Exchange — zaawansowane, Prawa skrzynki pocztowej są przechowywane w bazie danych programu Exchange. Uprawnienie Skojarzone konto zewnętrzne nie jest nawet prawdziwym uprawnieniem, ale metodą ustawiania atrybutu msExchMasterAccountSID usługi Active Directory. Atrybut msExchMasterAccountSID, chociaż sam nie jest uprawnieniem, kontroluje działanie innych uprawnień. Aby uzyskać szczegółowe informacje dotyczące atrybutu msExchMasterAccountSID, zobacz sekcję "Skojarzone konta zewnętrzne".

Uwaga: Atrybut msExchMailboxSecurityDescriptor usługi Active Directory jest kopią zapasową podzbioru efektywnych praw skrzynki pocztowej. Jest on używany wewnętrznie przez program Exchange w wielu różnych celach. Ponadto atrybut msExchMailboxSecurityDescriptor jest aktualizowany w celu zachowania zgodności z bieżącymi efektywnymi prawami, jeśli administratorzy używają obsługiwanych interfejsów w celu przypisywania praw.

Jeśli jednak atrybut msExchMailboxSecurityDescriptor zostanie zmodyfikowany bezpośrednio przez administratora, zmiany nie zostaną przekazane do magazynu programu Exchange i nie zaczną obowiązywać. Nie ma gwarancji synchronizacji z rzeczywistymi prawami skrzynki pocztowej. Nie należy używać atrybutu msExchMailboxSecurityDescriptor w celu odczytywania lub zapisywania praw skrzynki pocztowej.

Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
310866 How to set Exchange Server 2003 and Exchange 2000 Server mailbox rights on a mailbox that exists in the information store

Uprawnienie Pełny dostęp do skrzynki pocztowej jest uprawnieniem magazynu bazy danych programu Exchange. Uprawnienie Wyślij jako jest uprawnieniem usługi Active Directory. Zanim plik Store.exe programu Exchange został zmieniony w sposób opisany w tym artykule, system Exchange nie sprawdzał ustawienia uprawnienia Wyślij jako, jeśli nadawca miał już uprawnienie Pełny dostęp do skrzynki pocztowej.

Uwaga: Można udzielić uprawnienia Wyślij jako bez udzielania uprawnienia Pełny dostęp do skrzynki pocztowej. W takich sytuacjach program Exchange zawsze uwzględniał uprawnienie Wyślij jako.

Uwzględnienie uprawnienia Wyślij jako w uprawnieniu Pełny dostęp do skrzynki pocztowej umożliwiło administratorom serwera Exchange udzielanie sobie czynnych uprawnień Wyślij jako do dowolnej skrzynki pocztowej znajdującej się na administrowanym przez nich serwerze. Administratorzy mogą wykonać tę czynność, ponieważ mają pełną efektywną kontrolę nad bazą danych programu Exchange. Przez oddzielenie uprawnienia Wyślij jako od uprawnienia Pełny dostęp do skrzynki pocztowej administratorzy usługi Active Directory mogą teraz zablokować ten proces, ponieważ uprawnienie Wyślij jako jest uprawnieniem usługi Active Directory, a nie magazynu programu Exchange. Dlatego proces ten niekoniecznie znajduje się pod kontrolą administratorów programu Exchange.

Właściciele skrzynek pocztowych

Właściciel skrzynki pocztowej jest definiowany jako konto użytkownika usługi Active Directory, którego atrybut msExchMailboxGUID przenosi globalny unikatowy identyfikator numeryczny (GUID) dla danej skrzynki pocztowej. Tylko jedno konto w całym lesie może przenosić identyfikator GUID dla danej skrzynki pocztowej. W przypadku próby ustawienia drugiego właściciela z takim samym identyfikatorem GUID, usługa Active Directory odrzuci zmianę i zgłosi błąd.

Po włączeniu obsługi skrzynki pocztowej na koncie lub podłączeniu odłączonej skrzynki pocztowej do konta usługi Active Directory, identyfikator GUID skrzynki pocztowej zostanie automatycznie ustawiony na tym koncie. Sytuacje, w których jest niezbędne lub zalecane, aby administratorzy ręcznie ustawiali identyfikator GUID skrzynki pocztowej, należą do rzadkości.

Skojarzone konta zewnętrzne

Typowa konfiguracja programu Exchange to instalacja programu Exchange w lesie zasobów. Las zasobów to las inny niż las, w którym znajdują się konta użytkowników mających skrzynki pocztowe w systemie. Stanowi to problem, ponieważ atrybut msExchMailboxGUID można ustawić tylko w obiektach znajdujących się w tym samym lesie co serwer programu Exchange.

Rozwiązaniem tego problemu jest włączenie obsługi skrzynki pocztowej na koncie w lesie serwera programu Exchange. Następnie to obsługujące skrzynkę pocztową konto można połączyć z innym kontem w lesie lub domenie systemu Microsoft Windows NT 4.0. Można to zrobić udzielając uprawnienia Skojarzone konto zewnętrzne. Uprawnienia Skojarzone konto zewnętrzne można udzielić tylko jednemu kontu. Wybrane konto musi znajdować się w innym lesie.

Podczas ustawiania uprawnienia Skojarzone konto zewnętrzne w atrybucie msExchMasterAccountSID właściciela skrzynki pocztowej jest zapisywana wartość SID dotycząca konta zewnętrznego. Dlatego też nie jest to w ogóle uprawnienie, ale wygodna metoda kontrolowania wartości atrybutu msExchMasterAccountSID. Po ustawieniu atrybutu msExchMasterAccountSID kontu zewnętrznemu, które ma dany identyfikator SID, zostanie udzielony dostęp do programu Exchange, tak jakby było to rzeczywiste konto właściciela skrzynki pocztowej.

Należy zauważyć, że dotyczy to tylko dostępu do programu Exchange, a nie do całej usługi Active Directory. Ponadto po ustawieniu uprawnienia Skojarzone konto zewnętrzne należy konto właściciela skrzynki pocztowej oznaczyć jako wyłączone z logowania, dzięki czemu wszystkie uprawnienia będą działać zgodnie z oczekiwaniami.
300456 Client permissions and delegations do not persist after being assigned in Exchange 2000

Scenariusze udzielania pełnomocnictwa

Pełnomocnik to użytkownik, któremu udzielono częściowego dostępu do innej skrzynki pocztowej oraz prawa do wysyłania wiadomości e-mail w imieniu właściciela tej skrzynki pocztowej. Typowy scenariusz udzielania pełnomocnictwa obejmuje udzielenie asystentowi administracyjnemu dostępu pełnomocnika do kalendarza przełożonego. Zazwyczaj pełnomocnik może odczytywać i aktualizować kalendarz. Ponadto pełnomocnik może odpowiadać na wiadomości e-mail w imieniu przełożonego.

Dostęp pełnomocnika jest udzielany przez dodanie pełnomocnika do wielowartościowego atrybutu publicDelegates właściciela skrzynki pocztowej. Wszyscy użytkownicy wymienieni w tym atrybucie mają uprawnienie Wyślij w imieniu dla właściciela skrzynki pocztowej. Gdy tacy pełnomocnicy wysyłają wiadomość e-mail, w której polu Od znajduje się nazwa właściciela, w polu Od wiadomości e-mail będzie wyświetlana następującą wartość:
<Nazwa pełnomocnika> w imieniu <Właściciel skrzynki pocztowej>
Jednak wiadomość e-mail jest wysyłana od pełnomocnika, a nie od właściciela skrzynki pocztowej (ani jako od właściciela).

Poniżej przedstawiono listę dwóch interfejsów, których można użyć w celu udzielenia uprawnienia Wyślij w imieniu i uprawnień pełnomocnika:
  • W obiekcie właściciela skrzynki pocztowej uprawnienia Wyślij w imieniu można udzielić w oknie dialogowym Exchange — ogólne.
  • W programie Microsoft Outlook należy użyć okna dialogowego Pełnomocnicy.
Działanie obu tych metod polega na ustawianiu atrybutu publicDelegates. Jednak metoda z użyciem programu Outlook umożliwia także udzielenie pełnomocnikowi określonych uprawnień do folderów. Pełnomocnikowi można także udzielić uprawnień bezpośrednio z właściwości pojedynczego folderu programu Outlook.

W niektórych przypadkach ustawienie atrybutu publicDelegates w programie Outlook może być niemożliwe.
329622 "Send on behalf" permission is not assigned to a user after you delegate access in Outlook

Jeśli udzielono dostępu pełnomocnika do skrzynki pocztowej, pełnomocnik może używać uprawnienia Wyślij w imieniu, nawet jeśli nie udzielono mu dostępu do żadnego z folderów w skrzynce pocztowej. Najważniejszym uprawnieniem pełnomocnika jest uprawnienie Wyślij w imieniu. Uprawnienia dostępu do folderów w skrzynce pocztowej są odrębnymi uprawnieniami i należy ich udzielać oprócz uprawnień pełnomocnika.

Zazwyczaj pełnomocnicy używają programu Microsoft Outlook w celu uzyskiwania dostępu do pojedynczych folderów, do których udzielono im uprawnienia. Można to zrobić, klikając polecenie Otwórz w menu Plik programu Outlook, a następnie klikając polecenie Folder innego użytkownika.

Alternatywnie pełnomocnicy mogą otworzyć skrzynkę pocztową użytkownika, wyświetlając ją jako dodatkową skrzynkę pocztową na karcie Zaawansowane w swoich profilach programu Outlook. Ta metoda spowoduje, że skrzynka pocztowa użytkownika będzie wyświetlana w drzewie folderów programu Outlook pełnomocnika. Ponadto ta metoda umożliwia dostęp do wszystkich folderów w skrzynce pocztowej, do których udzielono pełnomocnikowi uprawnień.

Czasami konieczne jest, aby pełnomocnik miał uprawnienie Wyślij w imieniu, a czasami, aby miał uprawnienie Wyślij jako. Aby skonfigurować pełnomocnika z tymi dwoma uprawnieniami, wykonaj następujące kroki:
  • Udziel pełnomocnikowi uprawnienia Pełny dostęp do skrzynki pocztowej. Tej czynności nie można wykonać w programie Outlook. Tę czynność musi wykonać administrator usługi Active Directory na koncie właściciela skrzynki pocztowej. Udzielenie uprawnień właściciela do każdego folderu w skrzynce pocztowej nie daje uprawnienia odpowiadającego uprawnieniu Pełny dostęp do skrzynki pocztowej.
  • Nie udzielaj pełnomocnikowi uprawnienia Wyślij jako. Jeśli udzielisz pełnomocnikowi uprawnienia Wyślij jako, wszystkie wiadomości e-mail wysłane przez pełnomocnika będą wysyłane z użyciem uprawnienia Wyślij jako. Pełnomocnik nie będzie już mógł używać uprawnienia Wyślij w imieniu.
W tym scenariuszu pełnomocnik, który chce używać uprawnienia Wyślij jako, powinien zalogować się do swojej skrzynki pocztowej. Jeśli pełnomocnik będzie odpowiadać na wiadomość e-mail znajdującą się już w jednym z folderów użytkownika lub przesyłać ją dalej, wiadomość e-mail zostanie automatycznie wysłania w imieniu użytkownika. Jeśli pełnomocnik utworzy nową wiadomość e-mail w imieniu użytkownika, w polu Od będzie musiał wprowadzić nazwę użytkownika, aby wiadomość e-mail została wysłana w imieniu użytkownika.

Niezależnie do tego, czy pełnomocnik ma otwarte foldery użytkownika, czy całą jego skrzynkę pocztową jako drugą skrzynkę pocztową, wszystkie wysyłane przez niego wiadomości e-mail będą wysyłane przy użyciu uprawnienia Wyślij w imieniu, jeśli jego własna skrzynka pocztowa będzie podstawową skrzynką pocztową w bieżącym profilu programu Outlook.

Gdy pełnomocnik chce wysłać wiadomość e-mail jako użytkownik, powinien zalogować się do skrzynki pocztowej użytkownika, używając innego profilu programu Outlook, który otwiera tylko skrzynkę pocztową użytkownika. Wiadomości e-mail wysłane, gdy pełnomocnik będzie zalogowany do tego profilu, będą automatycznie wysyłane jako wiadomości od użytkownika.

Znajdowanie kont, które mają uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie mają uprawnienia Wyślij jako

Przykładowy skrypt opisany w tej sekcji może w danej chwili wyszukiwać w jednej domenie usługi Active Directory konta użytkowników, którym udzielono uprawnienia Pełny dostęp do skrzynki pocztowej bez uprawnienia Wyślij jako.

Ważne: Przed dokonaniem zmiany uprawnień zapoznaj się z sekcją Informacje o właścicielach skrzynek pocztowych mających pełnomocników

Skrypt ma trzy następujące tryby:
  • Export: Można wyeksportować listę użytkowników, którzy mają uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie mają uprawnienia Wyślij jako. Następnie można wyświetlić tę listę w Notatniku lub innym edytorze, aby usunąć konta, które nie powinny mieć uprawnienia Wyślij jako.
  • Import: Można zaimportować listę użytkowników, którzy mają uprawnienie Pełny dostęp do skrzynki pocztowej i którym należy też udzielić uprawnienia Wyślij jako. Należy zauważyć, że za pomocą tego skryptu nie można udzielić i uprawnienia Pełny dostęp do skrzynki pocztowej i uprawnienia Wyślij jako. Każde konto musi mieć już uprawnienie Pełny dostęp do skrzynki pocztowej, aby można było mu udzielić uprawnienia Wyślij jako.
  • SetAll: Uprawnienia Wyślij jako można udzielić wszystkim użytkownikom w domenie, którzy mają już uprawnienie Pełny dostęp do skrzynki pocztowej dla określonej skrzynki pocztowej. Zostanie wygenerowany plik dziennika w takim samym formacie jak plik eksportu. Ten tryb stanowi odpowiednik użycia trybów Export i Import bez edytowania pliku eksportu.
Uwaga: Ten skrypt nie oferuje funkcji cofania.

Uprawnienia wymagane dla skryptu

Skrypt należy uruchomić po zalogowaniu się na koncie administracyjnym z tego samego lasu, w którym znajdują się konta właściciela skrzynki pocztowej. Skrypt może nie działać z kontami, które mają uprawnienia administracyjne w różnych lasach. Skrypt może także nie działać, jeśli zostanie uruchomiony ze stacji roboczej, którą dołączono do lasu innego niż ten, do którego dołączono konta właściciela skrzynki pocztowej.

Uwzględniając te warunki, w jednej sesji logowania można uruchomić skrypt za pomocą wielu kont administracyjnych, używając polecenia RunAs.exe. Ta procedura może być użyteczna, jeśli użytkownik ma podzielone na segmenty uprawnienia w usłudze Active Directory i na serwerze programu Exchange Server i nie ma jednego konta umożliwiającego administrowanie wszystkimi serwerami programu Exchange lub wszystkimi domenami usługi Active Directory. Można otworzyć wiersz polecenia, aby uruchomić skrypt za pomocą każdego konta administracyjnego. Rozpatrzmy następujący przykład:
RunAs.exe /użytkownik:domena\konto CMD.EXE
Uwaga: W jednej domenie nie należy jednocześnie uruchamiać wielu kopii skryptu.

Pola znajdujące się w pliku eksportu opisano poniżej. Te pola zostały opisane w kolejności ich występowania w pliku eksportu.
  • Nazwa wyświetlana konta właściciela skrzynki pocztowej

    Ten sam właściciel skrzynki pocztowej może być wymieniony w kilku wierszach w pliku wynikowym. Stanie się tak, jeśli wiele kont będzie miało uprawnienie Pełny dostęp do skrzynki pocztowej dla tej samej skrzynki pocztowej.
  • Domena i nazwa logowania konta, które ma uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie ma uprawnienia Wyślij jako

    Jedno konto może być wielokrotnie wymienione w pliku eksportu, jeśli ma ono dostęp do wielu skrzynek pocztowych. Prawdopodobnie tak będzie w przypadku konta usługi aplikacji lub osoby, które służy do zarządzania wieloma skrzynkami pocztowymi zasobów.
  • Nazwa wyświetlania konta, które ma uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie ma uprawnienia Wyślij jako

    To pole jest używane oprócz pola Nazwa logowania, aby ułatwić identyfikację konta.
  • Stan pełnomocnika właściciela skrzynki pocztowej

    Jeśli właściciel skrzynki pocztowej ma pełnomocników, wartością pola jest Ma pełnomocników. Jeśli właściciel skrzynki pocztowej nie ma pełnomocników, wartością pola jest Brak pełnomocników.
  • Stan włączenia lub wyłączenia konta właściciela skrzynki pocztowej

    To pole ułatwia identyfikację kont zasobów lub kont w skrzynkach pocztowych w różnych lasach. Zazwyczaj te konta są wyłączone.
  • Pełna nazwa wyróżniająca konta właściciela skrzynki pocztowej

    To pole ułatwia identyfikację domeny oraz kontenera konta właściciela skrzynki pocztowej.
  • Pełna nazwa wyróżniająca bazy danych skrzynek pocztowych właściciela skrzynki pocztowej

    To pole zawiera bazę danych, grupę przechowywania, serwer oraz grupę administracyjną skrzynki pocztowej.
W poniższym przykładzie użytkownik mający nazwę logowania „Brak_Wyślij_jako” ma uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie ma uprawnienia Wyślij jako do skrzynki pocztowej „Właściciel skrzynki pocztowej”.
"""Właściciel skrzynki pocztowej""" """Domena\Brak_Wyślij_jako""" """Nie wysyłaj jako użytkownik""" """Ma pełnomocników""" """Włączone""" [pominięto dodatkowe pola]

Konfiguracja administracyjnej stacji roboczej na potrzeby skryptu

Ten skrypt używa interfejsów zarządzania programu Exchange w celu komunikowania się z serwerami programu Exchange. Dlatego skrypt należy uruchomić na serwerze programu Exchange lub stacji roboczej, na której jest zainstalowany administrator systemu programu Exchange.

Edytowanie pliku eksportu

Plik eksportu to zwykły plik tekstowy w formacie Unicode, co umożliwia korzystanie z zestawów znaków dla różnych języków. Niektóre edytory tekstów mogą nie umożliwiać prawidłowego wyświetlania lub edytowania tego pliku lub mogą zapisywać go w formacie pliku tekstowego ANSI lub ASCII. Narzędzie Notatnik w systemach Microsoft Windows XP, Microsoft Windows 2000 i Microsoft Windows 2003 poprawnie obsługuje pliki tekstowe w formacie Unicode. Ponadto pliki tekstowe w formacie Unicode są poprawnie obsługiwane w programie Microsoft Excel.

Dane w pliku wyjściowym są rozdzielane tabulatorami, a wartość każdego pola jest zamknięta w potrójnym cudzysłowie. Znaki potrójnego cudzysłowu są stosowane, aby importowanie i eksportowanie z programu Excel było bardziej deterministyczne. W programie Excel znaki potrójnego cudzysłowu zostaną zamienione na znaki pojedynczego cudzysłowu, a przy ponownym zapisywaniu pliku w formacie Unicode zostaną przywrócone znaki potrójnego cudzysłowu. Zapoznaj się z następującymi instrukcjami, aby poprawnie otworzyć i zapisać plik eksportu w programie Excel.

Można także filtrować plik eksportu za pomocą programu Excel przy użyciu narzędzia Find.exe lub Findstr.exe. Narzędzia te są dołączone do systemu Windows. Umożliwiają one wyszukiwanie słów w pliku i wyprowadzanie tylko wierszy zawierających te słowa lub niezawierających tych słów. Jeśli na przykład chcesz otrzymać listę wszystkich właścicieli skrzynek pocztowych w pliku, którzy mają pełnomocników, użyj jednego z poniższych poleceń, aby utworzyć plik tylko z wierszami zawierającymi ciąg „Ma pełnomocników”:
Find.exe „Ma pełnomocników” Oryginalny_plik.txt > Ma_pełnomocników.txt

Findstr.exe /C:„Ma pełnomocników” Oryginalny_plik.txt > Ma_pełnomocników.txt
W innym przykładzie załóżmy, że odfiltrowujesz wszystkich właścicieli skrzynek pocztowych, którzy mają pełnomocników. Przełącznik /V powoduje, że zwracane są wszystkie wiersze niezawierające szukanych wyrazów. W celu utworzenia pliku niezawierającego wierszy „Ma pełnomocników”, można użyć jednego z następujących poleceń:
Find.exe „Brak pełnomocników” Oryginalny_plik.txt > Brak_pełnomocników.txt

Find.exe /V “Ma pełnomocników” Oryginalny_plik.txt > Brak_pełnomocników.txt

Findstr.exe /C:“Brak pełnomocników” Oryginalny_plik.txt > Brak_pełnomocników.txt

Findstr.exe /V /C:„Ma pełnomocników” Oryginalny_plik.txt > Brak_pełnomocników.txt
Poleceń tych można także użyć w celu utworzenia pliku z listą wszystkich kont, w przypadku których konto usługi aplikacji ma uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie ma uprawnienia Wyślij jako. Użycie przełącznika /I powoduje, że w poleceniu nie jest rozróżniana wielkość liter:
Find.exe /I „domena\Konto_usługi” Oryginalny_plik.txt > Konto_usługi.txt

Findstr.exe /I /C:„domena\Konto_usługi” Oryginalny_plik.txt > Konto_usługi.txt
Uwaga: Jeśli używasz narzędzia Find.exe do utworzenia odfiltrowanego pliku, musisz usunąć wiersze nagłówka, które narzędzie Find.exe utworzy na początku pliku.

Z narzędziem Findstr.exe nie należy używać nazw plików składających się z symboli wieloznacznych (*.*). Użycie symboli wieloznacznych spowoduje, że na początku każdego wiersza w pliku wyjściowym będzie znajdować się nazwa pliku. Plik wyjściowy przefiltrowany za pomocą narzędzia Find.exe lub Findstr.exe należy dokładnie przejrzeć, aby sprawdzić, czy filtr przechwycił lub wykluczył odpowiednie konta.

W poniższym przykładzie użytkownik mający nazwę logowania „Brak_Wyślij_jako” ma uprawnienie Pełny dostęp do skrzynki pocztowej, ale nie ma uprawnienia Wyślij jako do skrzynki pocztowej „Właściciel skrzynki pocztowej”.
"""Właściciel skrzynki pocztowej""" """Domena\Brak_Wyślij_jako""" """Nie wysyłaj jako użytkownik""" """Ma pełnomocników""" """Włączone""" [pominięto dodatkowe pola] 

Informacje o właścicielach skrzynek pocztowych mających pełnomocników

Pełnomocnik mający uprawnienie Pełny dostęp do skrzynki pocztowej (nazywany też superpełnomocnikiem) zazwyczaj nie powinien mieć uprawnienia Wyślij jako. Gdy superpełnomocnik loguje się bezpośrednio do skrzynki pocztowej właściciela skrzynki pocztowej, może używać uprawnienia Wyślij jako. Gdy pełnomocnik używa funkcji delegowania programu Outlook (Dodatkowe skrzynki odbiorcze do otwarcia lub Otwieranie folderu innego użytkownika), wiadomości są wysyłane z użyciem uprawnienia Wyślij w imieniu.

Uprawnienia Wyślij jako należy udzielać superpełnomocnikowi tylko wtedy, gdy pełnomocnik zawsze ma wysyłać wiadomości jako właściciel skrzynki pocztowej i nigdy nie ma wysyłać wiadomości w imieniu właściciela skrzynki pocztowej. Zaleca się, aby w pliku eksportu wyszukać ciąg „Ma pełnomocników”, a następnie określić, czy dowolny z superpełnomocników wymienionych w pliku jest w rzeczywistości pełnomocnikiem właściciela skrzynki pocztowej.

W pliku eksportu są wymieni wyłącznie superpełnomocnicy. Zwykli pełnomocnicy nie mają uprawnienia Pełny dostęp do skrzynki pocztowej. Ponadto po udzieleniu zwykłemu pełnomocnikowi uprawnienia Wyślij jako będzie on zawsze wysyłał wiadomości jako właściciel skrzynki pocztowej. Będzie się tak dziać nawet wtedy, gdy zwykły pełnomocnik nie będzie miał uprawnienia Pełny dostęp do skrzynki pocztowej. Jeśli uprawnienie Wyślij jako zostanie udzielone pełnomocnikowi, który nie powinien go mieć, z łatwością będzie je można później odwołać.

Jak otworzyć plik eksportu w programie Excel

  1. Uruchom program Excel przed otwarciem pliku eksportu.
  2. Otwórz plik w programie Excel jako typ Pliki tekstowe. Spowoduje to uruchomienie Kreatora importu tekstu.
  3. W Kreatorze importu tekstu zmień lub zaakceptuj następujące ustawienia:
    • Typ danych źródłowych: Rozdzielany
    • Zacznij import od wiersza: 1
    • Pochodzenie pliku: Unicode (UTF-8)
    • Ograniczniki: Tabulator
    • Kolejne ograniczniki traktuj jako jeden: niezaznaczone
    • Kwalifikator tekstu: " (podwójny cudzysłów)

Jak zapisać plik eksportu po edycji w programie Excel

  1. W pliku eksportu kliknij polecenie Zapisz jako.
  2. Nadaj plikowi inną nazwę, aby zachować nieedytowaną kopię oryginalnego pliku.
  3. Kliknij polecenie Plik, kliknij polecenie Zapisz jako, wprowadź nazwę zapisywanego pliku, a następnie z listy rozwijanej Zapisz jako typ wybierz pozycję Tekst Unicode.

Składnia skryptu

Jest to skrypt trybu tekstowego i należy uruchomić go w oknie wiersza polecenia, a nie w oknie dialogowym Uruchamianie. Aby otworzyć wiersz polecenia, kliknij przycisk Start, kliknij polecenie Uruchom, w polu Otwórz wpisz polecenie CMD, a następnie kliknij przycisk OK.

Dziennik błędów i plik eksportu zostaną zapisane w bieżącym katalogu wiersza polecenia. Musisz mieć uprawnienia do tworzenia plików w tym katalogu.
Aby wyświetlić pomoc wiersza polecenia, wprowadź następujące polecenie:
CSCRIPT AddSendAs.vbs
Aby wyeksportować użytkowników, którzy w domenie mają uprawnienie Pełny dostęp do skrzynki pocztowej bez uprawnienia Wyślij jako, wprowadź następujące polecenie:
CSCRIPT AddSendAs.vbs [nazwa kontrolera domeny] –Export Przykład: CSCRIPT AddSendAs.vbs KD-FIRMY-1 –Export
Wygenerowany plik eksportu będzie miał nazwę Wyślij_jako_eksport_G_MM_SS.txt.
Aby zaimportować edytowany plik eksportu, wprowadź następujące polecenie:
CSCRIPT AddSendAs.vbs [nazwa kontrolera domeny] –Import [nazwa_pliku]Przykład:CSCRIPT AddSendAs.vbs KD-FIRMY-1 –Import "Wyślij_jako_eksport_G_MM_SS.txt"

Jak udzielić uprawnienia Wyślij jako do każdej skrzynki pocztowej w domenie wszystkim użytkownikom, którzy mają już uprawnienie Pełny dostęp do skrzynki pocztowej dla określonej skrzynki pocztowej.

Uwaga: Jeśli w organizacji znajdują się pełnomocnicy, którzy mają także uprawnienie Pełny dostęp do skrzynki pocztowej, nie należy używać trybu SetAll. Użycie w takiej sytuacji trybu SetAll spowoduje, że pełnomocnicy otrzymają uprawnienie Wyślij jako. To zachowanie może spowodować, że wysyłane przez nich wiadomości e-mail będą wysyłane przy użyciu uprawnienia Wyślij jako, a nie Wyślij w imieniu. To zachowanie można poprawić, usuwając uprawnienie Wyślij jako, które w sposób niezamierzony zostało udzielone pełnomocnikowi.
CSCRIPT AddSendAs.vbs [nazwa kontrolera domeny] –SetAllPrzykład:CSCRIPT AddSendAs.vbs KD-FIRMY-1 –SetAll
Użycie trybu SetAll spowoduje, że wygenerowany plik eksportu będzie miał nazwę Wyślij_jako_eksport_G_MM_SS.txt. Należy zapisać ten plik, ponieważ zawiera on spis wszystkich kont, które zostały zmienione. W przypadku ponownego uruchomienia skryptu nie wygeneruje on takiej samej listy kont, ponieważ kontom udzielono już uprawnienia Wyślij jako.

Błędy, które wystąpią w trakcie działania skryptu, zostaną zapisane w pliku Wyślij_jako_błędy_G_MM_SS.txt. Nazwa pliku błędów będzie zgodna z sygnaturą czasową godziny_minuty_sekundy skojarzonego z nim pliku eksportu.

Modyfikacje skryptu

W organizacji mogą być użytkownicy kont, którzy mają uprawnienia do wielu obiektów, ale nie ma potrzeby zmiany tych uprawnień. Aby zmniejszyć rozmiar pliku eksportu, możesz odfiltrować te konta, modyfikując zmienną FMA_EXCLUSIVE_LIST znajdującą się blisko początku skryptu. Domyślnie zmienna ta wyświetla kilka kont, które powinny być pominięte w danych wyjściowych skryptu. Można dodać więcej kont, używając następującego formatu:
& "<Domena\Nazwa>" & OUTPUT_DELIMITER
Można na przykład zmienić wartość następującej zmiennej:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
na następującą:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Moja_domena\Usługa_1" & OUTPUT DELIMITER
Ta zmiana powoduje pominięcie konta „Moja_domena\Usługa_1” w pliku eksportu wraz z „NT AUTHORITY\SELF” i „NT AUTHORITY\SYSTEM”. Należy zauważyć, że w wartości Domena\Nazwa uwzględniana jest wielkość liter i dlatego musi ona wyglądać dokładnie tak, jak w systemie lub jak występowałaby w pliku eksportu.

Kolejną zmienną, którą można edytować, jest zmienna FMA_EXCLUSIVE_EXSVC mająca wartość domyślną "\Usługi programu Exchange" & OUTPUT_DELIMITER. „Usługi programu Exchange” to nazwa konta, które otrzymuje uprawnienia za pośrednictwem łącznika usługi Active Directory w scenariuszach migracji i współistnienia programu Exchange 5.5 i programu Exchange 2000. To konto jest tworzone w wielu domenach i jeśli nie zostanie pominięte, może wielokrotnie występować w pliku eksportu.

Wartością zmiennej FMA_EXCLUSIVE_EXSVC może być tylko jedna nazwa konta. W nazwie konta nie jest rozróżniana wielkość liter. Nazwa wyświetlanego konta musi rozpoczynać się od ukośnika odwrotnego i nie powinna zawierać nazwy domeny, do której należy konto. Konto będzie pomijane w przypadku wszystkich domen, w których istnieje.

Jeśli użyte zostały narzędzia migracji lub metody synchronizacji katalogów innej firmy, to w wielu domenach może istnieć inne konto z szerokimi uprawnieniami do skrzynek pocztowych użytkowników. W tym scenariuszu można zastąpić nazwę „\Usługi programu Exchange” nazwą tego konta.

Porady i zastrzeżenia

  • Nie odrzucaj plików dzienników i plików błędów generowanych przez skrypt. Mogą być one przydatne podczas rozwiązywania problemów lub późniejszego odwracania zmian. Należy pamiętać, że gdy tylko kontu zostanie udzielone uprawnienie Wyślij jako, nie będzie ono już rejestrowane w pliku eksportu.
  • Wyłączenie serwera lub bazy danych programu Exchange spowoduje spowolnienie przetwarzania skryptu. W takim przypadku można posortować plik eksportu według baz danych i przenieść wiersze skojarzone z zatrzymaną bazą danych do innego pliku, aby je później zaimportować.
  • Skrypt pomija konta, których nazwa kończy się znakiem $ lub brzmi ZARZĄDZANIE NT\SYSTEM. Te konta systemowe zazwyczaj nie potrzebują uprawnienia Wyślij jako i usunięcie ich z pliku eksportu spowoduje znaczące zmniejszenie jego rozmiaru.
  • Plik eksportu musi być w formacie Unicode, aby można było go zaimportować. Jeśli ten plik zostanie przypadkowo zapisany jako tekst ANSI, można rozwiązać ten problem, otwierając go w Notatniku i zapisując jako tekst w formacie Unicode.
  • Jeśli importowanie nie jest możliwe, należy spróbować rozwiązać problem, używając kont testowych i jednego wiersza w pliku eksportu. Konto testowe należy skonfigurować tak, aby miało skrzynkę pocztową na serwerze programu Exchange, a następnie innemu kontu testowemu należy udzielić uprawnienia Pełny dostęp do skrzynki pocztowej, ale nie uprawnienia Wyślij jako.
  • Ten skrypt nie oferuje trybu cofania zmian. Aby usunąć uprawnienia Wyślij jako udzielone przy użyciu tego skryptu, należy utworzyć inny skrypt lub usunąć je ręcznie. Skrypt nie oferuje trybu cofania zmian, aby uniemożliwić użycie go w celu odebrania uprawnienia Wyślij jako wszystkim użytkownikom w organizacji.
  • Ten skrypt nie obsługuje poprawnie kont, którym wraz z uprawnieniem Pełny dostęp do skrzynki pocztowej udzielono prawa Pełna kontrola w obiekcie użytkownika. Uprawnienie Wyślij jako jest zawarte w uprawnieniu Pełna kontrola, ale skrypt będzie eksportować konto tak, jakby nie miało uprawnienia Wyślij jako. Może to zwiększyć rozmiar pliku eksportu, lecz import pliku i udzielenie uprawnienia Wyślij jako takim kontom nie spowoduje żadnej szkody.
  • Za pomocą tego skryptu nie można przetwarzać kont użytkowników usługi Active Directory o nazwach wyróżniających i zawierających tabulatory lub niedopasowane znaki cudzysłowu. Skrypt może prawidłowo przetwarzać nazwę zawierającą parzyste podwójne cudzysłowy, na przykład:
    “CN=First “Pseudonim” Last,DC=domain,DC=com”
  • Program Excel obsługuje pliki o maksymalnej długości równej 65 535 wierszy. Jeśli plik wyjściowy jest większy, przed załadowaniem do programu Excel należy podzielić go na sekcje.
  • W pliku Wyślij_jako_błędy będą wymienione konta, w przypadku których wystąpił błąd odczytu lub zapisu uprawnień. Jeśli pozostałe konta w domenie zostały przetworzone prawidłowo, konta te mogą mieć cechę wspólną, która uniemożliwia wykonanie na nich skryptu. Typowe problemy to między innymi:
    • Brak uprawnień administracyjnych do wyświetlania lub ustawiania właściwości kont.
    • Niedziałający magazyn skrzynek pocztowych programu Exchange.
    • Stacja robocza nie jest członkiem tej samej domeny.
    • Używane konto administracyjne nie należy do tego samego lasu.
Aby uruchomić ten skrypt, skopiuj wszystkie wiersze między wierszami POCZĄTEK SKRYPTU i KONIEC SKRYPTU i wklej je do edytora zwykłego tekstu, takiego jak Notatnik. Zapisz skrypt pod nazwą AddSendAs.vbs. POCZĄTEK SKRYPTU
Option ExplicitDim OUTPUT_DELIMITEROUTPUT_DELIMITER = """""""" & vbTab & """"""""'Definiowanie listy wykluczania, jeśli dowolnemu użytkownikowi z tej listy udzielono uprawnienia Pełny dostęp do skrzynki pocztowej, będzie on ignorowany.  Jeśli  'chcesz zmodyfikować tę listę, pamiętaj, aby używać tego samego formatu. Przed i po  'każdym aliasie powinna znajdować się zmienna OUTPUT_DELIMITERDim FMA_EXCLUSIVE_LISTFMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "ZARZĄDZANIE NT\SELF" & OUTPUT_DELIMITER & "ZARZĄDZANIE NT\SYSTEM" & OUTPUT_DELIMITERDim FMA_EXCLUSIVE_EXSVCFMA_EXCLUSIVE_EXSVC = "\Usługi programu Exchange" & OUTPUT_DELIMITER'Typ uprawnienia: Zezwalaj lub Odmówconst ACCESS_ALLOWED_OBJECT_ACE_TYPE  = 5const ADS_ACETYPE_ACCESS_ALLOWED = &h0const ADS_ACETYPE_ACCESS_DENIED = &h1'Flagi: określają dziedziczenieconst 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' Deklarowanie stałych ADSIConst ADS_OPTION_SECURITY_MASK = 3Const ADS_OPTION_REFERRALS	= 1Const ADS_SECURITY_INFO_DACL = 4Const ADS_CHASE_REFERRALS_NEVER = &h00  Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20  Const ADS_CHASE_REFERRALS_EXTERNAL = &h40'nazwa pliku wyjściowegoConst EXPORT_FILE = "Wyślij_jako_eksport"Const ERROR_FILE = "Wyślij_jako_błędy"' tryb skryptuconst MODE_INVALID = -1  const MODE_SETALL = 0const MODE_EXPORT = 1const MODE_IMPORT = 2const SETALL = "-SETALL"const EXPORT = "-EXPORT"const IMPORT = "-IMPORT"' indeks argumentówConst ARG_INDEX_MODE = 1Const ARG_INDEX_DC = 0Const ARG_INDEX_FILENAME = 2' indeks kolumn w pliku importu/eksportuConst COLUMN_INDEX_USERDISPLAYNAME = 0Const COLUMN_INDEX_FMAALIAS = 1Const COLUMN_INDEX_FMADISPLAYNAME = 2Const COLUMN_INDEX_IFPUBLICDELEGATE = 3Const COLUMN_INDEX_MAILBOXSTATUS = 4Const COLUMN_INDEX_USERADSPATH = 5Const COLUMN_INDEX_HOMEMDB = 6Const EMPTYSTRING = ""Const STRNO = "Brak pełnomocników"Const STRNO = "Ma pełnomocników" Const MIN_ARG = 2Const INIT_ARRAY_SIZE = 100' Program Microsoft Exchange  Const EX_MB_SEND_AS_ACCESSMASK  = &H00100Const EX_FULLMailbox_AccessMask = 1Const MESO = "Obiekty systemu Microsoft Exchange"Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"Const ForReading	= 1Const ForWriting	= 2Const ForAppending	= 8Const TristateTrue	= -1Const ADS_SCOPE_SUBTREE = 2Dim objUserDim objSDMailBoxDim objSDNTsecurityDim objDACLNTSDDim objNewACEDim sTrusteeAlias()Dim sFMADeniedListDim sFMAExplicitAllowDim fACESendasFoundDim dArraySizeDim TotalACEDim iDim rootDSEDim connDim objCommandDim objCmdDisplayNameDim rsUsersDim FoundObjectDim objFSODim objfileImportDim objfileExportDim objfileErrorDim sImportFilePathDim cScriptModeDim dArgCountDim dArgExpectedDim sDCServerDim sMailboxStatusDim sIfPublicDelegateDim sFMAUserDisplayNameDim sExportFileNameDim sErrorsFileNameDim msPublicDelegatesDim fErrorDim fOneErrorDim fFMAAllowedOn Error Resume NextdArraySize = INIT_ARRAY_SIZEReDim Preserve sTrusteeAlias(dArraySize)dArgCount = Wscript.Arguments.Count  If ( dArgCount < MIN_ARG ) Then	DisplaySyntaxEnd Iferr.ClearfError = FalsefOneError = FalsecScriptMode = MODE_INVALIDSelect Case UCase(WScript.Arguments(ARG_INDEX_MODE))	Case SETALL  		cScriptMode = MODE_SETALL		dArgExpected = ARG_INDEX_MODE + 1	Case EXPORT  		cScriptMode = MODE_EXPORT		dArgExpected = ARG_INDEX_MODE + 1	Case IMPORT  		cScriptMode = MODE_IMPORT		dArgExpected = ARG_INDEX_FILENAME + 1	Case Else  		cScriptMode = MODE_INVALIDEnd SelectIf (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then	DisplaySyntaxEnd IfsDCServer = WScript.Arguments(ARG_INDEX_DC)CreateOutputFilesIf ( cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT ) Then	Dim sDomainContainer	If (cScriptMode = MODE_SETALL) Then		Dim strInput  		WScript.StdOut.WriteLine("OSTRZEŻENIE: Jeśli będziesz kontynuować, każdemu kontu w domenie, które ma")		WScript.StdOut.WriteLine("uprawnienie Pełny dostęp do skrzynki pocztowej dla danej skrzynki, ")		WScript.StdOut.WriteLine("zostanie udzielone uprawnienie Wyślij jako właściciel skrzynki pocztowej.")		WScript.StdOut.WriteLine()		WScript.StdOut.WriteLine("Aby przed udzieleniem uprawnienia Wyślij jako przejrzeć listę skrzynek pocztowych,")		WScript.StdOut.WriteLine("anuluj tę operację i użyj trybu -Export tego skryptu.")		WScript.StdOut.WriteLine()		WScript.StdOut.Write("Naciśnij klawisz T, aby kontynuować, lub dowolny inny klawisz, aby anulować:") ")		strInput = WScript.StdIn.ReadLine()		If (UCase(strInput) <> UCase("T")) Then			WScript.Quit		End If		End If		WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Znak ""!"" wskazuje błąd przetwarzania obiektu.")	WScript.StdOut.WriteLine("     Sprawdź " & sErrorsFilename)	WScript.StdOut.WriteLine("Trwa uruchamianie...")	WScript.StdOut.WriteLine()	err.Clear		Set rootDSE = GetObject("LDAP://" & sDCServer & "/RootDSE")	sDomainContainer = rootDSE.Get("defaultNamingContext")	WScript.StdOut.WriteLine("Znajdowanie kontrolera domeny [ " & sDCServer & " ] dla domeny [ " & sDomainContainer & " ]")		If (err.number <> 0) Then		WScript.StdOut.WriteLine("Nie znaleziono domeny lub kontrolera domeny, błąd:" & err.Description)		objfileError.WriteLine("Nie można odnaleźć domeny lub kontrolera domeny. Błąd:" & 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("Nie można utworzyć powiązania z serwerem usługi Active Directory. Błąd:" & err.Description)		objfileError.WriteLine("Nie można utworzyć powiązania z serwerem usługi Active Directory. Błąd:" & err.Description)		WScript.Quit	End If	Set objCommand.ActiveConnection = conn	WScript.StdOut.WriteLine("Wyszukiwanie kont użytkowników właścicieli skrzynek pocztowych w domenie " & sDomainContainer)		objCommand.CommandText  = "<LDAP://" & 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("Wyszukiwanie właścicieli skrzynek pocztowych nie powiodło się. Błąd:" & err.Description)		objfileError.WriteLine("Wyszukiwanie właścicieli skrzynek pocztowych nie powiodło się. Błąd:" & err.Description)		WScript.Quit	End If	If (rsUsers.RecordCount = 0) Then		WScript.StdOut.WriteLine("Nie odnaleziono kont użytkowników właścicieli skrzynek pocztowych w domenie " & sDomainContainer & ".")		objfileError.WriteLine("Nie odnaleziono kont użytkowników właścicieli skrzynek pocztowych w domenie " & sDomainContainer & ".")		fError = True			End If	While Not rsUsers.EOF		If (fOneError = True) Then			WScript.StdOut.Write("!")		Else			WScript.StdOut.Write(".")		End If		fOneError = False				'Pomiń obiekty skrzynek pocztowych w kontenerze Obiekty systemu Microsoft Exchange		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("Nie można pobrać obiektu użytkownika: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Błąd: " & err.Description)				fError = True				fOneError = True				err.Clear			End If			Set objSDMailBox = objUser.MailboxRights			If (err.number <> 0) Then				objfileError.WriteLine("Nie można pobrać praw do skrzynki pocztowej: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Błąd: " & err.Description)				fError = True				fOneError = True				err.Clear			End If			Set objSDNTsecurity = objUser.ntSecurityDescriptor			If (err.number <> 0) Then				objfileError.WriteLine("Nie można pobrać deskryptora zabezpieczeń systemu NT: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Błąd: " & err.Description)				fError = True				fOneError = True				err.Clear			End If						Set objDACLNTSD = Nothing			If (objUser.AccountDisabled) Then				sMailboxStatus = "Wyłączone"			Else				sMailboxStatus = "Włączone"			End If			'Kwerenda dotycząca listy publicDelegates tego użytkownika			err.Clear 			msPublicDelegates = objUser.Get("publicDelegates")			If (err.number <> 0) Then				'Ten użytkownik nie ma ustawionej listy publicDelegates				sIfPublicDelegate = STRNO				err.Clear			Else				sIfPublicDelegate = STRYES			End If						err.Clear 						FindAllFMAUsers objSDMailBox						If (TotalACE > dArraySize) Then			'Należy przydzielić tablicę o większym rozmiarze				dArraySize = TotalACE + 1				ReDim Preserve sTrusteeAlias(dArraySize)				FindAllFMAUsers objSDMailBox			End If			If (err.number <> 0) Then				objfileError.WriteLine("Nie można wykonać kwerendy dotyczącej praw użytkownika do skrzynki pocztowej: " & rsUsers.Fields(0).Value)				objfileError.WriteLine("Błąd: " & 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										'Sprawdź, czy w deskryptorze zabezpieczeń systemu NT znajduje się już wpis kontroli dostępu uprawnienia Wyślij jako					'Jeśli istnieje (dotyczący zezwolenia lub odmowy), nie trzeba go już dodawać  					CheckSendAsACE objDACLNTSD, sTrusteeAlias(i)										'Uwaga: wpisy związane z odmową dostępu zawsze mają pierwszeństwo przed wpisami związanymi z zezwoleniem. 					'Jeśli występuje wpis kontroli dostępu związany z odmową uprawnienia Pełny dostęp do skrzynki pocztowej, pomiń go, nawet jeśli istnieje też wpis związany z zezwoleniem  					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									'Kwerenda dotycząca użytkownika trustee(FMA user), mająca na celu uzyskanie jego nazwy wyświetlanej						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							'Nie można wykonać kwerendy dotyczącej nazwy wyświetlanej użytkownika mającego uprawnienie Pełny dostęp do skrzynki pocztowej; będzie używany jego alias							sFMAUserDisplayName = sAlias													Else							sFMAUserDisplayName = objTrustee.displayName													End If							'dane do pliku eksportu						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("Nie można dodać użytkownika " & rsUsers.Fields(0).Value & " do pliku eksportu. Uprawnienia dla tego użytkownika należy ustawić ręcznie.")							objfileError.WriteLine("Błąd: " & 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("Nie można zaktualizować interfejsu ADSI dla użytkownika: " & rsUsers.Fields(0).Value)						objfileError.WriteLine("Błąd: " & err.Description)						err.Clear						fError = True						fOneError = True					End If				End If				TotalACE = 0				Set objSDMailbox = Nothing				Set objSDNTsecurity = Nothing				Set objUser = Nothing				Set objDACLNTSD = Nothing			End If				End If			rsUsers.MoveNext	WendEnd IfIf (cScriptMode = MODE_IMPORT) Then	Dim sOneRow	Dim sArraySplit	Dim objUserItem	Dim UserPath	Dim objUserSD	Dim objUserDACL	Dim fNeedToAddSendAs		sImportFilePath = WScript.Arguments(ARG_INDEX_FILENAME)	WScript.StdOut.WriteLine("Jeśli będziesz kontynuować, każdemu kontu wymienionemu w " & sImportFilePath ", które ma)	WScript.StdOut.WriteLine("uprawnienie Pełny dostęp do skrzynki pocztowej dla danej skrzynki, ")	WScript.StdOut.WriteLine("zostanie również udzielone uprawnienie Wyślij jako właściciel skrzynki pocztowej.")	WScript.StdOut.WriteLine()	WScript.StdOut.Write("Naciśnij klawisz T, aby kontynuować, lub dowolny inny klawisz, aby anulować:") ")	strInput = WScript.StdIn.ReadLine()	If (UCase(strInput) <> UCase("T")) Then		WScript.Quit	End If		WScript.StdOut.WriteLine("Trwa uruchamianie...")	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("Nie można otworzyć pliku importu " & sImportFilePath & ". Błąd:" & err.Description)		objfileError.WriteLine("Nie można otworzyć pliku importu " & sImportFilePath & ". Błąd:" & 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("Nie można przeanalizować jednego wiersza: " & sOneRow )			objfileError.WriteLine("Błąd: " & err.Description)			err.Clear			fError = True			fOneError = True		End If				If (UserPath <> sArraySplit(COLUMN_INDEX_USERADSPATH)) Then			'Nowy użytkownik			If (fNeedToAddSendAs = True ) Then				'zaktualizuj istniejącego użytkownika				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("Nie można zaktualizować uprawnień użytkownika: " & UserPath)					objfileError.WriteLine("Błąd: " & 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("Nie można pobrać obiektu użytkownika: " & UserPath)				objfileError.WriteLine("Błąd: " & err.Description)				err.Clear				fError = True				fOneError = True			End If		End If			'Dodaj nowy wpis kontroli dostępu   Czy ten test jest potrzebny?		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		'zaktualizuj ostatniego użytkownika		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("Nie można zaktualizować uprawnień użytkownika: " & UserPath)			objfileError.WriteLine("Błąd: " & err.Description)			fError = True		End If	End IfEnd If objFSO.CloseobjfileImport.CloseobjfileExport.CloseobjfileError.CloseSet objFSO = NothingSet objfileImport = NothingSet objfileExport = NothingSet objfileError = NothingSet objCommand = NothingSet conn = NothingWScript.StdOut.WriteLine()If (fError = True) Then	WScript.StdOut.WriteLine("Zakończono z co najmniej jednym błędem. Zobacz " & sErrorsFilename)Else	WScript.StdOut.WriteLine("Zakończono pomyślnie. Nie wystąpiły błędy.")End IfFunction FindAllFMAUsers (objSD)Dim objACLDim objACEDim intACECountDim strIndentDim dAccessMaskBitDim dPositionDim sUserAlreadyFound	On Error Resume Next	err.Clear	TotalACE = 0	sFMADeniedList = EMPTYSTRING	sFMAExplicitAllow = EMPTYSTRING	sUserAlreadyFound = OUTPUT_DELIMITER	intACECount = 0	Set objACL = objSD.DiscretionaryAcl	intACECount = objACL.AceCount	If intACECount Then		' Otwórz dane listy arbitralnej kontroli dostępu (DACL).		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				'Zachowaj listę kont mających jawnie ustawione uprawnienie Pełny dostęp do skrzynki pocztowej na poziomie skrzynki pocztowej				sFMAExplicitAllow = sFMAExplicitAllow & objACE.Trustee & OUTPUT_DELIMITER						End If		ElseIf (( (objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0 ) And (objACE.AceType = ADS_ACETYPE_ACCESS_DENIED)) Then			'Zachowaj listę kont, którym odmówiono uprawnienia Pełny dostęp do skrzynki pocztowej, jako ogranicznika użyj wartości zmiennej OUTPUT_DELIMITER,  			'uwzględnij uprawnienia dziedziczone i jawnie ustawione na poziomie skrzynki pocztowej			sFMADeniedList = sFMADeniedList & objACE.Trustee & OUTPUT_DELIMITER					End If		Next	End If	Set objACL = NothingEnd FunctionFunction CheckSendAsACE (objDiscretionaryACL, sTAlias)Dim objACEDim intACECount	err.Clear  	fACESendasFound = 0	intACECount = objDiscretionaryACL.AceCount	If intACECount Then		For Each objACE In objDiscretionaryACL				err.Clear  			If ( (objACE.Trustee = sTAlias) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then				fACESendasFound = 1			End If			If (err.number <> 0) Then				objfileError.WriteLine("Nie można odczytać uprawnień tego użytkownika: " & sTAlias)				objfileError.WriteLine("Błąd: " & err.Description)				err.Clear				fError = True				fOneError = True			End If					Next				End If	End FunctionFunction IfFMAAllowed(sTrustee)	'Odnaleziono wpis kontroli dostępu z zezwoleniem na uprawnienie Pełny dostęp do skrzynki pocztowej. Załóż, że to prawda.	fFMAAllowed = True		If ( (0 <> Instr(sFMADeniedList, sTrustee)) And (0 = Instr(sFMAExplicitAllow, sTrustee))	) Then		'Jeśli odnaleziono wpis kontroli dostępu z odmową, a uprawnienie Pełny dostęp do skrzynki pocztowej nie jest jawnie dozwolone  		fFMAAllowed = False	End If End FunctionFunction CreateOutputFiles	Dim sTimeArray	Dim sTimeShort	Dim sTime		err.Clear	sTime = Time	sTimeShort = Split(sTime, " ")	sTimeArray = Split(sTimeShort(0), ":")	Set objFSO = CreateObject("Scripting.FileSystemObject")	sErrorsFileName = ERROR_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForWriting, True, TristateTrue)	If (cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT)	Then		sExportFileName = EXPORT_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"		Set objfileExport = objFSO.OpenTextFile(sExportFileName, ForWriting, True, TristateTrue)		End If		If err.number <> 0 Then		WScript.StdOut.WriteLine("Nie można utworzyć pliku eksportu lub pliku błędów: " & err.Description)		objfileError.WriteLine("Nie można utworzyć pliku eksportu lub pliku błędów: " & err.Description)		fError = True		fOneError = True		WScript.Quit		End IfEnd FunctionFunction DisplaySyntax	WScript.StdOut.WriteLine("Składnia:")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Eksportowanie kont mających uprawnienie Pełny dostęp do skrzynki pocztowej, które nie mają uprawnienia Wyślij jako:")	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Export")	WScript.StdOut.WriteLine("         UWAGA: Lista zostanie zapisana w pliku Wyślij_jako_eksport_GG_MM_SS.txt")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Udzielanie uprawnienia Wyślij jako wszystkim kontom wymienionym w pliku eksportu:")	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Import ""nazwa_pliku.txt""")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Udzielanie uprawnienia Wyślij jako wszystkim kontom w domenie, które mają uprawnienie Pełny dostęp do skrzynki pocztowej:")	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -SetAll")	WScript.StdOut.WriteLine("         UWAGA: Konta zostaną wymienione w pliku Wyślij_jako_eksport_GG_MM_SS.txt")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("W każdym trybie błędy będą zapisywane w pliku Wyślij_Jako_Błędy_GG_MM_SS.txt.")	WScript.Quit	End Function
KONIEC SKRYPTU

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost lub domyślnie, w tym także, bez ograniczeń, ustawowej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy Pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnej funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.
Aby uzyskać dodatkowe informacje dotyczące opcji pomocy technicznej dostępnych w firmie Microsoft, odwiedź następującą witrynę firmy Microsoft w sieci Web: Produkty omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, domyślnych ani żadnego innego rodzaju, odnośnie do wydajności lub niezawodności tych produktów.
XADM Blackberry Enterprise Server BES GoodLink Cisco Unified Messaging RIM
Właściwości

Identyfikator artykułu: 912918 — ostatni przegląd: 12/09/2015 04:18:37 — zmiana: 17.2

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

  • kbnosurvey kbarchive kbtshoot kbpending kbbug kbprb KB912918
Opinia