Käyttäjät eivät pysty lähettämään sähköpostiviestejä kannettavasta laitteesta tai jaetusta postilaatikosta Exchange 2000 Serverissä ja Exchange Server 2003:ssa

Artikkeleiden käännökset Artikkeleiden käännökset
Artikkelin tunnus: 912918 - Näytä tuotteet, joita tämä artikkeli koskee.
Laajenna kaikki | Kutista kaikki

Tällä sivulla

Oire

Kun yrität lähettää sähköpostiviestin Microsoft Exchange 2000 Serverissä tai Microsoft Exchange Server 2003:ssa, lähettäminen ei onnistu. Lisäksi näyttöön saattaa tulla jokin seuraavankaltaisista virhesanomista tai toimituksen epäonnistumisraporteista.

Virhesanomat

  • Käyttö estetty
  • Käyttöoikeutesi eivät riitä tämän toiminnon toteuttamiseen valitulle objektille. Saat lisätietoja kansion vastuuhenkilöltä tai järjestelmänvalvojalta.
  • Luetteloimattoman viestin virhe
  • MAPI_E_NO_ACCESS -2147024891
  • Viestin lähettäminen käyttäjälle KÄYTTÄJÄNIMI (HRESULT:-2147024891) epäonnistui. Keskeytetään käyttäjä KÄYTTÄJÄNIMI. (Suojausvirhe - Käyttäjän postilaatikkoa ei voi käyttää.)
  • Resurssia ei löydy
Huomautus Näyttöön tulee Outlook Web Accessin Käyttö estetty- tai Resurssia ei löydy -virhesanoma, kun olet kirjautuneena edustajan tilillä.

Toimituksen epäonnistumisraportit

  • Et saa lähettää sähköpostia tälle vastaanottajalle. Pyydä apua järjestelmänvalvojalta.
  • Viestiä ei voi lähettää postilaatikkosi avulla. Sinulla ei ole viestien lähetysoikeutta määritetyn käyttäjän puolesta.
Tämän ongelman tiedetään vaikuttavan seuraaviin kolmannen osapuolen tuotteisiin:
  • Research In Motion (RIM) BlackBerry Enterprise Server (BES)
  • Good Technology GoodLink Wireless Messaging
On vahvistettu, että tämä ongelma ei kuitenkaan vaikuta seuraaviin kolmannen osapuolen tuotteisiin.
  • Cisco Unity Unified Messaging
  • Quest Migration Suite for Exchange
  • The Microsoft ExMerge utility for Exchange
Tämä ongelma saattaa myös vaikuttaa mukautettuihin MAPI- tai CDO (Collaborative Data Objects) -pohjaisiin ohjelmiin, jotka lähettävät sähköpostiviestejä.

Tämä saattaa myös vaikuttaa muihin kolmannen osapuolen tuotteisiin, jotka käyttävät palvelutilejä sähköpostiviestien lähettämiseen. Jos käytät kolmannen osapuolen tuotetta, johon tämä ongelma vaikuttaa, Microsoft suosittelee, että otat yhteyttä tuotteen valmistajaan tämän ongelman ratkaisemiseksi. Lisätietoja tästä on Lisätietoja-osassa.

Tärkeää Voit myöntää toisena käyttäjänä lähettämisen oikeuden nopeana toimenpiteenä palvelutilille Active Directory -säilön perimisen avulla tai jopa koko toimialueelle, jos sinun on palautettava toisena käyttäjänä lähettämisen oikeuden toiminnot liiketoiminnan kannalta tärkeille sovelluksille. Tämän tekemisestä on yksityiskohtaiset ohjeet -osassa. Vaikka tämä on tehokas tapa ratkaista ongelma heti, sillä on tietoturvaan ja hallintaan vaikutuksia, jotka sinun tulee ottaa huomioon. Tämän tekeminen saattaa myöntää toisena käyttäjänä lähettämisen oikeuden tileille, joille et tarkoita myöntää sitä. Lisäksi sinun on otettava tämä oikeus huomioon, jos siirrät käyttäjätilit eri säilöön.

Syy

Tämä ongelma saattaa ilmetä, jos jokin seuraavista ehdoista toteutuu:
  • Sinulla ei ole oikeuksia lähettää sähköpostiviestejä postilaatikon omistajana tilillä, jota käytät sähköpostiviestin lähettämiseen.
  • Käytössäsi on Microsoft Exchange 2000 Server Service Pack 3 (SP3), jonka Store.exe-tiedoston versio on vähintään 6619.4. Versio 6619.4 oli ensi kerran saatavana seuraavassa Microsoftin Knowledge Base -tietokannan artikkelissa:
    915358 Exchange 2000 Serverin postilaatikon täysien käyttöoikeuksien toimintaa muuttava korjaus on saatavana
  • Käytössäsi on Microsoft Exchange Server 2003 Service Pack 1 (SP1), jonka Store.exe-tiedoston versio on vähintään 7233.51. Versio 7233.51 oli ensi kerran saatavana seuraavassa Microsoftin Knowledge Base -tietokannan artikkelissa:
    895949 Exchange 2003:n toisena käyttäjänä lähettämisen oikeuden toiminnan muutos
    Huomaa, että tämä korjaus ei sisälly Microsoft Exchange 2003 Service Pack 2:een (SP2). Jos olet asentanut tämän hotfix-korjauksen Exchange Server 2003 SP1 -version, sinun on asennettava Service Pack 2 -versio Service Pack 2:ksi päivittämisen jälkeen.
  • Käytössäsi on Exchange Server 2003 SP2, jonka Store.exe-tiedoston versio on vähintään 7650.23. Versio 7650.23 oli ensi kerran saatavana seuraavassa Microsoftin Knowledge Base -tietokannan artikkelissa:
    895949 Exchange 2003:n toisena käyttäjänä lähettämisen oikeuden toiminnan muutos
    Huomautus Tämä muutos ei sisälly Exchange 2000 Server SP3:een, Exchange Server 2003 SP1:een tai Exchange 2003 SP2:een. Muutos toteutettiin kaikkien näiden Service Pack -pakettien julkaisemisen jälkeen, mutta kaikki ne tukevat sitä. Muutos tulee sisältymään näiden tuotteiden tuleviin Service Pack -päivityksiin.

    Jos asennat Exchange Server 2003 SP2:n, sinun on asennettava lisäpäivitys, jotta uusi toiminta säilytetään, vaikka olisit jo asentanut päivityksen Exchange Server 2003 SP1 -version.

Ratkaisu

Ennen ongelman syytä käsittelevässä osassa lueteltuja Store.exe-tiedoston versioita postilaatikon täysien käyttöoikeuksien myöntäminen myönsi implisiittisesti oikeudet lähettää viestejä postilaatikon omistajana. Tämä tarkoitti sitä, että toinen tili, jolla on postilaatikon täydet käyttöoikeudet, pystyi lähettämään sähköpostiviestejä, jotka näyttivät postilaatikon omistajan lähettämiltä.

Monet Microsoft Exchange -asiakkaat ovat pyytäneet, että toisena käyttäjänä lähettämisen oikeus erotetaan postilaatikon täysistä käyttöoikeuksista seuraavien kahden syyn vuoksi:
  • sähköpostiviestien avulla tehtävien tekeytymishyökkäysten estämiseksi
  • sen varmistamiseksi, että edustajan lähettämät sähköpostiviestit voidaan aina selvästi erottaa postilaatikon todellisen omistajan lähettämistä sähköpostiviesteistä.
Kaikki Exchange-tietosäilöpalvelun uudet versiot edellyttävät nyt eksplisiittisesti toisena käyttäjänä lähettämisen oikeuden, jotta sähköpostiviestejä voidaan lähettää postilaatikon omistajana. Seuraavassa on kuitenkin kolme poikkeusta tähän edellytykseen:
  • Postilaatikon omistajan tili ei tarvitse omaan postilaatikkoonsa eksplisiittistä toisena käyttäjänä lähettämisen oikeutta.
  • Postilaatikkoon liittyvä ulkoinen tili ei tarvitse eksplisiittistä toisena käyttäjänä lähettämisen oikeutta.
  • Edustajan tili, jolla on myös postilaatikon täydet käyttöoikeudet, ei tarvitse eksplisiittistä toisena käyttäjänä lähettämisen oikeutta.
