Brukere kan ikke sende e-postmeldinger fra en mobil enhet eller fra en delt postboks i Exchange 2000 Server eller i Exchange Server 2003

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 912918 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

På denne siden

Symptom

Når du prøver å sende en e-postmelding i Microsoft Exchange 2000 Server eller Microsoft Exchange Server 2003, får du ikke sendt meldingen. I tillegg kan du komme til å motta en av følgende feilmeldinger eller rapporter om ulevert melding.

Feilmeldinger

  • Ingen tilgang
  • Du har ikke tilgang til å utføre denne operasjonen på dette objektet. Kontakt en mappekontakt eller systemansvarlig.
  • Uoppført meldingsfeil
  • MAPI_E_NO_ACCESS -2147024891
  • Kunne ikke sende e-postmelding til bruker USERNAME (HRESULT:-2147024891) Stanser bruker USERNAME midlertidig. (Sikkerhetsfeil ? får ikke tilgang til brukerens postboks.)
  • Finner ikke ressurs
Obs!  Du mottar feilmeldingen "Ingen tilgang" eller "Finner ikke ressurs" fra Outlook Web Access når du er logget på som en representant.

Rapporter om ulevert melding

  • Du har ikke tillatelse til å sende e-post til denne mottakeren. Kontakt systemansvarlig.
  • Meldingen kunne ikke sendes via e-postboksen. Du har ikke tillatelse til å sende meldingen på vegne av den angitte brukeren.
Dette problemet er kjent for å påvirke følgende tredjepartsprodukter:
  • Research In Motion (RIM) BlackBerry Enterprise Server (BES)
  • Good Technology GoodLink Wireless Messaging
Det er imidlertid bekreftet at følgende tredjepartsprodukter ikke påvirkes av dette problemet.
  • Cisco Unity Unified Messaging
  • Quest Migration Suite for Exchange
  • Microsoft ExMerge-verktøyet for Exchange
Problemet kan også påvirke egendefinerte MAPI- eller Collaborative Data Objects (CDO)-baserte programmer som sender e-postmeldinger.

Andre tredjepartsprodukter som bruker tjenestekontoer til å sende e-postmeldinger, kan også bli påvirket. Hvis du kjører et tredjepartsprodukt som påvirkes av dette problemet, anbefaler vi at du kontakter leverandøren for å få hjelp med å løse problemet. Hvis du vil ha mer informasjon, kan du se under Mer informasjon.

Viktig!  Som en nødløsning for å gjenopprette Send som-funksjonaliteten for driftskritiske programmer, kan du tilordne Send som-funksjonen til en tjenestekonto ved arv til en Active Directory-beholder eller et helt domene. Du finner detaljerte instruksjoner om dette i delen . Selv om dette er en meget effektiv måte å løse et umiddelbart problem på, bør du vurdere sikkerhetsrisikoen og de administrative problemene dette kan medføre. Denne tilgangstillatelsen kan gi Send som-tillatelser til kontoer som du ikke hadde planlagt dem for. Du må vurdere Send som-tillatelsen på nytt hvis du flytter brukerkontoer til en annen beholder.

Årsak

Dette problemet kan oppstå hvis en av følgende betingelser er oppfylt:
  • Du har ikke tillatelse til å sende e-postmeldinger som eier av postboksen på kontoen du bruker til å sende e-postmeldingen.
  • Du kjører Microsoft Exchange 2000 Server Service Pack 3 (SP3) med en versjon av filen Store.exe som er lik eller nyere enn versjon 6619.4. Versjon 6619.4 ble tilgjengelig for første gang i følgende Microsoft Knowledge Base-artikkel:
    915358 En hurtigreparasjon er tilgjengelig for å endre virkemåten til tillatelsen for full tilgang til postboks i Exchange 2000 Server
  • Du kjører Microsoft Exchange Server 2003 Service Pack 1 (SP1) med en versjon av filen Store.exe som er lik eller nyere enn versjon 7233.51. Versjon 7233.51 ble tilgjengelig for første gang i følgende Microsoft Knowledge Base-artikkel:
    895949 Endring av virkemåten for tillatelsen Send som i Exchange 2003
    Vær oppmerksom på at denne reparasjonen ikke følger med Microsoft Exchange 2003 Service Pack 2 (SP2). Hvis du har installert Exchange Server 2003 SP1-versjonen av denne hurtigreparasjonsfilen, må du installere Service Pack 2-versjonen etter oppgraderingen til Service Pack 2.
  • Du kjører Microsoft Exchange Server 2003 SP2 med en versjon av filen Store.exe som er lik eller nyere enn versjon 7650.23. Versjon 7650.23 ble tilgjengelig for første gang i følgende Microsoft Knowledge Base-artikkel:
    895949 Endring av virkemåten for tillatelsen Send som i Exchange 2003
    Obs!  Denne endringen var ikke inkludert i Exchange 2000 Server SP3, i Exchange Server 2003 SP1 eller i Exchange 2003 SP2. Denne endringen ble implementert etter at alle disse oppdateringspakkene var utgitt, men den er støttet i dem alle. Denne endringen vil tas med i fremtidige oppdateringspakker for disse produktene.

    Hvis du installerer Exchange Server 2003 SP2, må du installere tilleggsoppdateringen for å beholde den nye virkemåten, selv om du allerede har installert versjonen med oppdateringen for Exchange Server 2003 SP1.

Løsning

Før versjonene av filen Store.exe som er angitt under Årsak, fikk brukere som fikk full postbokstilgang, implisitt tilgang til å sende meldinger i postbokseierens navn. Dette betydde at en annen konto med full postbokstilgang kunne sende e-postmeldinger som så ut som om de var sendt av postboksens eier.

Mange Microsoft Exchange-kunder har bedt om at Send som-tillatelsen ble skilt ut fra full postbokstilgang av følgende to årsaker:
  • For å hindre e-postforfalskninger.
  • For å sikre at e-postmeldinger som er sendt av en representant, alltid kan skilles klart fra e-postmeldinger som er sendt av den faktiske eieren av postboksen.
Alle nye versjoner av Exchange Information Store vil nå uttrykkelig kreve en Send som-tillatelse for å kunne sende e-post i postbokseierens navn. Imidlertid finnes følgende tre unntak til dette kravet:
  • Eierkontoen for postboksen krever ikke uttrykkelig noen Send som-tillatelse for sin egen postkasse.
  • Den tilknyttede eksterne kontoen for en postboks krever ikke noen uttrykkelig Send som-tillatelse.
  • En representantkonto som også har full postbokstilgang, krever ikke noen uttrykkelig Send som-tillatelse.
Hvis du vil ha mer informasjon om disse unntakene, kan du se under Mer informasjon.

Alle andre kontoer som har fått delvis eller full tilgang til en postboks, må nå uttrykkelig gis Send som-tillatelsen for postboksens eierkonto for å kunne sende e-post i postbokseierens navn. Dette gjelder også programtjenestekontoer som utfører funksjoner som å sende e-postmeldinger for brukere av mobile enheter.

Send som-tillatelsen må gis tjenestekontoen på hvert brukerobjekt som eier en postboks. Du kan ikke gi Send som-tillatelsen for en Exchange-server eller et databaseobjekt og oppnå at Send som-tillatelsen blir gitt for alle postbokser i databasen.

Dette skjer fordi Send som-tillatelsen er en Active Directory-tillatelse som gjelder de Active Directory-objektene den er angitt for. Ved å gi Send som-tillatelse til et databaseobjekt får du bare Send som-tillatelse for selve databasen. Du får imidlertid ikke tillatelse til de brukerne med Send som-tillatelser som har postbokser i databasen.