Lisätietoja näistä poikkeuksista on Lisätietoja-osassa.

Kaikille muille tileille, joille myönnetään postilaatikon osittaiset tai täydet käyttöoikeudet, on nyt myönnettävä eksplisiittisesti toisena käyttäjänä lähettämisen käyttöoikeus, jotta tilit voivat lähettää sähköpostiviestejä postilaatikon omistajana. Tämä koskee myös sovelluspalvelutilejä, jotka tekevät kannettavien laitteiden käyttäjien puolesta toimintoja, kuten lähettävät sähköpostiviestejä.

Toisena käyttäjänä lähettämisen oikeus on myönnettävä kunkin postilaatikon omistavan käyttäjäobjektin palvelutilille. Et pysty myöntämään toisena käyttäjänä lähettämisen oikeutta Exchange-palvelimelle tai tietokantaobjektille niin, että tietokannan kaikille postilaatikoille myönnetään viestien toisena käyttäjänä lähettämisen oikeudet.

Tämä aiheutuu siitä, että toisena käyttäjänä lähettämisen oikeus on Active Directory -oikeus, joka koskee niitä Active Directory -objekteja, joille se on määritetty. Toisena käyttäjänä lähettämisen oikeuden myöntäminen Exchange-tietokantaobjektille antaa kyseisen oikeuden itse tietokannalle. Se ei kuitenkaan anna toisena käyttäjänä lähettämisen oikeutta käyttäjille, joilla on postilaatikot tietokannassa.

Huomautus Toisena käyttäjänä vastaanottamisen oikeuden myöntäminen Exchange-tietokannalle vastaa postilaatikon täysien käyttöoikeuksien myöntämistä kaikille tietokannan postilaatikoille. Tämä eroaa toisena käyttäjänä lähettämisen oikeuden toiminnasta.

Toisena käyttäjänä lähettämisen oikeus koskee vain itse tietokantaobjektia. Se ei koske tietokannan postilaatikoita. Toisena käyttäjänä vastaanottamisen oikeus vaikuttaa periytyvän kaikkiin tietokannan postilaatikoihin.

Jotta voit ymmärtää näiden kahden käyttöoikeuden eron paremmin, ajattele kaikkia tietokannan postilaatikoita yksittäisen postilaatikon ("tietokanta"postilaatikon) kansioina. Jos sinulla on täydet oikeudet tietokantaan, sinulla on oikeudet käyttää tietokannan koko sisältöä. Tähän sisältöön kuuluvat kaikki postilaatikot.

Toisena käyttäjänä lähettämisen oikeus koskee Active Directory -käyttäjäobjektin tunnistetietoa, eikä tietokantaan tallennettua postilaatikkosisältöä. Kun sähköpostiviestejä lähetetään, ne eivät olet peräisin mistään tietystä postilaatikosta tai tietokannasta vaan käyttäjältä. Käyttäjä voi olla postilaatikon omistaja tai jokin muu tili, jolla on toisena käyttäjänä lähettämisen oikeus.

Jos haluat myöntää eksplisiittisesti toiselle tilille oikeuden lähettää viestejä postilaatikon omistajana, toimi seuraavasti:
  1. Käynnistä Active Directoryn käyttäjät ja tietokoneet -hallintakonsoli.
  2. Varmista, että Näytä-valikon Lisäominaisuudet-vaihtoehto on valittuna. Jos tämä vaihtoehto ei ole valittuna, käyttäjätiliobjektien Suojaus-välilehti ei ole näkyvissä.
  3. Avaa postilaatikon omistavan käyttäjätilin ominaisuudet.
  4. Valitse Suojaus-välilehti.
  5. Jos tili ei jo ole ryhmien tai käyttäjien nimien luettelossa, lisää tili, jolla tulee olla toisena käyttäjänä lähettämisen oikeus tälle käyttäjälle.
  6. Valitse Käyttöoikeudet-ruudussa haluamasi tilin lähettämisen toisena käyttäjänä salliva käyttöoikeus.
  7. Valitse OK.
  8. Käynnistä Microsoft Exchangen tietosäilöpalvelu uudelleen kyseisessä Exchange-palvelimessa.
Huomautus Jos et käynnistä Microsoft Exchangen tietosäilöpalvelua uudelleen, se päivittää käyttöoikeusvälimuistinsa ottaakseen uudet käyttöoikeudet käyttöön seuraavaan rekisterin aliavaimeen määritetyn arvon mukaisesti:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem


Arvon nimi: Mailbox Cache Age Limit
Arvon tyyppi: REG_DWORD
Lukujärjestelmä: Kymmenjärjestelmä
Arvon data: Postilaatikon tietovälimuistin ikärajoitus minuutteina.
Tämän rekisterimerkinnän oletusarvo on 120 minuuttia eli kaksi tuntia. Jos muokkaat tätä rekisterimerkintää, sinun on käynnistettävä Microsoft Exchangen tietosäilöpalvelu uudelleen.

Huomautus Jos määrität aikakatkaisuarvot hyvin pieniksi, palvelimen suorituskyky saattaa heikentyä.

Toisena käyttäjänä lähettämisen oikeuden myöntäminen useille tileille

Tämän artikkelin lopussa on mallikomentosarja, jonka suorittaminen etsii Active Directory -hakemistopalvelun toimialueelta postilaatikon täydet oikeudet ilman postilaatikon toisena käyttäjänä lähettämisen oikeutta omistavia tilejä. Tämä tietoturvamuutos vaikuttaa tällaisiin palvelun tai resurssin tileihin. Komentosarja voi luoda vientitiedoston, jota voit tarkastella ja muokata. Voit tuoda tiedoston uudelleen, jotta voit myöntää toisen käyttäjän puolesta lähettämisen oikeuden sen tarvitseville tileille.

Voit myös myöntää toisen käyttäjän puolesta lähettämisen oikeuden kaikille Active Directory -toimialueen tai säilön käyttäjäobjekteille perimisen avulla. Jos myönnät toisena käyttäjänä lähettämisen käyttöoikeuden tällä tavalla, saatat myöntää oikeuden myös muille kuin tarkoittamillesi objekteille. Lisäksi säilöstä siirrettyjen objektien oikeudet saatetaan menettää. Tämän vuoksi tätä tapaa ei suositella, ja sillä saattaa olla tietoturvaan vaikutuksia, joita on harkittava tarkasti ennen tavan käyttämistä.

Voit myöntää toisena käyttäjänä lähettämisen oikeuden yksittäiselle tilille kaikissa Active Directory -toimialueen tai -säilön käyttäjätileissä seuraavasti:
  1. Käynnistä Active Directoryn käyttäjät ja tietokoneet -hallintakonsoli.
  2. Varmista, että Näytä-valikon Lisäominaisuudet-vaihtoehto on valittuna. Jos tämä vaihtoehto ei ole valittuna, toimialue- ja säilöobjektien Suojaus-välilehti ei ole näkyvissä.
  3. Avaa toimialueen tai säilön ominaisuudet ja valitse sitten Suojaus-välilehti.
  4. Valitse Lisäasetukset.
  5. Jos oikeuden tarvitseva tili ei jo ole luettelossa, valitse Lisää ja valitse tili sitten. Muokkaa tiliä muussa tapauksessa kaksoisnapsauttamalla sitä.
  6. Valitse Käytä-luettelossa Käyttäjäobjektit.
  7. Myönnä tilille toisena käyttäjänä lähettämisen oikeus.
  8. Valitse OK, kunnes olet poistunut ja sulkenut kaikki muutokset.
Huomautus Tämän artikkelin lopussa kuvattu komentosarja ottaa perityt oikeudet huomioon. Tämän vuoksi, jos myönnät toisena käyttäjänä lähettämisen oikeuden tämän tavan avulla, komentosarja ei havaitse tilejä, jotka ovat perineet toisena käyttäjän lähettämisen oikeuden. Jotta voit käsitellä kyseiset tilit myöhemmin komentosarjan avulla, sinun on ensin poistettava peritty toisena käyttäjänä lähettämisen oikeus.

AdminSDHolder-suojattujen tilien erikoissäännöt

Jos myönnät komentosarjan avulla toisena käyttäjänä lähettämisen oikeuden postilaatikon omistajalle, joka on myös toimialueen järjestelmänvalvoja, kyseinen oikeus ei toimi. Microsoft suosittelee, että et määritä postilaatikkoa käyttäjätileille, joilla on toimialueen järjestelmänvalvojan oikeudet tai jotka on adminSDHolder-suojattuja.

AdminSDHolder-objekti on malli tileille, joilla on laajat Active Directory -järjestelmänvalvojaoikeudet. Jotta ei-tarkoitettu käyttöoikeuksien laajentaminen estetään, adminSDHolder-objektin avulla suojatuilla tileillä on oltava käyttöoikeudet, jotka vastaavat itse adminSDHolder-objektissa lueteltuja oikeuksia.

Jos muutat suojatun tilin adminSDHolder-objektin oikeudet, taustalla suoritettava tehtävä kumoaa muutoksen muutaman minuutin kuluessa. Jos esimerkiksi myönnät viestin toisena käyttäjänä lähettämisen oikeuden sovelluspalvelutilin toimialueen järjestelmänvalvojaobjektille, taustalla suoritettava tehtävä poistaa oikeuden automaattisesti.

Tämän vuoksi et pysty myöntämään viestin toisena käyttäjänä lähettämisen oikeutta adminSDHolder-objektilla suojatulle sovelluspalvelutilille, ellet muuta itse adminSDHolder-objektia. Jos muutat adminSDHolder-objektia, kaikkien suojattujen tilien käyttöoikeudet muutetaan. Sinun tulee muuttaa adminSDHolder-objektia vasta sitten, kun olet huolellisesti harkinnut sen vaikutuksia tietoturvaan.

Voit liittää postilaatikon adminSDHolder-objektin avulla suojattuun tiliin seuraavasti:
  1. Käynnistä Active Directoryn käyttäjät ja tietokoneet -hallintakonsoli.
  2. Varmista, että Näytä-valikon Lisäominaisuudet-vaihtoehto on valittuna. Jos tämä vaihtoehto ei ole valittuna, käyttäjätiliobjektien Suojaus-välilehti ei ole näkyvissä.
  3. Luo postilaatikon omistajana toimiva tavallinen käyttäjätili.
  4. Määritä tavalliselle käyttäjätilille postilaatikko Exchange-palvelimessa.
  5. Avaa uuden postilaatikon omistajatilin ominaisuudet.
  6. Myönnä Exchangen lisäasetusten ruudussa suojatulle järjestelmänvalvojatilille postilaatikon täydet käyttöoikeudet.
  7. Myönnä suojatulle järjestelmänvalvojatilille Suojaus-välilehdessä viestin toisena käyttäjänä lähettämisen oikeus.
  8. Sulje postilaatikon omistajan objektin ominaisuudet valitsemalla OK.
  9. Napsauta postilaatikon omistajatiliobjektia hiiren kakkospainikkeella ja poista sitten tiliin kirjautuminen käytöstä valitsemalla tilin käytöstä poistamisen vaihtoehto.
Saat lisätietoja adminSDHolder-suojatuista tileistä napsauttamalla seuraavia artikkelien numeroita, jolloin pääset lukemaan artikkelit Microsoft Knowledge Base -tietokannassa:
907434 Toisena käyttäjänä lähettämisen oikeus poistetaan käyttäjäobjektilta sen jälkeen, kun kyseinen oikeus on määritetty Exchange Serverin Active Directoryn käyttäjät ja tietokoneet -laajennuksessa (tämä artikkeli saattaa olla englanninkielinen)
318180 AdminSDHolder-säie vaikuttaa jakeluryhmien transitiivisiin jäseniin (tämä artikkeli saattaa olla englanninkielinen)
817433 Delegoidut oikeudet eivät ole käytettävissä ja periminen poistetaan käytöstä automaattisesti (tämä artikkeli saattaa olla englanninkielinen)
306398 AdminSDHolder-objekti vaikuttaa entisten järjestelmänvalvojatilien hallinnan delegointiin (tämä artikkeli saattaa olla englanninkielinen)

Erityisiä tehtäviä BlackBerry Enterprise Serverille

Tehtävä 1: Varmista, että BlackBerry Enterprise Server suoritetaan erillisenä ja yksilöllisenä tilinä

Varmista, että BlackBerry Enterprise Server suoritetaan erillisenä tilinä, joka on erityisesti luotu hallintatehtäviä varten. Oletusarvon mukaan tämän tilin nimi on BESAdmin.

Jos käytössäsi on erillinen tili BlackBerry Enterprise Serverin hallintaa varten, siirry tehtävään 2.

Jos erillistä tiliä ei ole, luo sellainen. Käytä sen jälkeen kyseistä tiliä hallintatehtävien tekemiseen. Ohjeet tämän tekemisestä saat käymällä jossakin seuraavista BlackBerryn verkkosivustoista sen mukaan, mitä BlackBerry Enterprise Serverin versiota käytät.

Jos käytössäsi on BlackBerry Enterprise Server 4.0 tai BlackBerry Enterprise Server 4.1, käy seuraavassa BlackBerryn verkkosivustossa:
http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=9174704&sliceId=&dialogID=11024244&stateId=1 0 11020632
Jos käytössäsi on BlackBerry Enterprise Server 3.6, käy seuraavassa BlackBerryn verkkosivustossa:
http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=KB04334&sliceId=SAL_Public&dialogID=11016727&stateId=1 0 11020358

Tehtävä 2: Varmista, että BlackBerry Enterprise Server -palvelutilillä on oikeat käyttöoikeudet

Varmista, että BlackBerry Enterprise Server -palvelutilillä on oikeat käyttöoikeudet.

Huomautus Jos tili sijaitsee toimialueella, varmista, että tili on vain Toimialuekäyttäjät-ryhmän jäsen. Tilin tulee olla Sisäiset järjestelmänvalvojat -ryhmän jäsen toimialueen ohjauskoneessa.
  1. Toimi BlackBerry Enterprise Serverissä seuraavasti:
    1. Varmista, että tili on Local Administrators Group -ryhmän jäsen.
    2. Määritä tilille Log on Locally- ja Log on as a Service -oikeudet.
  2. Myönnä Exchange View-Only Administrator -oikeudet järjestelmänvalvojaryhmän tasolla. Voit tehdä tämän seuraavasti:
    1. Napsauta Exchange System Managerissa hiiren kakkospainikkeella ensimmäistä Exchange Serverin järjestelmänvalvojaryhmän nimeä ja valitse sitten Delegate Control.
    2. Huomaa, että BlackBerry Enterprise Server -palvelutilillä on luettelossa Exchange View-Only Administrator -rooli.
  3. Myönnä kullekin Exchange Server -palvelimelle Send As-, Receive As- ja Administer Information Store -oikeudet palvelimen tasolla. Voit tehdä tämän seuraavasti:
    1. Napsauta Exchange System Managerissa hiiren kakkospainikkeella ensimmäistä Exchange Serverin järjestelmänvalvojaryhmän nimeä ja laajenna sitten Servers-ryhmä.
    2. Napsauta Exchange Server -palvelinta hiiren kakkospainikkeella, valitse Properties ja valitse sitten Security.
    3. Valitse BlackBerry Enterprise Server -palvelintili ylimmässä ruudussa. Varmista alimmassa ruudussa, että Send As-, Receive As- ja Administer Information Store -oikeuksien asetus on Allow.
    4. Toista vaiheet 3b ja 3c kullekin Exchange Server -palvelimelle.
  4. Myönnä postilaatikkosäilölle Send As-, Receive As- ja Administer Information Store -oikeudet. Voit tehdä tämän seuraavasti:
    1. Napsauta Exchange System Managerissa hiiren kakkospainikkeella ensimmäistä Exchangen järjestelmänvalvojaryhmän nimeä ja laajenna sitten Servers-ryhmä.
    2. Laajenna ensimmäinen postilaatikkosäilöryhmä, napsauta kutakin postilaatikkosäilöä hiiren kakkospainikkeella, valitse Properties ja valitse sitten Security.
    3. Valitse BlackBerry Enterprise Server -palvelintili ylimmässä ruudussa. Varmista alimmassa ruudussa, että Send As-, Receive As- ja Administer Information Store -oikeuksien asetus on Allow.
    4. Toista vaiheet 4b ja 4c kunkin Exchange Server -palvelimen kaikille postilaatikkosäilöille.
  5. Toimi Active Directoryn käyttäjät ja tietokoneet -laajennuksessa seuraavasti:
    1. Napsauta hiiren kakkospainikkeella käyttäjää, jolle haluat lisätä oikeuksia, ja valitse sitten Ominaisuudet.
    2. Lisää Security-välilehdessä BlackBerry Enterprise Server -palvelutili ja valitse sitten Send As -valintaruutu.