Obs!  Når du gir tillatelsen Motta som for en Exchange-database, har det samme virkning som å gi full postbokstilgang til alle postboksene i databasen. Dette gjelder ikke for Send som-tillatelsen.

Med Send som-tillatelsen gjelder tillatelsen bare selve databaseobjektet. Det gjelder ikke postboksene i databasen. Motta som-tillatelsen arves automatisk av alle postbokser i databasen.

Det er enklest å forstå forskjellen mellom de to tillatelsene hvis du tenker på alle postboksene i databasen som mapper i én enkelt postboks (postboksen "database"). Hvis du har full tilgang til databasen, har du tilgangstillatelse til alt innholdet i databasen. Dette gjelder også alle postboksene.

Send som-tillatelsen gjelder identiteten for et Active Directory-brukerobjekt, ikke postboksinnhold som er lagret i en database. Når e-postmeldinger sendes, sendes de ikke fra en bestemt postboks eller database, men fra en bruker. Brukeren kan være eieren av postboksen eller en annen konto som har Send som-tillatelse.

Følg disse trinnene for å gi en annen konto tillatelse til å sende i postbokseierens navn:
  1. Start administrasjonskonsollen for Active Directory-brukere og -datamaskiner.
  2. Gå til Vis-menyen, og kontroller at alternativet Avanserte funksjoner er valgt. Hvis dette alternativet ikke er valgt, vil ikke Sikkerhet-siden være synlig for brukerkontoobjekter.
  3. Åpne egenskapene for brukerkontoen som eier postboksen.
  4. Klikk kategorien Sikkerhet.
  5. Hvis kontoen som skal ha Send som-tillatelse for denne brukeren, ikke allerede vises på listen med gruppe- eller brukernavn, legger du den til.
  6. Klikk Tillat for Send som-tillatelsen for den aktuelle kontoen, i boksen Tillatelser.
  7. Klikk OK.
  8. Start tjenesten Microsoft Exchange Information Store på nytt på den påvirkede Exchange-serveren.
Obs!  Hvis du ikke starter tjenesten Microsoft Exchange Information Store på nytt, vil tjenesten oppdatere tillatelsesbufferen slik at den nye tillatelsen trer i kraft i henhold til verdien som er angitt i følgende registerundernøkkel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem


Verdinavn: Aldersgrense for postboksbuffer
Verditype: REG_DWORD
Radix: Desimal
Verdidata: Aldersgrensen for postboksbufferen i minutter.
Standardverdien for denne registeroppføringen er 120 minutter (to timer). Hvis du endrer denne registeroppføringen, må du starte tjenesten Microsoft Exchange Information Store på nytt.

Obs!  Hvis du angir tidsavbruddsverdiene til en svært lav verdi, kan det påvirke ytelsen til serveren.

Gi Send som-tillatelse for flere kontoer

Det er lagt ved et eksempelskript på slutten av denne artikkelen som søker gjennom et katalogtjenestedomene for Active Directory etter kontoer med full postbokstilgang men uten Send som-tillatelse for en postboks. Dette er egenskapene for en tjeneste- eller ressurskonto som vil bli påvirket av denne sikkerhetsendringen. Skriptet kan generere en eksportfil som du kan lese gjennom, redigere og deretter importere igjen for å gi Send som-tillatelse til kontoer som trenger denne tillatelsen.

Du kan også gi Send som-tillatelse som arv til alle brukerobjekter i et Active Directory-domene eller i en beholder. Hvis du gir Send som-tillatelsen på denne måten, kan du gi tillatelsen til objekter som du ikke hadde tenkt skulle få den. I tillegg kan du miste tillatelsen for objekter som er flyttet fra beholderen. Derfor er denne metoden ikke å foretrekke, og den kan medføre sikkerhetsbrudd som du bør tenke nøye over, før du implementerer den.

Følg disse trinnene for å gi én enkelt konto Send som-tillatelse for alle brukerkontoer i et Active Directory-domene eller en beholder:
  1. Start administrasjonskonsollen for Active Directory-brukere og -datamaskiner.
  2. Gå til Vis-menyen, og kontroller at alternativet Avanserte funksjoner er valgt. Hvis dette alternativet ikke er valgt, vil ikke Sikkerhet-siden være synlig for domene- og beholderobjekter.
  3. Åpne egenskapene for domenet eller beholderen, og klikk deretter Sikkerhet-siden.
  4. Klikk Avansert.
  5. Hvis kontoen som trenger tillatelsen, ikke allerede vises på listen, klikker du Legg til og merker kontoen. Ellers dobbeltklikker du kontoen for redigering.
  6. Klikk Brukerobjekter i listen Gjelder på.
  7. Gi kontoen Send som-tillatelsen.
  8. Klikk OK til du er ute av alle dialogboksene og har lagret alle endringene.
Obs!  Skriptet som beskrives mot slutten av denne artikkelen, vurderer også nedarvede tillatelser. Hvis du tilordner Send som-tillatelsen ved hjelp av denne metoden, vil derfor kontoer med nedarvede Send som-tillatelser, bli usynlige for skriptet. For å kunne behandle disse kontoene sammen med skriptet senere, må du først fjerne den arvede Send som-tillatelsen.

Spesielle regler for adminSDHolder-beskyttede kontoer

Hvis du bruker skriptet til å gi Send som-tillatelsen til en postbokseier som også er domeneadministrator, vil Send som-tillatelsen ikke fungere. Vi anbefaler på det sterkeste at du ikke postboksaktiverer brukerkontoer med domeneadministratorrettigheter eller som er adminSDHolder-beskyttet.

Objektet adminSDHolder er en mal for kontoer som har store administrative Active Directory-rettigheter. Alle kontoer som er beskyttet av objektet adminSDHolder, må ha tilgangsrettigheter som tilsvarer dem som vises i selve adminSDHolder-objektet, slik at uønsket heving av tilgangsnivå ikke kan forekomme.

Hvis du endrer rettighetene eller tillatelsene i adminSDHolder-objektet for en beskyttet konto, vil en bakgrunnsoppgave reversere endringen i løpet av noen få minutter. Hvis du for eksempel gir Send som-tillatelse til et domeneadministratorobjekt for en programtjenestekonto, vil bakgrunnsoppgaven automatisk trekke tillatelsen tilbake.

Derfor kan du ikke gi Send som-tillatelse til en programtjenestekonto for en konto som er beskyttet av adminSDHolder-objektet, med mindre du endrer selve adminSDHolder-objektet. Hvis du gjør endringer i adminSDHolder-objektet, vil dette endre tilgangstillatelsene for alle beskyttede kontoer. Du bør bare endre adminSDHolder-objektet etter en fullstendig gjennomgang av hvilken innvirkning endringene kan ha på sikkerheten.

Følg disse trinnene for å knytte en postboks til en konto som er beskyttet av adminSDHolder-objektet:
  1. Start administrasjonskonsollen for Active Directory-brukere og -datamaskiner.
  2. Gå til Vis-menyen, og kontroller at alternativet Avanserte funksjoner er valgt. Hvis dette alternativet ikke er valgt, vil ikke Sikkerhet-siden være synlig for brukerkontoobjekter.
  3. Opprett en vanlig brukerkonto som skal fungere som postbokseier.
  4. Tilordne den vanlige brukerkontoen en postboks på en Exchange-server.
  5. Åpne egenskapene for den nye postbokseierkontoen.
  6. Gi tillatelsen Exchange Advanced til den beskyttede administratorkontoen i boksen for avanserte Exchange-innstillinger.
  7. Gå til siden Sikkerhet, og gi Send som-tillatelse til den beskyttede administratorkontoen.
  8. Klikk OK for å gå ut av egenskapene for postbokseierobjektet.
  9. Høyreklikk postbokseierobjektet, og klikk deretter Deaktiver konto for å deaktivere kontoen for all pålogging.