Jos käytössäsi ei ole Exchange Server 2003 -palvelinta, katso tehtävä 3.

Tehtävä 3: Tyhjennä BlackBerry Enterprise Serverin välimuisti

Jos haluat tyhjentää tietosäilön käyttöoikeusvälimuistin, käynnistä Blackberry-palvelut ja Microsoft Exchangen tietosäilö uudelleen. Kun käynnistät tietosäilön uudelleen, sinun on käynnistettävä RIM Blackberry -palvelut uudelleen, jotta BESAdmin-tilille annetaan juuri lisätty toisena käyttäjän lähettämisen oikeus Exchangen tietosäilöön.

Lisäteitoja Blackberry-palvelimen tarkoista vaatimuksista on seuraavassa BlackBerryn verkkosivustossa:
http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=KB04707&sliceId=SAL_Public&dialogID=3016166&stateId=0%200%202441763

Enemmän tietoa

Exchange-postilaatikon ja -kansion käyttöoikeudet on jaettu Active Directory- ja Microsoft Exchange -tietokantojen kesken. Nämä molemmat käyttöoikeuslajit määritetään kuitenkin Active Directory -käyttäjien hallintakonsolissa, mutta eri oikeudet tallennetaan kahteen erilliseen sijaintiin.

Jos käyttöoikeus määritetään objektin Suojaus-välilehdessä, kyseessä on yleensä Active Directory -oikeus. Jos se määritetään Exchangen postilaatikon lisäoikeuksien sivulla, se on Exchange-tietokannan käyttöoikeus. Tämän vuoksi näyttöön tulee seuraavankaltainen virhesanoma, jos yrität käyttää postilaatikon oikeuksien sivua, kun käyttäjän tietokanta ei ole käytettävissä:
Microsoftin tietosäilöpalvelu ei ole käytettävissä.
Liittyvän ulkoisen tilin oikeus on poikkeus sääntöön, että Exchangen postilaatikon lisäoikeuksien avulla määritetyt oikeudet tallennetaan Exchange-tietokantaan. Liittyvän ulkoisen tilin oikeus ei edes ole todellinen oikeus, vaan tapa asettaa Active Directory -määrite msExchMasterAccountSID. Tämä msExchMasterAccountSID-määrite ei ole oikeus, mutta se ohjaa muiden oikeuksien toimintaa. Lisätietoja msExchMasterAccountSID-määritteestä on Liittyvät ulkoiset tilit -osassa.

Huomautus Active Directoryn msExchMailboxSecurityDescriptor-määrite on varmuuskopio käytössä olevien postilaatikon oikeuksien alijoukosta. Exchange käyttää sitä sisäisesti useisiin tarkoituksiin. Lisäksi msExchMailboxSecurityDescriptor-määrite päivitetään vastaamaan käytössä parhaillaan olevia oikeuksia, jos järjestelmänvalvojat käyttävät tuettuja liittymiä oikeuksien määrittämiseen.

Jos järjestelmänvalvoja kuitenkin muokkaa msExchMailboxSecurityDescriptor-määritettä suoraan, muutoksia ei oteta käyttöön Exchange-säilöön, eivätkä muutokset tule voimaan. Sen synkronointia postilaatikon todellisten oikeuksien kanssa ei taata. Älä käytä msExchMailboxSecurityDescriptor -määritettä postilaatikon oikeuksien lukemiseen tai kirjoittamiseen.

Saat lisätietoja napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokannassa:
310866 Exchange Server 2003:n ja Exchange 2000 Serverin postilaatikko-oikeuksien määrittäminen tietosäilössä olevalle postilaatikolle (tämä artikkeli saattaa olla englanninkielinen)

Postilaatikon täydet käyttöoikeudet ovat Exchange-tietokantasäilön oikeudet. Toisena käyttäjänä lähettämisen oikeus on Active Directoryn oikeus. Ennen tässä artikkelissa kuvattuja Exchangen Store.exe-tiedoston muutoksia Exchange-järjestelmä ei tarkistanut toisena käyttäjänä lähettämisen oikeutta, jos lähettäjällä jo oli postilaatikon täydet käyttöoikeudet.

Huomautus Voit myöntää toisena käyttäjänä lähettämisen oikeuden myöntämättä postilaatikon täysiä käyttöoikeuksia. Näissä tilanteissa Exchange on aina tarkistanut toisena käyttäjänä lähettämisen oikeuden.

Toisena käyttäjän lähettämisen oikeuden sisältyminen postilaatikon täysiin käyttöoikeuksiin on sallinut Exchange-palvelinten järjestelmänvalvojien myöntää itselleen toisena käyttäjänä lähettämisen oikeudet mihin tahansa hallitsemansa palvelimen postilaatikkoon. Järjestelmänvalvojat voivat tehdä tämän toimen, koska he hallitsevat Exchange-tietokantaa täysin. Kun toisena käyttäjänä lähettämisen oikeus erotetaan postilaatikon täysistä käyttöoikeuksista, Active Directory -järjestelmänvalvojat pystyvät nyt estämään tämän prosessin, koska toisena käyttäjänä lähettämisen oikeus on Active Directory -oikeus eikä Exchange-säilön oikeus. Tämän vuoksi Exchange-järjestelmänvalvojat eivät välttämättä hallitse sitä.

Postilaatikon omistajat

Postilaatikon omistaja on Active Directory -käyttäjätili, jonka msExchMailboxGUID-määritteessä on tietyn postilaatikon GUID (Globally Unique numeric Identifier) -tunnus. Vain yhdellä tilillä koko toimialuepuuryhmässä voi olla tietyn postilaatikon GUID-tunnus. Jos yrität määrittää toiselle omistajalle saman GUID-tunnuksen, Active Directory hylkää muutoksen ja tuo näyttöön virhesanoman.

Kun määrität postilaatikon tilille tai yhdistät katkaistun postilaatikon Active Directory -tilille, postilaatikon GUID-tunnus määritetään kyseiselle tilille automaattisesti. Järjestelmänvalvojat joutuvat määrittämään postilaatikkojen GUID-tunnukset suoraan vain harvoin, eikä sitä suositella.

Liittyvät ulkoiset tilit

Yleinen Exchange-kokoonpano on asentaa Exchange toimialuepuuryhmäresurssiin. Toimialuepuuryhmäresurssi on toimialuepuuryhmä, joka sijaitsee eri toimialuepuuryhmässä kuin ne käyttäjätilit, joilla on postilaatikot järjestelmässä. Tämä aiheuttaa ongelman, koska msExchMailboxGUID-määrite voidaan määrittää vain objekteille, jotka ovat samassa toimialuepuuryhmässä kuin Exchange-palvelin.

Tämän ongelman ratkaisu on määrittää postilaatikko tilille Exchange-palvelimen toimialuepuuryhmässä ja linkittää kyseinen postilaatikon omistava tili sitten tiliin toisessa toimialuepuuryhmässä tai Microsoft Windows NT 4 -toimialueessa. Voit tehdä tämän myöntämällä liittyvän ulkoisen tilin käyttöoikeuden. Liittyvän ulkoisen tilin oikeus voidaan myöntää vain yksittäiselle tilille. Valitun tilin on sijaittava eri toimialuepuuryhmässä.

Kun määrität liittyvän ulkoisen tilin oikeuden, kirjoitat ulkoisen tilin SID-arvon postilaatikon omistajan msExchMasterAccountSID-määritteeseen. Tämän vuoksi tämä ei ole käyttöoikeus, vaan kätevä tapa hallita msExchMasterAccountSID-määritteen arvoa. Kun msExchMasterAccountSID-määrite on määritetty, SID-tunnuksen omistavalle ulkoiselle tilille myönnetään Exchange-oikeudet samaan tapaan kuin jos se olisi todellinen postilaatikon omistajatili.

Huomaa, että tämä koskee vain Exchangen käyttöä eikä kaikkia Active Directoryn käyttöjä. Lisäksi sinun tulee merkitä postilaatikon omistajatili käytöstä poistetuksi kirjautumisille sen jälkeen, kun olet määrittänyt liittyvän ulkoisen tilin oikeuden, jotta kaikki oikeudet toimivat odotetusti.
300456 Asiakaskäyttöoikeudet ja -delegoinnit eivät säily Exchange 2000:ssa määrittämisen jälkeen (tämä artikkeli saattaa olla englanninkielinen)

Delegointiskenaariot

Edustaja on käyttäjä, jolle on määritetty (delegoitu) osittainen käyttöoikeus toiseen postilaatikkoon ja oikeus lähettää sähköpostiviestejä postilaatikon omistajan puolesta. Yleinen delegointiskenaario on delegoida sihteerille käyttöoikeus johtajan kalenteriin. Edustaja voi yleensä lukea kalenteria ja päivittää sen. Lisäksi edustajana toimiva sihteeri pystyy vastaamaan sähköpostiviesteihin johtajan puolesta.

Edustajan käyttöoikeudet myönnetään lisäämällä edustaja postilaatikon omistajan useita arvoja sisältävään publicDelegates-määritteeseen. Kaikki tässä määritteessä luetelluilla käyttäjillä on postilaatikon omistajan puolesta lähettämisen oikeus. Kun tällainen edustaja lähettää sähköpostiviestin, jonka Lähettäjä-ruudussa on omistajan nimi, sähköpostin Lähettäjä-ruudussa näkyy seuraavankaltainen teksti:
<Edustajan nimi> edustaa käyttäjää <Postilaatikon omistaja>
Sähköpostiviesti kuitenkin lähetetään edustajalta eikä postilaatikon omistajalta tai postilaatikon omistajana.

Seuraavassa on lueteltu kaksi liittymää, joiden avulla voit myöntää käyttäjän puolesta lähettämisen ja edustajan käyttöoikeudet:
  • Myönnä postilaatikon omistajaobjektille puolesta lähettämisen oikeus Exchangen yleisten asetusten valintaikkunassa.
  • Käytä Microsoft Outlookissa Edustajat-valintaikkunaa.
Molemmat nämä tavat määrittävät publicDelegates-määritteen. Outlookin käyttäminen kuitenkin mahdollistaa myös erityisten kansion käyttöoikeuksien myöntämisen edustajalle. Voit myös myöntää käyttöoikeudet suoraan edustajalle Outlookissa yksittäisen kansion ominaisuuksissa.

Joissakin tapauksissa et välttämättä pysty määrittämään publicDelegates-määritettä Outlookissa.
329622 Käyttäjän puolesta lähettämisen käyttöoikeutta ei määritetä käyttäjälle käytön delegoimisen jälkeen Outlookissa (tämä artikkeli saattaa olla englanninkielinen)

Jos myönnät edustajalle käyttöoikeuden postilaatikkoosi, hän pystyy käyttämään käyttäjän puolesta lähettämisen oikeutta, vaikka et myöntäisi oikeutta mihinkään postilaatikkokansioosi. Edustajan perusoikeus on toisen käyttäjän puolesta lähettämisen oikeus. Postilaatikkosi kansioiden käyttöoikeudet ovat erilliset oikeudet, ja ne on myönnettävä edustajaoikeuksien lisäksi.

Yleensä edustajat käyttävät Microsoft Outlookia sellaisten yksittäisten kansioiden käyttämiseen, joille olet antanut oikeudet. Voit tehdä tämän valitsemalla Outlookin Tiedosto-valikosta Avaa ja valitsemalla sitten Muun käyttäjän kansio.

Lisäksi edustajat pystyvät avaamaan postilaatikkonsa määrittämällä sen lisäpostilaatikoksi Outlook-profiiliensa Lisäasetukset-välilehdessä. Tämän tavan käyttäminen lisää postilaatikkosi edustajan Outlook-kansiopuuhun. Lisäksi se mahdollistaa kaikkien niiden postilaatikkosi kansioiden käyttämisen, joihin edustajalle on myönnetty oikeudet.

Toisinaan saatat haluta edustajallasi olevan käyttäjän puolesta lähettämisen oikeus ja toisinaan toisena käyttäjänä lähettämisen oikeus. Voit määrittää edustajalle nämä kaksi oikeutta seuraavasti:
  • Myönnä edustajalle postilaatikon täydet käyttöoikeudet. Tätä ei voit tehdä Outlookin avulla. Active Directory -järjestelmänvalvojan on tehtävä tämä postilaatikon omistajatilille. Vaikka myöntäisit omistajan oikeudet kaikille postilaatikkosi kansioille, se ei ole sama kuin postilaatikon täydet käyttöoikeudet.
  • Älä myönnä edustajalle toisena käyttäjänä lähettämisen oikeutta. Jos myönnät edustajalle toisena käyttäjänä lähettämisen oikeuden, kaikki edustajan lähettämät sähköpostiviestit lähetetään käyttäen toisena käyttäjänä lähettämisen oikeutta. Edustaja ei enää pysty käyttämään käyttäjän puolesta lähettämisen oikeutta.
Tässä skenaariossa edustajien, jotka haluavat käyttää käyttäjän puolesta lähettämisen oikeutta, tulee kirjautua omiin postilaatikoihinsa. Jos edustajat vastaavat jossakin kansiossasi jo olevaan sähköpostiviestiin tai välittävät sen, kyseinen sähköpostiviesti lähetetään automaattisesti puolestasi. Jos edustajat luovat uuden sähköpostiviestin puolestasi, heidän on kirjoitettava nimesi Lähettäjä-ruutuun, jotta sähköpostiviesti lähetetään puolestasi.

Riippumatta siitä, ovatko edustajat avanneet kansiosi tai koko postilaatikkosi toissijaisena postilaatikkona, kaikki heidän sinulta lähettämänsä sähköpostiviestit käyttävät käyttäjän puolesta lähettämisen oikeutta niin kauan, kun heidän oma postilaatikkonsa on nykyisen Outlook-profiilin ensisijainen postilaatikko.

Kun edustajat haluavat lähettää sähköpostiviestin sinuna, heidän tulee kirjautua postilaatikkoosi käyttäen erillistä Outlook-profiilia, joka avaa vain postilaatikkosi. Sähköpostiviestit, jotka edustajat lähettävät tähän profiiliin kirjautuneena, lähetetään automaattisesti sinulta.

Sellaisten tilien löytäminen, joilla on postilaatikon täydet oikeudet ilman toisena käyttäjänä lähettämisen oikeutta

Tässä osassa kuvatun mallikomentosarjan suorittaminen pystyy etsimään yhdestä Active Directory -toimialueesta kerrallaan sellaisia käyttäjätilejä, joiden postilaatikoille on myönnetty postilaatikon täydet käyttöoikeudet ilman toisena käyttäjänä lähettämisen oikeutta.

Tärkeää Lue Tietoja postilaatikoiden omistajista, joilla on edustajia -osa ennen oikeuksien muuttamista.