Hvis du vil ha mer informasjon om adminSDHolder-beskyttede kontoer, kan du klikke følgende artikkelnumre for å vise artiklene i Microsoft Knowledge Base:
907434 Send som-rettigheten fjernes fra et brukerobjekt etter at du konfigurerer Send som-rettigheten i snapin-modulen Active Directory-brukere og -datamaskiner i Exchange Server (denne artikkelen kan være på engelsk)
318180 AdminSDHolder-tråden virker inn på transitive medlemmer av distribusjonsgrupper (denne artikkelen kan være på engelsk)
817433 Delegerte tillatelser er ikke tilgjengelige, og nedarving er automatisk deaktivert (denne artikkelen kan være på engelsk)
306398 AdminSDHolder-objekter virker inn på delegering av kontroll over tidligere administratorkontoer (denne artikkelen kan være på engelsk)

Spesialoppgaver for BlackBerry Enterprise Server

Oppgave 1: Kontroller at BlackBerry Enterprise Server kjører som en egen unik konto

Kontroller at BlackBerry Enterprise Server kjører som en egen unik konto som er spesielt opprettet for administrative oppgaver. Denne kontoen heter "BESAdmin" som standard.

Hvis du har en egen konto for administrering av BlackBerry Enterprise Server, går du til oppgave 2.

Hvis du ikke har en egen konto, oppretter du en egen konto. Deretter bruker du denne kontoen til å utføre administrative oppgaver. Hvis du vil ha informasjon om hvordan du gjør dette, kan du gå til ett av følgende BlackBerry-webområder som gjelder den versjonen av BlackBerry Enterprise Server du kjører.

Hvis du kjører BlackBerry Enterprise Server 4.0 eller BlackBerry Enterprise Server 4.1, går du til følgende BlackBerry-webområde:
http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=9174704&sliceId=&dialogID=11024244&stateId=1 0 11020632
Hvis du kjører BlackBerry Enterprise Server 3.6, kan du gå til følgende BlackBerry-webområde:
http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=KB04334&sliceId=SAL_Public&dialogID=11016727&stateId=1 0 11020358

Oppgave 2: Pass på at BlackBerry Enterprise Server-tjenestekontoen har de riktige tilgangsrettighetene

Kontroller at BlackBerry Enterprise Server-tjenestekontoen har de riktige tilgangsrettighetene.

Obs!  Hvis kontoen er innenfor et domene, må du kontrollere at kontoen er medlem av domenebrukergruppen. I en domenekontroller skal kontoen være medlem av gruppen innebygde administratorer.
  1. Følg disse trinnene på BlackBerry Enterprise Server:
    1. Kontroller at kontoen er medlem av den lokale administratorgruppen.
    2. Tilordne tilgangsrettighetene "Tillat å logge på lokalt" og "Logg på som en tjeneste" til kontoen.
  2. Gi tilgangene Exchange View-Only Administrator på administratorgruppenivå. Dette gjør du slik:
    1. I Exchange System Manager høyreklikker du det første Exchange Server-administrasjonsgruppenavnet og deretter klikker du Delegate Control.
    2. Legg merke til at BlackBerry Enterprise Server-tjenestekontoen er oppført med rollen Exchange View-Only Administrator.
  3. Gi tillatelsene "Send som," "Motta som," og "Administer Information Store" på servernivå for hver Exchange Server-server. Dette gjør du slik:
    1. I Exchange System Manager høyreklikker du det første Exchange Server-administrasjonsgruppenavnet og deretter utvider du gruppen Servere.
    2. Høyreklikk en Exchange Server-server, klikk Egenskaper, og klikk deretter Sikkerhet.
    3. I den øverset ruten velger du BlackBerry Enterprise Server-tjenestekontoen. I den nederste ruten må du kontrollere at tillatelsene "Send som", "Motta som" og "Administer Information Store" er angitt til Tillat.
    4. Gjenta trinn 3b og 3c for hver Exchange Server-server.
  4. Gi tillatelsene "Send som", "Motta som" og "Administer Information Store" til postbokslageret. Dette gjør du slik:
    1. I Exchange System Manager høyreklikker du det første Exchange-administrasjonsgruppenavnet og deretter utvider du gruppenServere.
    2. Utvid den første postbokslagergruppen, høyreklikk hvert postbokslager, klikk Egenskaper, og klikke deretter Sikkerhet.
    3. I den øverset ruten velger du BlackBerry Enterprise Server-tjenestekontoen. I den nederste ruten må du kontrollere at tillatelsene "Send som", "Motta som" og "Administer Information Store" er angitt til Tillat.
    4. Gjenta trinn 4b og 4c for hvert postbokslager på hver Exchange Server-server.
  5. I snapin-modulen Active Directory-brukere og -datamaskiner følger du disse trinnene:
    1. Høyreklikk den brukeren du vil legge til tillatelser for, og klikk deretter Egenskaper.
    2. I kategorien Sikkerhet legger du til tjenestekontoen for BlackBerry Enterprise Server, og deretter merker du av for Send som .
Hvis du ikke kjører Exchange Server 2003, kan du gå til oppgave 3.

Oppgave 3: Slett hurtigbufferen på BlackBerry Enterprise Server

Hvis du vil slette tillatelsesbufferen på informasjonslageret, starter du de Blackberry-relaterte tjenestene på nytt, og deretter starter du Microsoft Exchange-informasjonslageret på nytt. Når du har startet informasjonslageret på nytt, må du starte de RIM Blackberry-relaterte tjenestene på nytt for å gi "BESAdmin"-kontoen den nylig tillagte Send som-tillatelsen på Exchange-informasjonslageret.

Hvis du vil ha mer informasjon om bestemte Blackberry-serverkrav, kan du gå til følgende BlackBerry-webområde:
http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=KB04707&sliceId=SAL_Public&dialogID=3016166&stateId=0%200%202441763

Mer informasjon

Tilgangstillatelser for Exchange-postbokser og -mapper er delt mellom Active Directory- og Microsoft Exchange-databaser. Begge typene tillatelser angis imidlertid i administrasjonskonsollen for Active Directory-brukere, men ulike tillatelser lagres på to ulike steder.

Hvis en tillatelse blir angitt på Sikkerhet-siden for et objekt, er den som oftest en Active Directory-tillatelse. Hvis den angis på siden for avanserte postboksrettigheter for Exchange, er den en Exchange-databasetillatelse. Du vil derfor motta følgende feilmelding hvis du prøver å få tilgang til postboksrettighetssiden når en brukers database ikke er tilgjengelig:
Microsoft Information Store-tjenesten er ikke tilgjengelig.
Tillatelsen for tilknyttet ekstern konto er et unntak til regelen om at tillatelser som angis gjennom de avanserte postboksrettighetene i Exchange, lagres i Exchange-databasen. Tillatelsen for tilknyttet ekstern konto er ikke en ekte tillatelse; den er en metode du kan velge Active Directory-attributtet msExchMasterAccountSID. Selv om attributtet msExchMasterAccountSID ikke er en tillatelse, kontrollerer den hvordan andre tillatelser fungerer. Hvis du vil ha mer informasjon om msExchMasterAccountSID-attributtet, kan du gå til delen "Tilknyttede eksterne kontoer".

Obs!  Active Directory-attributtet msExchMailboxSecurityDescriptor er en sikkerhetskopi av et delsett av de postboksrettighetene som er i funksjon. Det brukes internt i Exchange til en rekke formål. I tillegg oppdateres attributtet msExchMailboxSecurityDescriptor slik at det stemmer med rettighetene som er i funksjon, hvis administratorer bruker støttede grensesnitt til å tilordne rettigheter.