Komentosarjassa on seuraavat kolme tilaa:
  • Export (vieminen): Voit tulostaa luettelon käyttäjistä, joilla on postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta. Tämän jälkeen voit tarkastella tätä luetteloa Muistiossa tai jossakin muussa editorissa ja poistaa ne tilit, joille et halua määrittää toisena käyttäjänä lähettämisen oikeutta.
  • Import (tuominen): Voit tuoda luettelon käyttäjistä, joilla on postilaatikon täydet käyttöoikeudet ja joille tulee määrittää myös toisena käyttäjänä lähettämisen oikeus. Huomaa, että et tämän komentosarjan avulla pysty myöntämään sekä postilaatikon täysiä käyttöoikeuksia että toisena käyttäjänä lähettämisen oikeutta. Kullakin tilillä on jo oltava postilaatikon täydet käyttöoikeudet, jotta toisena käyttäjänä lähettämisen oikeus voidaan myöntää.
  • SetAll (määritä kaikki): Voit määrittää toisena käyttäjänä lähettämisen oikeuden kaikille toimialueen käyttäjille, joilla jo on postilaatikon täydet käyttöoikeudet johon tiettyyn postilaatikkoon. Lokitiedosto luodaan samassa muodossa kuin vientitiedosto. Tämä vastaa Export- ja Import-tilojen suorittamista niin, ettei vientitiedostoa muokata.
Huomautus Tässä komentosarjassa ei ole kumoamistoimintoa.

Komentosarjan edellyttämät oikeudet

Sinun on suoritettava komentosarja, kun olet kirjautuneena järjestelmänvalvojan tiliin samassa toimialuepuuryhmässä, josta postilaatikon omistajien tilit ovat peräisin. Komentosarja ei välttämättä toimi sellaisen tilin kanssa, jolla on toimialueiden väliset järjestelmänvalvojan oikeudet. Komentosarja ei välttämättä myöskään toimi, kun suoritat sen työasemasta, joka on liitetty eri toimialuepuuryhmään kuin siihen, johon postilaatikkojen omistajien tilit on liitetty.

Noudattamalla näitä ehtoja voit suorittaa komentosarjan useiden järjestelmänvalvojatilien avulla yksittäisessä kirjautumisistunnossa RunAs.exe-komennon avulla. Tästä saattaa olla hyötyä, jos sinulla on segmentoidut Active Directory- ja Exchange Server -käyttöoikeudet, eikä sinulla ole mitään yksittäistä tiliä, joka pystyy hallitsemaan kaikkia Exchange-palvelimia tai kaikkia Active Directory -toimialueita. Voit avata komentokehotteen ja suorittaa komentosarjan käyttäen kutakin järjestelmänvalvojatiliä. Tarkastele seuraavaa esimerkkiä:
RunAs.exe /user:domain\account CMD.EXE
Huomautus Älä suorita komentosarjasta useita kopioita samanaikaisesti samalle toimialueelle.

Vientitiedoston kentät ovat seuraavat. Kentät on kuvattu siinä järjestyksessä, kun ne ovat vientitiedostossa.
  • Postilaatikon omistajan tilin näyttönimi

    Tulostetiedostossa saattaa olla useita rivejä, joissa on sama postilaatikon omistaja. Näin tapahtuu, kun useilla muilla tileillä on postilaatikon täydet käyttöoikeudet samaan postilaatikkoon.
  • Sen tilin toimialue ja kirjautumisnimi, jolla on postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta

    Sama tili saattaa näkyä useita kertoja vientitiedostossa, jos tilillä on useiden postilaatikoiden oikeudet. Näin tapahtuu todennäköisesti, jos kyseessä on sovelluspalvelutili tai henkilö, joka hallitsee useita resurssipostilaatikoita.
  • Sen tilin näyttönimi, jolla on postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta

    Tämä kenttä yhdessä kirjautumisnimen kentän kanssa helpottaa tilin tunnistamista.
  • Postilaatikon omistajan edustajien tila

    Jos postilaatikon omistajilla on edustajia, kentän arvo on Has Delegates (Edustajia). Jos postilaatikon omistajilla ei ole edustajia, kentän arvo on No Delegates (Ei edustajia).
  • Postilaatikon omistajan tilin Enabled (Käytössä) tai Disabled (Ei käytössä) -tila

    Tästä kentästä on hyötyä resurssipostilaatikkotilien tai toimialueiden välisten postilaatikkotilien tunnistamisessa. Nämä tilit on yleensä poistettu käytöstä.
  • Postilaatikon omistajatilin täydellinen DN (Distinguished Name) -nimi

    Tästä kentästä on hyötyä postilaatikon omistajatilin toimialueen ja säilön tunnistamisessa.
  • Postilaatikon omistajan postilaatikkotietokannan täydellinen DN (Distinguished Name) -nimi

    Tämä kenttä sisältää postilaatikon tietokannan, säilöryhmän, palvelimen ja hallintaryhmän.
Seuraavassa esimerkissä käyttäjällä, jonka kirjautumisnimi on NoSendAs, on Mailbox Owner -postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta:
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [muut kentät jätetty pois]

Komentosarjan järjestelmänvalvojan työaseman kokoonpano

Tämä komentosarja käyttää Exchange-hallintaliittymiä tietoliikenteeseen Exchange-palvelinten kanssa. Tämän vuoksi komentosarja on suoritettava Exchange-palvelimesta tai työasemasta, johon on asennettu Exchange System Administrator.

Vientitiedoston muokkaaminen

Vientitiedosto on muotoiltu Unicode-tekstimuotoon, jotta eri kielten merkistöjä voidaan käyttää. Jotkin tekstieditorit eivät välttämättä pysty tarkastelemaan tai muokkaamaan tiedostoa, tai ne saattavat tallentaa tiedoston ANSI- tai ASCII-tekstinä. Microsoft Windows XP:n, Microsoft Windows 2000:n ja Microsoft Windows 2003:n Muistio-apuohjelma pystyy käsittelemään Unicode-tekstitiedostoja oikein. Lisäksi Microsoft Excel pystyy käsittelemään Unicode-tekstitiedostoja oikein.

Tulostetiedosto on sarkainerotellussa muodossa, ja kunkin kentän arvojen ympärillä on kolminkertaiset lainausmerkit. Kolminkertaisten lainausmerkkien käyttäminen tekee Exceliin tuomisesta ja Excelistä viemisestä selkeämpää. Excelissä kolminkertaisista lainausmerkeistä tulee yksinkertaiset lainausmerkit, ja ne palautetaan takaisin kolminkertaisiksi lainausmerkeiksi, kun tiedosto tallennetaan uudelleen Unicode-tekstinä. Noudata seuraavia ohjeita vientitiedoston oikeasta avaamisesta ja tallentamisesta Excelissä.

Voit myös suodattaa vientitiedoston ilman Exceliä käyttämällä Find.exe- tai Findstr.exe-apuohjelmaa. Näiden Windowsiin sisältyvien apuohjelmien avulla voit etsiä sanoja tiedostosta ja saada tulosteeksi vain määritetyt sanat sisältävät rivit tai vain rivit, jotka eivät sisällä kyseisiä sanoja. Jos esimerkiksi haluat tehdä tiedostoon luettelon kaikista postilaatikon omistajista, joilla on edustajia, käytä jompaakumpaa näistä komennoista ja luo tiedosto, jossa on vain ?Has Delegates? -merkkijonon sisältävät rivit:
Find.exe ?Has Delegates? OriginalFile.txt > HasDelegates.txt

Findstr.exe /C:?Has Delegates? OriginalFile.txt > HasDelegates.txt
Oletetaan toisena esimerkkinä, että suodatat pois kaikki postilaatikoiden omistajat, joilla on edustajia. Valitsimen /V käyttäminen tulostaa kaikki rivit, joissa etsittäviä sanoja ei ole. Voit käyttää kumpaa tahansa näistä komennoista ja luoda tiedoston, joka jättää kaikki "Has Delegates" -rivit pois:
Find.exe ?No Delegates? OriginalFile.txt > NoDelegates.txt

Find.exe /V ?Has Delegates? OriginalFile.txt > NoDelegates.txt

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

Findstr.exe /V /C:?Has Delegates? OriginalFile.txt > NoDelegates.txt
Voit myös käyttää näitä komentoja sellaisen tiedoston luomiseen, jossa on luettelo kaikista niistä tileistä, joiden sovelluspalvelutilillä on postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta. Valitsin /I määrittää, että isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi:
Find.exe /I ?domain\ServiceAccount? OriginalFile.txt > ServiceAccount.txt

Findstr.exe /I /C:?domain\ServiceAccount? OriginalFile.txt > ServiceAccount.txt
Huomautus Jos käytät Find.exe-apuohjelmaa suodatetun tiedoston luomiseen, sinun on poistettava Find.exe-apuohjelman tiedoston alkuun luomat otsikkorivit.

Älä käytä yleismerkkejä (*.*) sisältäviä tiedostonimiä Findstr.exe-apuohjelman kanssa. Jos käytät yleismerkkejä, tulostetiedoston kaikkien rivien alussa on tiedostonimi. Tarkastele tulostetiedostoa huolellisesti Find.exe- tai Findstr.exe-apuohjelmalla suodattamisen jälkeen ja varmista, että suodattimesi kaappasi tai jätti pois tarkoittamasi tilit.

Seuraavassa esimerkissä käyttäjällä, jonka kirjautumisnimi on NoSendAs, on Mailbox Owner -postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta.
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [muut kentät jätetty pois]  

Tietoja postilaatikoiden omistajista, joilla on edustajia

Edustajalle, jolla on postilaatikon täydet käyttöoikeudet (kutsutaan myös erikoisedustajaksi), tulee yleensä myöntää toisena käyttäjänä lähettämisen oikeus. Kun erikoisedustaja kirjautuu suoraan postilaatikon omistajan postilaatikkoon, hän pystyy lähettämään toisena käyttäjänä. Kun edustaja käyttää Outlookin delegointiominaisuuksia (avattavat lisäpostilaatikot tai muun käyttäjän kansion avaaminen), viestit lähetetään toisen käyttäjän puolesta.

Myönnä toisena käyttäjän lähettämisen oikeus erikoisedustajalle vain, jos haluat hänen lähettävän aina postilaatikon omistajana eikä koskaan postilaatikon omistajan puolesta. Microsoft suosittelee, että etsit vientitiedostosta tekstiä "Has Delegates" ja selvität sitten, ovatko jotkin luetellut erikoisedustajat itse asiassa postilaatikon omistajan edustajia.

Vientitiedostossa on lueteltu vain erikoisedustajat. Tavallisilla edustajilla ei ole postilaatikon täysiä käyttöoikeuksia. Lisäksi, kun myönnät toisena käyttäjänä lähettämisen oikeuden tavalliselle edustajalle, hän lähettää aina postilaatikon omistajana. Näin tapahtuu, vaikka tavallisella edustajalla ei olisi postilaatikon täysiä käyttöoikeuksia. Jos myönnät toisena käyttäjän lähettämisen oikeuden edustajalle vahingossa, voit kumota oikeuden helposti myöhemmin.

Vientitiedoston avaaminen Excelissä

  1. Käynnistä Excel ennen vientitiedoston avaamista.
  2. Avaa tiedosto Excelissä tekstitiedostona. Tämä käynnistää ohjatun tekstin tuomisen.
  3. Muuta seuraavia asetuksia ohjatussa tekstin tuomisessa tai hyväksy ne:
    • Alkuperäinen tietotyyppi: Erotettu
    • Aloita tunti riviltä: 1
    • Tiedoston alkuperä: Unicode (UTF-8)
    • Erottimet: ainoastaan Sarkain
    • Käsittele peräkkäisiä erottimia yhtenä: ei valittu
    • Tekstin tarkenne: " (lainausmerkit)

Vientitiedoston tallentaminen sen jälkeen, kun sitä on muokattu Excelissä

  1. Valitse Tallenna nimellä vientitiedoston ollessa avoinna.
  2. Anna tiedostolle eri tiedostonimi, jotta alkuperäisen tiedoston muokkaamaton versio säilytetään.
  3. Valitse Tiedosto-valikosta Tallenna nimellä, kirjoita tiedostonimi tulostetiedoston tallentamista varten ja valitse sitten avattavasta Tallennusmuoto-luettelosta Unicode-muoto.

Komentosarjan syntaksi

Tämä on tekstitilakomentosarja, ja se tulee suorittaa komentokehoteikkunassa Suorita-valintaikkunan sijaan. Avaa komentokehoteikkuna napsauttamalla Käynnistä-painiketta, valitsemalla Suorita, kirjoittamalla Avaa-ruutuun CMD ja valitsemalla sitten OK.

Virheloki- ja vientitiedostot tallennetaan komentokehotteen nykyiseen kansioon. Sinulla on oltava oikeudet luoda tiedostoja tähän kansioon.
Voit tarkastella komentoriviohjetta kirjoittamalla seuraavan komennon:
CSCRIPT AddSendAs.vbs
Voit viedä käyttäjät, joilla on postilaatikon täydet oikeudet mutta ei toisena käyttäjänä lähettämisen oikeudetta toimialueessa, kirjoittamalla seuraavan komennon:
CSCRIPT AddSendAs.vbs [toimialueen ohjauskoneen nimi] ?Export Esimerkki: CSCRIPT AddSendAs.vbs CORP-DC-1 ?Export
Vientitiedosto luodaan nimellä Send_As_Export_T_MM_SS.txt.
Voit tuoda muokatun vientitiedoston kirjoittamalla seuraavan komennon:
CSCRIPT AddSendAs.vbs [toimialueen ohjauskoneen nimi] ?Import [tiedostonimi] Esimerkki:


CSCRIPT AddSendAs.vbs CORP-DC-1 ?Import "Send_As_Export_T_MM_SS.txt"

Toisena käyttäjänä lähettämisen oikeuden myöntäminen kullekin toimialueen postilaatikolle kaikille käyttäjille, joilla jo on postilaatikon täydet käyttöoikeudet postilaatikolle

Huomautus Jos sinulla on edustajia, joilla myös on organisaatiossasi postilaatikon täydet käyttöoikeudet, älä käytä SetAll-tilaa. Jos käytät SetAll-tilaa tässä tilanteessa, edustajille myönnetään toisena käyttäjänä lähettämisen oikeus. Tämä saattaa aiheuttaa sen, että kaikki edustajien lähettämät sähköpostiviestit lähetetään käyttäen toisena käyttäjänä lähettämisen oikeutta käyttäjän puolesta lähettämisen oikeuden sijaan. Voit korjata tämän ongelman poistamalla edustajalle virheellisesti myönnetyn toisena käyttäjänä lähettämisen oikeuden.
CSCRIPT AddSendAs.vbs [toimialueen ohjauskoneen nimi] ?SetAll

Esimerkki:


CSCRIPT AddSendAs.vbs CORP-DC-1 ?SetAll
Jos käytät SetAll-tilaa, vientitiedosto luodaan nimellä Send_As_Export_T_MM_SS.txt. Sinun tulee tallentaa tämä tiedosto, koska se sisältää tiedot kaikista muutetuista tileistä. Jos suoritat komentosarjan uudelleen, se ei tulosta luetteloa samoista tileistä, koska tileille on jo myönnetty toisena käyttäjänä lähettämisen oikeus.

Komentosarjan suorittamisen aikana ilmenneet virheet tallennetaan Send_As_Errors_T_MM_SS.txt-tiedostoon. Virhetiedoston nimi vastaa liittyvän vientitiedoston tunnit_minuutit_sekunnit-aikaleimaa.

Komentosarjan muokkaukset