Hvis attributtet msExchMailboxSecurityDescriptor endres direkte av en administrator, vil imidlertid endringene ikke bli lagt inn i Exchange-lageret, og endringene vil ikke tre i kraft. Det er ingen garanti for at attributtet synkroniseres med de faktiske postboksrettighetene. Du bør ikke bruke attributtet msExchMailboxSecurityDescriptor til å lese eller skrive postboksrettigheter.

Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
310866 Stille inn Exchange Server 2003- og Exchange 2000 Server-postboksrettigheter på en postboks som ligger i informasjonslageret (denne artikkelen kan være på engelsk)

Tilgangstillatelsen for full postbokstilgang er en tillatelse for Exchange-databaselageret. Send som-tillatelsen er en Active Directory-tillatelse. Før endringene i Exchange-filen Store.exe som er beskrevet i denne artikkelen, undersøkte ikke Exchange-systemet innstillingen for Send som-tillatelsen hvis avsenderen allerede hadde full postbokstilgang.

Obs!  Du kan gi Send som-tillatelse uten å gi full postbokstilgang. I slike situasjoner har Exchange alltid undersøkt Send som-tillatelsen.

Det at tillatelsen for full postbokstilgang omfatter Send som-tillatelsen, har gjort det mulig for Exchange-serveradministratorer å gi seg selv fungerende Send som-tillatelser for en hvilken som helst postboks på serveren de administrerer. Administratorer kan gjøre dette fordi de har full faktisk kontroll over en Exchange-database. Ved å skille Send som-tillatelsen fra tillatelsen for full postbokstilgang, kan Active Directory-administratorer nå blokkere denne prosessen, siden Send som-tillatelsen er en Active Directory-tillatelse, ikke en tillatelse fra Exchange-lageret. Derfor styres denne prosessen ikke nødvendigvis av Exchange-administratorer.

Postbokseiere

En postbokseier defineres som den Active Directory-brukerkontoen med et msExchMailboxGUID-attributt som inneholder den globalt unike numeriske identifikasjonen (GUID) for en bestemt postboks. Bare én konto i en hel skog har rett til å bære GUIDen for en bestemt postboks. Hvis du prøver å angi en annen eier med samme GUID, vil Active Directory avvise endringen med en feilmelding.

Når du postboksaktiverer en konto eller kobler en frakoblet postboks til en Active Directory-konto, angis postboks-GUIDen automatisk for kontoen. Det er sjelden nødvendig eller anbefalt at en administrator stiller inn postboks-GUIDene direkte.

Tilknyttede eksterne kontoer

En vanlig Exchange-konfigurasjon er å installere Exchange i en ressursskog. En ressursskog er en skog som er i en annen skog av brukerkontoene som skal ha postbokser i systemet. Dette utgjør et problem fordi msExchMailboxGUID-attributtet bare kan angis på objekter i samme skog som Exchange-serveren.

Løsningen på problemet er å postboksaktivere kontoen i Exchange-serverskogen. Deretter kobler du denne postboksaktiverte kontoen til en konto i en annen skog eller i et Microsoft Windows NT 4-domene. Du kan gjøre dette ved å gi den tilknyttede eksterne kontoen tillatelse. Bare én enkelt konto kan få tillatelsen for tilknyttede eksterne kontoer. Kontoen du velger, må være fra en annen skog.

Når du angir tillatelsen for tilknyttet ekstern konto, skriver du SID-verdien for den eksterne kontoen til msExchMasterAccountSID-attributtet for postbokseieren. Derfor er ikke dette egentlig en tillatelse, men en praktisk måte å styre verdien av msExchMasterAccountSID-attributtet på. Når msExchMasterAccountSID-attributtet er angitt, vil den eksterne kontoen som eier SIDen, få Exchange-tilgang som om den var den faktiske postbokseierkontoen.

Vær oppmerksom på at dette bare gjelder Exchange-tilgang, ikke full Active Directory-tilgang. I tillegg bør du merke postbokseierkontoen som deaktivert for pålogging etter å ha angitt tillatelsen for tilknyttet ekstern konto, slik at alle tillatelser fungerer som forventet.
300456 Klienttillatelser og representanttilordninger blir ikke værende etter tilordning i Exchange 2000. (denne artikkelen kan være på engelsk)

Representantscenarier

En representant er en bruker som har fått delvis tilgang til en annen postboks og rett til å sende meldinger på vegne av postboksens eier. Et vanlig scenario er å gi en leders assistent eller sekretær representanttilgang til lederens kalender. Representanten kan vanligvis lese og oppdatere kalenderen. I tillegg kan representanten svare på e-post på vegne av lederen.

Representanttilgang gis ved å legge til representanten i flerverdiattributtet publicDelegates for postbokseieren. Alle brukere som er angitt i dette attributtet, har Send på vegne av-tillatelse for postbokseieren. Når slike representanter sender en e-postmelding med eierens navn i Fra-boksen, viser Fra-boksen i e-postmeldingen følgende verdi:
<Representantens navn> på vegne av <Postbokseieren>
E-postmeldingen sendes imidlertid fra representanten, og ikke fra eller som postbokseieren.

Nedenfor følger en oversikt over to grensesnitt som du kan bruke til å gi representanttillatelser og Send på vegne av-tillatelser:
  • Gi Send på vegne av-tillatelsen i Exchange-dialogboksen Exchange General for postbokseierobjektet.
  • Bruk dialogboksen Representanter i Microsoft Outlook.
Begge disse metodene stiller inn publicDelegates-attributtet. Med Outlook-metoden kan du imidlertid også gi bestemte mappetillatelser til representanten. Du kan også gi en representant tillatelser direkte fra egenskapene for en enkeltmappe i Outlook.

I enkelte tilfeller kan det være umulig å stille inn publicDelegates-attributtet i Outlook.
329622 "Send på vegne av"-tillatelse tilordnes ikke bruker etter at du gir representanttilgang i Outlook (denne artikkelen kan være på engelsk)

Hvis du gir representanttilgang til postboksen din, kan representanten bruke Send på vegne av-tillatelsen selv om du ikke gir representanten tilgang til noen av postboksmappene dine. Den grunnleggende tillatelsen en representant får, er Send på vegne av-tillatelsen. Tilgangstillatelse til postboksmappene er atskilt og må gis i tillegg til representanttillatelsen.

Vanligvis vil representanter bruke Microsoft Outlook til å arbeide med enkeltmapper som de har fått tilgang til. Dette kan du gjøre ved å klikke ÅpneFil-menyen i Outlook og deretter klikke Annen brukers mappe.

Representanten kan også åpne postboksen din ved å legge den til som tilleggspostboks i kategorien Avansert i Outlook-profilen sin. Med denne metoden vil postboksen din vises i representantens mappetre i Outlook. I tillegg gir denne metoden representanten tilgang til alle mappene i postboksen din som han/hun er blitt gitt tilgang til.

Av og til vil du kanskje at representanten skal ha Send på vegne av-tillatelse, mens det andre ganger er bedre med en Send som-tillatelse. Du kan konfigurere en representant med disse to tillatelsene ved å følge disse trinnene:
  • Gi representanten full postbokstilgang. Dette kan ikke gjøres i Outlook. I stedet må en Active Directory-administrator gjøre dette for postbokseierkontoen. Selv om du gir eiertillatelser for alle mappene i postboksen, er ikke det den samme tillatelsen som full postbokstilgang.
  • Ikke gi representanten Send som-tillatelsen. Hvis du gir representanten Send som-tillatelse, vil alle e-postmeldinger som sendes av representanten, bli sendt med Send som-tillatelsen. Representanten vil ikke lenger kunne bruke Send på vegne av-tillatelsen.