Organisaatiossasi saattaa olla tilejä, joilla on oikeudet useisiin objekteihin, mutta et halua muuttaa kyseisiä oikeuksia. Voit pienentää vientitiedoston kokoa suodattamalla nämä tilit muokkaamalla FMA_EXCLUSIVE_LIST-muuttujaa, joka sijaitsee komentosarjan alun lähellä. Oletusarvon mukaan tässä muuttujassa on joidenkin komentosarjatulosteesta pois jätettävien tilien luettelo. Voit lisätä tilejä käyttäen seuraavaa muotoa:
& "<Toimialue\Nimi>" & OUTPUT_DELIMITER
Voit esimerkiksi muuttaa seuraavan muuttujan arvon:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
Seuraavaksi arvoksi:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "OmaToimialue\Palvelu1" & OUTPUT DELIMITER
Tämä muutos jätttää vientitiedostosta pois "OmaToimialue\Palvelu"-tilin sekä "NT AUTHORITY\SELF"- ja "NT AUTHORITY\SYSTEM"-tilit. Huomaa, että Toimialue\Nimi-arvossa isot ja pienet kirjaimet tulkitaan eri merkeiksi ja että sen tulee olla tarkalleen siinä muodossa kuin se näkyisi vientitiedostossa.

On olemassa myös toinen muokattava muuttuja FMA_EXCLUSIVE_EXSVC, jonka oletusarvo on "\Exchange Services" & OUTPUT_DELIMITER. "Exchange Services" on sen tilin nimi, jolle myönnetään oikeudet Active Directory Connectorin kautta Exchange 5.5:n and Exchange 2000:n siirtymis- ja yhteistoimintaskenaarioissa. Tämä tili luodaan useissa toimialueissa, ja se saattaa näkyä toistuvasti viestitiedostossa, jos sen esiintymiä ei jätetä pois.

FMA_EXCLUSIVE_EXSVC-muuttujan arvona voi olla vain yksi tili. Tilin nimessä isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi. Luettelossa olevan tilin nimen on alettava kenoviivalla (\), eikä se saa sisältää toimialuetta, johon se kuuluu. Tili jätetään pois kaikkien niiden toimialueiden osalta, joissa se on.

Jos olet käyttänyt kolmannen osapuolen siirtymistyökaluja tai hakemiston synkronointitapoja, useissa toimialueissa saattaa olla eri tili, jolle on myönnetty laajat käyttöoikeudet käyttäjien postilaatikoihin. Tässä tapauksessa voit korvata "\Exchange Services" -arvon kyseisen tilin nimellä.

Vihjeitä ja riskejä

  • Älä poista komentosarjan luomia loki- ja virhetiedostoja. Niistä saattaa olla myöhemmin hyötyä vianmäärityksessä tai muutosten kumoamisessa. Muista, että heti, kun olet myöntänyt jollekin tilille toisena käyttäjänä lähettämisen oikeuden, tiliä ei enää kirjata vientitiedostoon.
  • Jos jokin Exchange-palvelin tai tietokanta ei ole käytettävissä, komentosarjan suorittaminen hidastuu. Tässä tapauksessa voit lajitella vientitiedoston tietokannan mukaan ja siirtää pysäytettyyn tietokantaan liittyvät rivit eri tiedostoon myöhempää tuontia varten.
  • Komentosarja ei tulosta tilejä, joiden kirjautumisnimi loppuu merkkiin $ tai joiden nimi on NT AUTHORITY\SYSTEM. Näiden järjestelmän alitilien ei yleensä pitäisi tarvita toisena käyttäjänä lähettämisen oikeutta, ja niiden poistaminen vientitiedostosta pienentää tiedoston kokoa huomattavasti.
  • Vientitiedoston on oltava Unicode-muodossa, ennen kuin se voidaan tuoda. Jos olet vahingossa tallentanut tiedoston ANSI-tekstinä, voit korjata ongelman lataamalla tiedoston Muistiossa ja tallentamalla sen Unicode-tekstinä.
  • Jos tuonti ei onnistu, tee vianmääritys testitilien avulla niin, että tuontitiedostossa on vain yksi rivi. Määritä testitili, jolla on postilaatikko käynnissä olevassa Exchange-palvelimessa, ja myönnä toiselle testitilille sitten postilaatikon täydet käyttöoikeudet mutta ei toisena käyttäjänä lähettämisen oikeutta.
  • Tällä komentosarjalla ei ole muutosten kumoamisten tilaa. Jos haluat poistaa tämän komentosarjan avulla myöntämäsi toisena käyttäjänä lähettämisen oikeudet, sinun on luotava toinen komentosarja tai poistettava ne manuaalisesti. Kumoamistilaa ei ole sisällytetty komentosarjaan, jotta komentosarjaa ei voi käyttää kaikkien organisaation käyttäjien toisena käyttäjänä lähettämisen oikeuksien poistamiseen.
  • Komentosarja ei käsittele oikein tiliä, jolle on myönnetty täydet oikeudet käyttäjäobjektiin sekä postilaatikon täydet käyttöoikeudet. Täysiin oikeuksiin kuuluu toisena käyttäjänä lähettämisen oikeus, mutta komentosarja vie tilin kuin sillä ei olisi kyseistä oikeutta. Tämä saattaa kasvattaa vientitiedoston kokoa, mutta tiedoston tuomisesta ja toisena käyttäjänä lähettämisen oikeuden myöntämisestä kyseisille tileille uudelleen ei ole haittaa.
  • Tämän komentosarjan avulla ei voi käsitellä Active Directory -käyttäjätilejä, joilla on sarkaimia tai parittomia lainausmerkkejä sisältäviä DN (Distinguished Name) -nimiä. Komentosarja pystyy käsittelemään parilliset lainausmerkit sisältävän nimen oikein. Tällaisia nimiä ovat
    ?CN=First ?Kutsumanimi? Last,DC=domain,DC=com?
    .
  • Excel pystyy käsittelemään tiedostoja, joissa on enintään 65 535 riviä. Jos tulostetiedostosi on tätä suurempi, sinun on jaettava se osiin, ennen kuin lataat sen Exceliin.
  • Send_As_Errors-tiedostossa on luettelo niistä tileistä, joiden oikeuksien lukemisessa tai kirjoittamisessa ilmeni virhe. Jos toimialueen muut tilit käsiteltiin oikein, näillä tileillä saattaa olla jokin yhteinen tekijä, joka estää komentosarjan suorittamisen niille. Yleisiä ongelmia ovat esimerkiksi seuraavat:
    • Järjestelmänvalvojan oikeuksien puuttuminen tilien ominaisuuksien tarkastelemista tai määrittämistä varten.
    • Exchange-postilaatikkosäilö ei ole käynnissä.
    • Työasema ei ole saman toimialueen jäsen.
    • Käytettävä järjestelmänvalvojan tili ei kuulu samaan toimialuepuuryhmään.
Voit suorittaa tämän komentosarjan kopioimalla ja liittämällä kaikki BEGIN SCRIPT- ja END SCRIPT -merkintöjen välissä olevat rivit vain teksti -editoriin, kuten Muistioon. Tallenna komentosarja nimellä AddSendAs.vbs. BEGIN SCRIPT
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

Microsoftin tarjoamat ohjelmointiesimerkit ovat vain ohjeellisia, eikä niihin liity mitään nimenomaisesti ilmaistua tai oletettua takuuta, mukaan lukien oletettu takuu tuotteen soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta johonkin tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että olet perehtynyt käytettyyn ohjelmointikieleen sekä työkaluihin, joita käytetään prosessien luomisessa sekä virheiden jäljittämisessä ja korjaamisessa. Microsoftin tukipalvelun asiantuntijat voivat auttaa tietyn toiminnon toteuttamisessa, mutta he eivät muokkaa näitä esimerkkejä niiden kuvaamien toimintojen parantamiseksi eivätkä esitä ratkaisuja erityistarpeita varten.
Lisätietoja Microsoftilta saatavana olevista tukivaihtoehdoista on seuraavassa Microsoftin verkkosivustossa:
http://support.microsoft.com/contactus/?ws=support
Tässä artikkelissa käsitellyt kolmansien osapuolten tuotteet ovat Microsoftista riippumattomien yritysten valmistamia. Microsoft ei anna näiden tuotteiden suorituskykyä tai luotettavuutta koskevaa takuuta.

Ominaisuudet

Artikkelin tunnus: 912918 - Viimeisin tarkistus: 26. marraskuuta 2007 - Versio: 17.2
Artikkelin tiedot koskevat seuraavia tuotteita:
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
Hakusanat: 
kbtshoot kbpending kbbug kbprb KB912918

Anna palautetta

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com