I dette scenariet må en representant som vil bruke Send på vegne av-tillatelsen, logge seg på sin egen postboks. Hvis representantene svarer på eller videresender en e-postmelding som allerede ligger i en av dine mapper, vil du stå som avsender av e-postmeldingen. Hvis representantene oppretter en ny e-postmelding på dine vegne, må de skrive inn navnet ditt i Fra-boksen i e-postmeldingen som skal sendes på dine vegne.

Uansett om representantene har åpnet dine mapper eller hele postboksen som en sekundær postboks, vil alle e-postmeldinger de sender fra deg, bli sendt med Send på vegne av-tillatelsen så lenge representantens egen postboks er den primære postboksen for gjeldende Outlook-profil.

Når representanten ønsker å sende en e-postmelding som deg, må vedkommende logge seg på din postboks med en egen Outlook-profil som bare åpner din postboks. E-postmeldinger som representanter sender mens de er logget på denne profilen, vil automatisk bli sendt fra deg.

Finne kontoer som har full postbokstilgang, men ikke Send som-tillatelse

Eksempelskriptet som er beskrevet her, kan søke gjennom ett Active Directory-domene om gangen etter brukerkontoer som har fått full postbokstilgang til en annen postboks, men som ikke har Send som-tillatelse.

Viktig!  Før du kan endre tillatelser må du lese delen Om postbokseiere med representanter.

Skriptet har følgende tre moduser:
  • Export: Du kan generere en liste over brukere som har full postbokstilgang uten Send som-tillatelse. Du kan deretter lese gjennom listen i Notisblokk eller et annet tekstredigeringsprogram og fjerne eventuelle kontoer som du ikke vil gi Send som-tillatelse.
  • Import: Du kan importere en liste over brukere som har full postbokstilgang, og som også bør ha Send som-tillatelse. Legg merke til at du ikke kan bruke dette skriptet til å gi både full postbokstilgang og Send som-tillatelse. Hver konto må allerede ha full postbokstilgang for å kunne få Send som-tillatelse.
  • SetAll: Du kan gi Send som-tillatelse til alle brukerne i domenet som allerede har full postbokstilgang til en bestemt postboks. Det vil bli generert en loggfil i samme format som eksportfilen. Dette er det samme som å kjøre Export og Import uten å redigere eksportfilen.
Obs!  Det finnes ingen angrefunksjon i dette skriptet.

Tillatelser som er nødvendige for skriptet

Du må kjøre skriptet mens du er logget på med en administratorkonto fra samme skog som postbokseierkontoene. Skriptet fungerer kanskje ikke sammen med en konto som har administrative tillatelser på tvers av flere skoger. Skriptet fungerer kanskje heller ikke når du kjører det fra en arbeidsstasjon som er koblet til en annen skog enn den skogen som kontoen til postbokseier er tilkoblet.

Under slike forhold kan du kjøre skriptet med flere administrative kontoer i én enkelt påloggingsøkt ved hjelp av kommandoen RunAs.exe. Denne prosedyren kan være nyttig hvis du har segmentert tillatelsene for Active Directory og Exchange Server og ikke har noen enkelt konto som kan administrere alle Exchange-servere eller alle Active Directory-domener. Du kan åpne en ledetekst for å kjøre skriptet som hver administrative konto. La oss se på følgende eksempel:
RunAs.exe /user:domain\account CMD.EXE
Obs!  Du bør ikke kjøre flere eksemplarer av skriptet samtidig mot samme domene.

I eksportfilen finner du følgende felt: Feltene er beskrevet i den rekkefølgen de vises i eksportfilen.
  • Visningsnavnet på eieren av postboksen

    Utdatafilen kan inneholde flere linjer for samme postbokseier. Dette skjer hvis flere andre kontoer har full postbokstilgang til samme postboks.
  • Domenenavnet og påloggingsnavnet til en konto som har tillatelsen for full postbokstilgang, men ikke Send som-tillatelsen

    Den samme kontoen kan dukke opp flere ganger i eksportfilen når kontoen har tilgang til flere postbokser. Dette er sannsynlig for en programtjenestekonto eller en person som administrerer flere ressurspostbokser.
  • Visningsnavn til en konto som har tillatelsen for full postbokstilgang, men ikke Send som-tillatelsen

    Dette feltet og feltet for påloggingsnavn skal gjøre det lettere for deg å identifisere kontoen.
  • Representantstatus for eieren av postboksen

    Hvis postbokseieren har representanter, får feltet verdien Has Delegates. Hvis postbokseieren ikke har representanter, får feltet verdien No Delegates.
  • Aktivert og deaktivert status på kontoen til postbokseeier

    Dette feltet er praktisk når du ønsker å identifisere ressurskontoer eller postbokskontoer på tvers av flere skoger. Disse kontoene er vanligvis deaktivert.
  • Fullstendig unikt navn på postbokseierens konto

    Dette feltet er praktisk når du vil identifisere domenet og beholderen til postbokseierens konto.
  • Fullstendig unikt navn på databasen til eieren av postboksen

    Dette feltet inneholder postboksens database, lagringsgruppe, server og administrativ gruppe.
I følgende eksempel har brukeren med påloggingsnavnet "NoSendAs" tillatelsen full tilgang til postboks, men ikke tillatelsen Send som for postboksen "Mailbox Owner":
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [ytterligere felt er fjernet]

Konfigurasjon for administrativ arbeidsstasjon for skriptet

Dette skriptet bruker grensesnittet for Exchange-administrasjon til å kommunisere med Exchange-serverne. Skriptet må derfor kjøres fra en Exchange-server eller fra en arbeidsstasjon hvor Exchange System Administrator er installert.

Redigere eksportfilen

Eksportfilen er formatert som ren Unicode-tekst, slik at tegnsett fra flere språk kan fungere. Det kan hende at enkelte tekstredigeringsprogrammer ikke kan brukes til å vise eller redigere filen, eller de kan komme til å lagre den som ANSI- eller ASCII-tekst. Notisblokk-programmet som følger med Microsoft Windows XP, Microsoft Windows 2000 og Microsoft Windows 2003, kan håndtere Unicode-filer riktig. I tillegg håndterer Microsoft Excel Unicode-tekstfiler riktig.

Utdatafilen er i tabulatordelt format med tredoble anførselstegn rundt verdiene for hvert felt. De tredoble anførselstegnene brukes til å gjøre import til og eksport fra Excel klarere. I Excel vil de tredoble anførselstegnene bli enkle, og de vil bli tredoble igjen når filen lagres som Unicode-tekst etter behandlingen. Se instruksjonene nedenfor om hvordan du åpner og lagrer eksportfilen i Excel på riktig måte.

Du kan også filtrere en eksportfil uten å bruke Excel, ved hjelp av verktøyene Find.exe eller Findstr.exe. Disse verktøyene følger med i Windows. De gjør det mulig å søke etter ord i en fil og hente ut bare de linjene som inneholder disse ordene eller de linjene som ikke inneholder disse ordene. Hvis du for eksempel vil lage en liste over alle postbokseiere i filen som har representanter, kan du bruke en av disse kommandoene til å opprette en fil som bare inneholder linjer med strengen "Has Delegates":
Find.exe ?Has Delegates? OriginalFile.txt > HasDelegates.txt

Findstr.exe /C:?Has Delegates? OriginalFile.txt > HasDelegates.txt
Som et annet eksempel kan vi tenke oss at du vil filtrere ut alle postbokseiere med representanter. Når du bruker /V-bryteren, blir alle linjene som ikke samsvarer med søkeordene, filtrert ut. Du kan bruke alle disse kommandoene til å generere en fil som utelukker alle linjer med "Has Delegates":
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
Du kan også bruke følgende kommandoer til å generere en fil som inneholder alle kontoene hvor en programtjenestekonto har full postbokstilgang, men ikke Send som-tillatelse: /I-bryteren gjør at kommandoen ikke skiller mellom store og små bokstaver:
Find.exe /I ?domain\ServiceAccount? OriginalFile.txt > ServiceAccount.txt

Findstr.exe /I /C:?domain\ServiceAccount? OriginalFile.txt > ServiceAccount.txt
Obs!  Hvis du bruker Find.exe til å generere en filtrert fil, må du fjerne topptekstlinjene som opprettes av Find.exe øverst i filen.

Ikke bruk jokertegn (*.*) med Findstr.exe. Hvis du bruker jokertegn, vil hver linje i utdatafilen begynne med filnavnet. Du bør se nøye gjennom utdatafilen som du filtrerte med Find.exe eller Findstr.exe, for å kontrollere at filteret valgte eller fjernet ønskede kontoer.

I eksemplet nedenfor har brukeren med påloggingsnavnet "NoSendAs" full postbokstilgang men ikke Send som-tillatelse til postboksen "Mailbox Owner".
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [ytterligere felt er fjernet]  

Om postbokseiere med representanter

En representant som har full postbokstilgang (en såkalt "superrepresentant"), skal vanligvis ikke få Send som-tillatelse. Når superrepresentanten logger seg direkte på postbokseierens postboks, kan representanten bruke Send som. Når representanten bruker Outlooks funksjoner for representanter (ekstra postbokser å åpne eller åpne annen brukers mappe), sendes meldingene på vegne av.

Bare gi Send som-tillatelse til en superrepresentant hvis du vil at representanten alltid skal sende som postbokseieren og aldri sende på vegne av postbokseieren. Vi anbefaler at du søker etter teksten "Has Delegates" i eksportfilen og deretter finner ut om noen av superrepresentantene som vises, er representanter for postbokseieren.

Bare superrepresentanter vises i eksportfilen. Vanlige representanter har ikke full postbokstilgang. Når du gir Send som-tillatelse til en vanlig representant, vil representanten alltid sende som postbokseieren. Dette gjelder selv om den vanlige representanten ikke har full postbokstilgang. Hvis du kommer i skade for å gi feil representant en Send som-tillatelse, er det lett å trekke tilbake tillatelsen senere.

Åpne en eksportfil i Excel

  1. Start Excel før du åpner eksportfilen.
  2. Åpne filen i Excel som tekstfil. Tekstimportveiviseren starter automatisk.
  3. Endre eller godta følgende innstillinger i tekstimportveiviseren:
    • Opprinnelig datatype: Data med skilletegn
    • Start import ved rad: 1
    • Filopprinnelse: Unicode (UTF-8)
    • Skilletegn: Bare Tabulator
    • Behandle påfølgende skilletegn som ett: ikke merket
    • Tekstkvalifikator: " (doble anførselstegn)

Lagre en eksportfil etter redigering i Excel

  1. Klikk Lagre som i eksportfilen.
  2. Gi filen et annet navn, slik at du beholder en uredigert kopi av originalfilen.
  3. Klikk Fil og Lagre som, angi et filnavn du vil lagre utdataene med, og velg deretter Unicode-tekst i listen Filtype.

Skriptsyntaks

Dette er et tekstmodusskript som bør kjøres i et kommandoledetekstvindu, ikke fra Kjør-dialogboksen. Du åpner et kommandoledetekstvindu ved å klikke Start og Kjør, skrive inn CMD i boksen Åpne og deretter klikke OK.

Feil- og eksportfiler lagres i gjeldende katalog for kommandoledetekst. Du må ha tillatelse til å opprette filer i denne katalogen.
Hvis du trenger hjelp med kommandolinjen, kan du bruke denne kommandoen:
CSCRIPT AddSendAs.vbs
Hvis du vil eksportere brukere som har full postbokstilgang, men ikke Send som-tillatelse, kan du bruke denne kommandoen:
CSCRIPT AddSendAs.vbs [domenekontrollernavn] ?Eksporteksempel: CSCRIPT AddSendAs.vbs CORP-DC-1 ?Export
Eksportfilen vil bli generert som "Send_As_Export_H_MM_SS.txt".
Hvis du vil importere en redigert eksportfil, kan du bruke denne kommandoen:
CSCRIPT AddSendAs.vbs [domenekontrollernavn] ?Import [filnavn]


for eksempel:


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

Gi Send som-tillatelse til hver postboks i domenet for alle brukere som allerede har full postbokstilgang til en postboks

Obs!  Hvis du har representanter som også har full postbokstilgang i organisasjonen, bør du ikke bruke SetAll-modus. Hvis du bruker SetAll-modus i denne situasjonen, vil alle representanter få Send som-tilgang. Dette kan føre til at alle e-postmeldinger de sender, bruker Send som-tillatelse i stedet for Send på vegne av-tillatelse. Du kan korrigere dette ved å fjerne Send som-tillatelser som representantene fikk ved en feiltakelse.
CSCRIPT AddSendAs.vbs [domenekontrollernavn] ?SetAll


for eksempel:


CSCRIPT AddSendAs.vbs CORP-DC-1 ?SetAll
Hvis du bruker SetAll-modus, vil det bli generert en eksportfil som Send_As_Export_H_MM_SS.txt. Du bør lagre denne filen, fordi den utgjør en oversikt over hvilke kontoer som ble endret. Hvis du kjører skriptet på nytt, vil du ikke få den samme listen med kontoer, fordi kontoene allerede vil ha fått Send som-tillatelsen.

Feil som oppstår under kjøringen av dette skriptet, vil bli lagret i filen Send_As_Errors_T_MM_SS.txt. I navnet på feilfilen vil timer_minutter_sekunder samsvare med tidsangivelsen i den tilknyttede eksportfilen hvis en slik finnes.

Endringer av skriptet

Det finnes kanskje kontoer i organisasjonen som har tillatelser for mange objekter, men du ønsker ikke å endre disse tillatelsene. Hvis du vil redusere størrelsen på eksportfilen, kan du endre variabelen FMA_EXCLUSIVE_LIST som ligger nesten øverst i skriptet. Denne variabelen inneholder noen kontoer som skal undertrykkes som standard i utdataene for skriptet. Du kan legge til flere kontoer ved å bruke dette formatet:
& "<Domain\Name>" & OUTPUT_DELIMITER
Du kan for eksempel endre verdien på følgende variabel:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
slik at den vises på følgende måte:
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Mydomain\Service1" & OUTPUT DELIMITER
Denne endringen undertrykker oppføring av kontoen "Mydomain\Service1" i eksportfilen, sammen med "NT AUTHORITY\SELF" og "NT AUTHORITY\SYSTEM". Merk at det skilles mellom store og små bokstaver for verdien Domain\Name, så navnet må stå akkurat slik som i eksportfilen.

En annen redigerbar variabel, FMA_EXCLUSIVE_EXSVC, har også standardverdien "\Exchange Services" & OUTPUT_DELIMITER. "Exchange Services" er navnet på en konto som har fått tillatelser via Active Directory Connector i scenarier for overføring og sameksistens mellom Exchange 5.5 og Exchange 2000. Denne kontoen er opprettet i flere domener og kan forekomme gjentatte ganger i eksportfilen hvis den ikke undertrykkes.

FMA_EXCLUSIVE_EXSVC-variabelen kan bare ha én konto som verdi. Det skilles ikke mellom små og store bokstaver for kontonavnet. Kontoen som er oppført, må være oppført med en omvendt skråstrek (\) aller først, og navnet kan ikke inkludere domenet som kontoen tilhører. Kontoen vil undertrykkes for alle domener den finnes i.

Hvis du har brukt overføringsverktøy fra tredjeparter eller synkroniseringsmetoder for kataloger, finnes det kanskje en annen konto i flere domener som har gitt tillatelser til et stort antall postbokser. I dette tilfellet kan du bytte ut kontonavnet med "\Exchange Services".

Tips og advarsler

  • Ikke slett logg- og feilfiler som genereres av skriptet. De kan være verdifulle ved feilsøking eller reversering av endringer senere. Husk at så snart du har gitt Send som-tillatelse til en konto, vil den ikke lenger bli loggført i eksportfilen.
  • Hvis en Exchange-server eller -database er nede, vil dette redusere hastigheten på behandlingen av skriptet. I slike tilfeller kan du sortere eksportfilen etter database og flytte linjer som er tilknyttet den utkoblede databasen, til en annen fil for import senere.
  • Skriptet undertrykker utdata for kontoer der påloggingsnavnet slutter på $ eller NT AUTHORITY\SYSTEM. Disse systemkontoene skal vanligvis ikke ha behov for Send som-tillatelse, og ved å fjerne dem fra eksportfilen reduseres størrelsen på filen betydelig.
  • Eksportfilen må være i Unicode-format før den kan importeres. Hvis du ved en feiltakelse har lagret filen som ANSI-tekst, kan du korrigere dette ved å åpne filen i Notisblokk og lagre den som Unicode-tekst.
  • Hvis importen ikke fungerer, kan du feilsøke med testkontoer og enkeltlinjer i importfilen. Du bør konfigurere en testkonto som har en postboks på en kjørende Exchange-server, og deretter gi en annen testkonto full postbokstilgang men ikke Send som-tilgang til denne kontoen.
  • Det finnes ingen angrefunksjon for dette skriptet. Hvis du vil fjerne Send som-tillatelsene du har gitt med dette skriptet, må du generere et nytt skript eller fjerne dem manuelt. Skriptet inneholder ingen angrefunksjon for å unngå at skriptet skal kunne brukes til å fjerne Send som-tillatelsene for alle brukerne i en organisasjon.
  • Skriptet kan ikke håndtere en konto som har fått Alle tillatelser for et brukerobjekt i tillegg til full postbokstilgang. Alle tillatelser omfatter Send som-tillatelsen, men skriptet eksporterer kontoen som om den ikke hadde Send som-tillatelsen. Dette kan føre til at eksportfilen blir større, men du kan importere filen og gi en overflødig Send som-tillatelse til slike kontoer.
  • Active Directory-brukerkontoer som har unike navn som inneholder tabulatorer eller enslige doble anførselstegn, kan ikke behandles av dette skriptet. Skriptet kan behandle et navn som inneholder parvise doble anførselstegn, slik som
    "CN=Fornavn "Kallenavn" Etternavn,DC=domene,DC=com"
  • Excel kan behandle filer på opptil 65 535 linjer. Hvis utdatafilen er større enn dette, må du dele filen inn i mindre deler før du laster den til Excel.
  • Filen Send_As_Errors viser bestemte kontoer der det har oppstått problemer med lese- eller skrivetilgangen. Hvis andre kontoer i domenet ble behandlet uten problemer, kan det hende at disse kontoene har noe til felles som hindrer at skriptet kan kjøres på dem. Vanlige problemer kan være følgende:
    • Mangel på administrative rettigheter til å vise eller angi egenskaper for kontoene.
    • Exchange-postbokslageret kjører ikke.
    • Arbeidsstasjonen tilhører ikke samme domene.
    • Den administrative kontoen som brukes, tilhører ikke samme skog.
Kjør dette skriptet ved å kopiere og lime inn alle linjene mellom BEGIN SCRIPT og END SCRIPT i et rent tekstredigeringsprogram som for eksempel Notisblokk. Lagre skriptet som AddSendAs.vbs. BEGIN SCRIPT
Option Explicit

Dim OUTPUT_DELIMITER
OUTPUT_DELIMITER = """""""" & vbTab & """"""""

'Definer ekslusivliste, hvis FMA er gitt til en bruker i denne listen, blir den ignorert.  Hvis du
'vil endre denne listen, nå du passe på å bruke samme formatet. Hvert alias må
'ha en OUTPUT_DELIMITER før og etter seg
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

'Tillatelsessype: Gi eller nekte
const ACCESS_ALLOWED_OBJECT_ACE_TYPE  = 5
const ADS_ACETYPE_ACCESS_ALLOWED = &h0
const ADS_ACETYPE_ACCESS_DENIED = &h1

Flagg: Angir tillatelser
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

'Deklarere ADSI-konstanter
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

'navn på utdatafil
Const EXPORT_FILE = "Send_As_Export"
Const ERROR_FILE = "Send_As_Errors"

' skriptmodus
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"

' argumentindeks
Const ARG_INDEX_MODE = 1
Const ARG_INDEX_DC = 0
Const ARG_INDEX_FILENAME = 2

' kolonneindeks i import-/eksportfil
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 = "Ingen representanter"
Const STRYES = "Har representanter"
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("ADVARSEL: Hvis du fortsetter, vil hver konto i det domenet som har")
		WScript.StdOut.WriteLine("tillatelsen Full tilgang til postboks for en bestemt postboks, også bli gitt")
		WScript.StdOut.WriteLine("tillatelsen Send som postbokseier.")
		WScript.StdOut.WriteLine()
		WScript.StdOut.WriteLine("For å forhåndsvise listen med postbokser før du gir tillatelsen Send As,")
		WScript.StdOut.WriteLine("avbryter du denne operasjonen og bruker -Export-modus for skriptet.")
		WScript.StdOut.WriteLine()
		WScript.StdOut.Write("Trykk Y for å fortsette eller en annen tast for å avbryte: ")
		strInput = WScript.StdIn.ReadLine()
		If (UCase(strInput) <> UCase("Y")) Then
			WScript.Quit
		End If	
	End If
	
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("""!"" angir en feil ved behandlingen av et objekt.")
	WScript.StdOut.WriteLine("     Kontroller " & sErrorsFilename)
	WScript.StdOut.WriteLine("Starter...")
	WScript.StdOut.WriteLine()

	err.Clear	
	Set rootDSE = GetObject("LDAP://" & sDCServer & "/RootDSE")
	sDomainContainer = rootDSE.Get("defaultNamingContext")
	WScript.StdOut.WriteLine("Finner domenekontroller [ " & sDCServer & " ] for domenet [ " & sDomainContainer & " ]")
	
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Fant ikke domenet eller domenekontroller, feil:" & err.Description)
		objfileError.WriteLine("Fant ikke domenet eller domenekontroller, feil:" & 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("Kunne ikke binde til Active Directory-server, feil:" & err.Description)
		objfileError.WriteLine("Kunne ikke binde til Active Directory-server, feil:" & err.Description)
		WScript.Quit
	End If

	Set objCommand.ActiveConnection = conn
	WScript.StdOut.WriteLine("Søker etter brukerkontoer til postbokseier i " & 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("Søk etter postbokseier var mislykket, feil:" & err.Description)
		objfileError.WriteLine("Søk etter postbokseier var mislykket, feil:" & err.Description)
		WScript.Quit
	End If

	If (rsUsers.RecordCount = 0) Then
		WScript.StdOut.WriteLine("Det ble ikke funnet brukerkonto til postbokseier i " & sDomainContainer & ".")
		objfileError.WriteLine("Ingen brukerkonto til postbokseier ble funnet i  " & sDomainContainer & ".")
		fError = True		
	End If

	While Not rsUsers.EOF
		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
		fOneError = False
		
		'Hopp over postboksobjekt i Microsoft Exchange System Objects-mappen
		If (0 = Instr(rsUsers.Fields(0).Value, MESO)) Then
			err.Clear 
			Set objUser = GetObject(rsUsers.Fields(0).Value)
			If (err.number <> 0) Then
				objfileError.WriteLine("Kan ikke hente brukerobjekt: " & 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("Kan ikke hente postboksrettigheter: " & 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("Kan ikke hente 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

			'Send spørring etter denne brukerens publicDelegates-liste
			err.Clear 
			msPublicDelegates = objUser.Get("publicDelegates")
			If (err.number <> 0) Then
				'Denne brukeren har ikke angitt noen publicDelegates-liste
				sIfPublicDelegate = STRNO
				err.Clear
			Else
				sIfPublicDelegate = STRYES
			End If
			
			err.Clear 			
			FindAllFMAUsers objSDMailBox
			
			If (TotalACE > dArraySize) Then
			'Må allokere en større størrelsesmatrise
				dArraySize = TotalACE + 1
				ReDim Preserve sTrusteeAlias(dArraySize)
				FindAllFMAUsers objSDMailBox
			End If
			If (err.number <> 0) Then
				objfileError.WriteLine("Feil ved spørring av postboksrettigheter for bruker: " & 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
					
					'Kontroller om vi allerede har en Send As ACE i NT-sikkerhetsbeskrivelsen
					'Hvis den finnes, bruk enten tillate eller nekte, vi trenger ikke tilføye Send as
					CheckSendAsACE objDACLNTSD, sTrusteeAlias(i)
					
					'Obs: nektelser går foran tillatelser. 
					'Hvis det finnes FMA, nekt ACE, hopp over selv om vi finner FMA som tillater 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
			
						'Send spørring til trustee(FMA-bruker) for å hente 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
							'Feil ved spørring av FMA-brukers visningsnavn, bruk alias
							sFMAUserDisplayName = sAlias							
						Else
							sFMAUserDisplayName = objTrustee.displayName							
						End If
	
						'utdata til eksportfil
						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("Bruker " & rsUsers.Fields(0).Value & " kunne ikke legges til eksportfilen. Du må angi tillatelser manuelt for denne brukeren.")
							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("Kan ikke oppdatere ADSI for brukeren: " & 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("Hvis du fortsetter, blir hver konto som er oppført i " & sImportFilePath)
	WScript.StdOut.WriteLine("og som har Full tilgang til postboks for en bestemt postboks, også bli gitt")
	WScript.StdOut.WriteLine("tillatelsen Send som postbokseier.")
	WScript.StdOut.WriteLine()
	WScript.StdOut.Write("Trykk Y for å fortsette eller en annen tast for å avbryte: ")
	strInput = WScript.StdIn.ReadLine()
	If (UCase(strInput) <> UCase("Y")) Then
		WScript.Quit
	End If	
	WScript.StdOut.WriteLine("Starter...")
	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("Kan ikke åpne importfilen " & sImportFilePath & ", feil:" & err.Description)
		objfileError.WriteLine("Kan ikke åpne importfilen " & sImportFilePath & ", feil:" & 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("Feil ved analysering av en rad: " & sOneRow )
			objfileError.WriteLine("Error: " & err.Description)
			err.Clear
			fError = True
			fOneError = True
		End If
		
		If (UserPath <> sArraySplit(COLUMN_INDEX_USERADSPATH)) Then
			'En ny bruker
			If (fNeedToAddSendAs = True ) Then
				'oppdatere eksisterende bruker
				err.Clear
				objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
				objUser.SetInfo
				If (err.number <> 0) Then
					objfileError.WriteLine("Kan ikke oppdatere tillatelser for brukeren: " & 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("Kan ikke hente brukerobjekt: " & UserPath)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If
		End If
	
		'Legg til newACE   Trenger vi denne kontrollen?
		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
		'oppdater forrige bruker
		err.Clear
		objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
		objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
		objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
		objUser.SetInfo
		If (err.number <> 0) Then
			objfileError.WriteLine("Kan ikke oppdatere tillatelser for brukeren: " & 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("Fullført med en eller flere feil. Se " & sErrorsFilename)
Else
	WScript.StdOut.WriteLine("Riktig fullført. Det oppstod ingen feil.")
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
				'Behold en liste som eksplisitt angir FMA på postboksnivå
				sFMAExplicitAllow = sFMAExplicitAllow & objACE.Trustee & OUTPUT_DELIMITER			
			End If
		ElseIf (( (objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0 ) And (objACE.AceType = ADS_ACETYPE_ACCESS_DENIED)) Then
			'Behold en liste som nektet FMA, bruk OUTPUT_DELIMITER som skilletegn,
			'inkluder både arvet og eksplisitt angitt på postboksnivå
			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("Kan ikke lese tillatelser for denne brukeren: " & sTAlias)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If			
		Next			
	End If	
End Function

Function IfFMAAllowed(sTrustee)
	'FMA tillat ACE ble funnet. Anta at det er sant
	fFMAAllowed = True
	
	If ( (0 <> Instr(sFMADeniedList, sTrustee)) And (0 = Instr(sFMAExplicitAllow, sTrustee))	) Then
		'Hvis nektet ACE blir funnet, og ingen eksplisitt tillatelse av 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("Kan ikke opprette eksportfiler eller feilfiler: " & err.Description)
		objfileError.WriteLine("Kan ikke opprette eksportfiler eller feilfiler: " & err.Description)
		fError = True
		fOneError = True
		WScript.Quit	
	End If

End Function

Function DisplaySyntax
	WScript.StdOut.WriteLine("Syntax:")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Eksporter kontoer med full tilgang til postboks som ikke har tillatelsen Send As:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Export")
	WScript.StdOut.WriteLine("         OBS!: Listen blir lagret til Send_As_Export_HH_MM_SS.txt")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Gi Send As til alle kontoer som er oppført i en eksportfil:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Import ""filename.txt""")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Gi Send As til alle kontoer i domenet med full tilgang til postboks:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -SetAll")
	WScript.StdOut.WriteLine("         OBS!: Kontoene blir oppført i Send_As_Export_HH_MM_SS.txt")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("For all modier blir feilene lagret i Send_As_Errors_HH_MM_SS.txt")

	WScript.Quit	
End Function
END SCRIPT

Programmeringseksemplene som Microsoft bruker, er kun eksempler. Microsoft gir ingen garantier, direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen er basert på at du er kjent med programmeringsspråket som brukes, og med verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan være behjelpelige med å forklare funksjonaliteten til en bestemt prosedyre, men de endrer ikke disse eksemplene for å gi forbedret funksjonalitet, og oppretter ikke prosedyrer spesielt for å dekke dine bestemte behov.
Hvis du vil ha mer informasjon om hvilke brukerstøttetilbud Microsoft har, kan du gå til dette Microsoft-webområdet:
http://support.microsoft.com/contactus/?ws=support
Tredjepartsproduktene som er omtalt i denne artikkelen, produseres av selskaper som er uavhengige av Microsoft. Microsoft gir ingen garantier, stilltiende eller andre typer garantier, med hensyn til disse produktenes ytelse eller pålitelighet.

Egenskaper

Artikkel-ID: 912918 - Forrige gjennomgang: 26. november 2007 - Gjennomgang: 17.2
Informasjonen i denne artikkelen gjelder:
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
Nøkkelord: 
kbtshoot kbpending kbbug kbprb KB912918

Gi tilbakemelding

 

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