May, 2007

  • Public folders managen op 2007 (pre-sp1)

    Het moge duidelijk zijn. Public folders managen in Exchange 2007 zonder sp1 is ruk. Toch kan je het jezelf makkelijk maken door gewoon de system manager te gebruiken van Exchange 2003. Echter er is 1 probleem... Je kan geen verbinding maken met een public folder store op een 2007 server... The requested operation is forbidden

    Error wanneer je PF store op 2007 opent

    Of toch wel?

    Ja dus...
    More...
    Om verbinding te leggen met een public folder store op een 2007 server met de System Manager van 2003 moet je het vereiste voor 128bits ssl encryptie van de ExAdmin en Public virtual directories halen op je Exchange 2007 server in de IIS manager.

    Virtual directoriesSSL settings

  • Exchange 200[0|3] Performance threshholds

    Exchange server performance troubleshooting is in Exchange 2000|3 perfect beschreven op technet.

    Voor Exchange 2007 is er echter nog geen revisie op dit artikel. Voor het troubleshooten is dat echter geen ramp aangezien je hiervoor de Troubleshooting Assistent hebt. Dit is echter bedoelt om een systeem te bewerken welke al live is.

    Voor het pre-deployment testen van Exchange met bijv. Jetstress heb je echter wat meer achterliggende info nodig. Iemand bij Microsoft is zo aardig geweest alvast wat performance counters vrij te geven.
    More...

    Disk Sub-system Thresholds Performancetest Stresstest
    Data Disk Read Latency (average) 20 ms 20 ms
    Data Disk Read Latency (maximum) 50 ms 100 ms
    Data Disk Write Latency (average) 20 ms 20 ms
    Data Disk Write Latency (maximum) 50 ms 50 ms
    Log Disk Read Latency (average) 5 ms 5 ms
    Log Disk Read Latency (minimum) 50 ms 50 ms
    Log Disk Write Latency (average) 10 ms 10 ms
    Log Disk Write Latency (maximum) 50 ms 100 ms
    System Thresholds Performancetest Stresstest
    % Processor Time (maximum) 90% 90%
    % Processor Time (average) 80% 80%
    Available Memory Bytes (minimum) 50 MB 50 MB
    Page Table Entries (minimum) 5000 5000
    Transition Pages Repurposed/Sec (average) 100 100
    Memory Pages Per Sec (average) 100 100
    Pool Nonpaged Bytes (maximum) 75 MB 75 MB
    Pool Paged Bytes (maximum) 180 MB 180 MB
    Database Page Fault Stalls Per Sec (average) 1.0 1.0
  • SMTP Reply & Status codes

    Tijdens het troubleshooten van mailservers zijn SMTP reply codes en SMTP status codes vaak waardevolle bronnen van informatie. Je moet echter wel begrijpen wat deze codes inhouden. Vandaar dat ik hier een overzicht post met de meest voorkomende codes.
    More...
    Veelal zie ik SMTP reply codes en SMTP status codes door elkaar gebruikt worden alsof ze hetzelfde zijn. Dit is echter niet zo. De status codes zijn gespecificeerd in verschillende RFC's en door de jaren heen zijn er verschillende uitbreidingen geweest. Ik zal niet ingaan op RFC nummers, maar het zit als volgt. Een SMTP server heeft een aantal standaard reply codes om aan te geven wat de return waarde is bij een bepaald commando wat meegeven wordt tijdens de SMTP sessie. Zo is 250 een code wat aangeeft dat het commando met een positief resultaat is uitgevoerd. Deze codes zijn redelijk beperkt en door de jaren heen zijn er extra RFC's geschreven voor wat uitgebreidere status meldingen. Deze zijn echter niet als SMTP reply code geimplementeert in het SMTP protocol, maar worden als 'message' of 'comment' teruggegeven in combinatie met een SMTP reply code.

    Een voorbeeld is:

    550 5.7.1 Client does not have permissions to send as this sender

    550 is de SMTP reply code en 5.7.1 is de status code van het systeem

    Hieronder zal ik een tweetal overzichten posten:

    Let wel... De response varieert van systeem tot systeem. Let vooral op de code en de daarbij horende uitleg. Het doel van een bepaalde code is vastgelegd in RFCs, en zal daardoor (bijna) altijd gelijk zijn

    SMTP reply codes:

    Code Mogelijk response Uitleg
    200 (nonstandard success response, see rfc876) Generieke succesvolle response
    211 System status, or system help reply Status of reactie op HELP
    214 Help message Comment of help bericht
    220 Service ready Service ready bericht, Je kan nu starten met invoeren van commando's
    221 Service closing transmission channel Exit bericht na succesvolle transmissie
    250 Requested mail action okay, completed Actie met success uitgevoerd
    251 User not local; will forward to Bericht wordt relayed
    354 Start mail input; end with . Je kan nu de content van het bericht invoeren
    421 Service not available, closing transmission channel Exit bericht na permissie probleem of andersoortig configuratie probleem
    450 Requested mail action not taken: mailbox unavailable Mailbox is niet beschikbaar melding
    451 Requested action aborted: local error in processing Interne fout
    452 Requested action not taken: insufficient system storage Storage of Memory probleem (voornamelijk het laatste)
    500 Syntax error, command unrecognised Commando bestaat niet
    501 Syntax error in parameters or arguments Syntax van commando klopt niet
    502 Command not implemented Commando wordt niet ondersteunt
    503 Bad sequence of commands Command kan op deze plaats niet uitgevoerd worden
    504 Command parameter not implemented Parameter wordt niet ondersteunt
    521 does not accept mail (see rfc1846) Het domein wordt hier niet gehost en relaying is niet toegestaan
    530 Access denied Permissie kwestie
    550 Requested action not taken Actie wordt niet uitgevoerd
    551 User not local; please try Mailbox bestaat niet, zend opnieuw met dit adres
    552 Requested mail action aborted: exceeded storage allocation Storage of Memory probleem (voornamelijk het laatste)
    553 Requested action not taken: mailbox name not allowed De zender mag niet zenden naar deze gebruiker
    554 Transaction failed Fout in de transactie

    SMTP status codes:

    Code Mogelijk response Uitleg
    4.2.2 The recipient has exceeded their mailbox limit Mailbox is vol
    4.3.1 Not enough disk space on the delivery server Het mailsysteem heeft geen ruimte meer (veelal geheugen probleem)
    4.3.2 Please try again later Veelal administratieve acties of antispam response
    4.4.1 The host is not responding De server reageert niet om onduidelijke redenen.
    4.4.2 Bad connection De verbinding weerhoudt het systeem ervan een volledige smtp sessie te voltooiten
    4.4.6 Too many hops. Most likely the message is looping Een mailloop is gedetecteerd op basis van recieved headers of het maximaal aantal hops is overschreden (15 E2K en 30 E2K3)
    4.4.7 Problem with a timeout maximale verzendtijd overschreden
    4.4.9 temporary routing error or bad routing configuration Routes zijn niet juist geconfigureerd
    4.5.0 Requested mail action not taken: mailbox unavailable Mailbox is (tijdelijk) niet beschikbaar
    4.5.1 Requested action aborted: local error in processing Commando syntax klop wordt niet juist uitgevoerd
    4.5.2 Requested action not taken: insufficient system storage Het mailsysteem heeft geen ruimte (veelal geheugen probleem)
    4.6.5 Multi-language situation. Your server does not have the correct language code page installed MIME conversie fout m.b.t. taal
    5.0.0 Other undefined Status Alles wat niet in de andere generieke status codes past
    5.1.0 Other address status Een generieke fout betreffende het emailadres
    5.1.1 Bad destination mailbox address De mailbox (deel links van de @) klopt niet of bestaat niet.
    5.1.2 Bad destination system address Het domein (deel rechts van de @) klopt niet of het systeem verantwoordelijk voor het domein werkt (tijdelijk) niet
    5.1.3 Bad destination mailbox address syntax De syntax van het emailadres klopt niet
    5.1.4 Destination mailbox address ambiguous Address matched meerdere mailboxen. Systemen als Exchange kunnen hier niet mee om gaan, anderen weer wel
    5.1.5 Destination address valid Het emailadres is valide en geaccepteerd
    5.1.6 Destination mailbox has moved;No forwarding address De mailbox bestaat niet (meer) en er is geen forwarding address
    5.1.7 Bad sender's mailbox address syntax Het return adres klopt syntactisch niet
    5.1.8 Bad sender's system address Het domein van de verzender klopt niet
    5.2.0 Other or undefined mailbox status Een generieke fout betreffende de mailbox
    5.2.1 Mailbox disabled;not accepting messages De mailbox is disabled
    5.2.3 Message length exceeds administrative limit De mailbox specifieke maximum berichtgrootte is overschreden
    5.2.4 Mailing list expansion problem Een adreslijst kan niet uitgepakt worden
    5.3.0 Other or undefined mail system status Een generieke fout betreffende het mailsysteem
    5.3.2 System not accepting network messages Het mailsysteem accepteert geen berichten
    5.3.3 System not capable of selected features Geselecteerde verbs worden niet ondersteund
    5.3.4 Message too big for system De maximale berichtgrootte (of quota) van het systeem is overschreden.
    5.3.5 System incorrectly configured Het systeem houdt zich niet aan de smtp syntax of het systeem is verkeerd geconfigureerd
    5.4.0 Other or undefined network or routing status Een generieke netwerk fout
    5.4.1 No answer from host Het mailsysteem reageert niet
    5.4.3 Directory server failure Kan geen verbinding maken met een directory server (DNS of AD)
    5.4.4 Unable to route Kan geen route vinden
    5.4.5 Mail system congestion Het mailsysteem accepteert geen berichten meer door drukte (opstopping)
    5.4.6 Routing loop detected Een mailloop is gedetecteerd op basis van systeemconfiguratie
    5.5.0 Other or undefined protocol status Generieke protocol fout
    5.5.1 Invalid command Het protocol commando bestaat niet of wordt niet ondersteunt
    5.5.2 Syntax error De syntax van het commando klopt niet
    5.5.3 Too many recipients Het maximaal aantal ontvangers per email is overschreden
    5.5.4 Invalid command arguments Gebruik van verkeerde parameters of waardes
    5.5.5 Wrong protocol version De gebruikte protocollen tussen client en server komen niet overeen
    5.6.0 Other or undefined media error Een generieke fout met de inhoud van het bericht (body of attachment); veelal een MIME fout
    5.6.1 Media not supported De inhoud van het bericht wordt niet ondersteunt
    5.6.2 Conversion required and prohibited Het bericht moet geconverteerd worden en dat staat het systeem niet toe
    5.6.3 Conversion required but not supported Het bericht moet geconverteerd worden en daartoe is het systeem niet in staat
    5.6.4 Conversion with loss performed Het bericht is geconverteerd met dataloss
    5.6.5 Conversion Failed Het converteren is mislukt
    5.7.0 Other or undefined security stats Een generieke fout betreffende beveiliging
    5.7.1 Delivery not authorized; message refused Filtering staat niet toe dat de verzender een bericht af kan leveren bij de ontvanger
    5.7.2 Mailing list expansion prohibited Het uitpakken van adreslijsten is niet toegestaan
    5.7.3 Security conversion required but not possible De verandering van het ene security protocol naar het andere is vereist maar mislukt
    5.7.4 Security features not supported Bepaalde security features worden niet ondersteund.
    5.7.5 Cryptographic failure Er is een probleem opgetreden met cryptografische bewerken zoals bijv het decrypten van data via TLS
    5.7.6 Cryptographic algorithm not supported Een bepaalde encrypty algoritm wordt niet ondersteund.
    5.7.7 Message integrity failure De integriteit van het bericht is aangetast en daardoor wordt het niet geaccepteerd.
  • OWA redirect en logondomein

    Outlook Web Access wordt geinstalleerd met een aantal standaard webfolders in IIS. Om verbinding te kunnen maken met OWA, moet je voor Exchange 2003 verbinding maken met http:\\domein\Exchange en bij Exchange 2007 met https:\\domein\owa. Om ervoor te zorgen dat je direct naar OWA doorgezet wordt, doe je het volgende:
    More...

  • Open IIS
  • RMB op het serverobject en selecteer 'All tasks' > 'Backup/Restore Configuration' > 'Create Backup'
  • Open de properties van de 'default website'.
  • Selecteer de 'Home directory' tab en kies voor 'redirect to a URL'
  • Vul in 'redirect to' de waarde /owa of /exchange toe.
  • Kies in 'The client will be sent to:' de optie 'A directory below URL entered.'
  • Kies twee maal 'OK' om de wijzigingen effectief te maken
  • Wanneer nu naar de root van de website gebrowsed wordt, wordt men direct doorgerouteerd naar de OWA folder.

    Daar aangekomen moet men zich aanmelden. Dit kan door gebruik te maken van de UPN of een domain/user combinatie. Je kan er echter ook voor zorgen dat gebruikers alleen hun usernaam hoeven te gebruiken. Hiervoor moet je echter wel forms-based authenticatie gebruiken.
    In Exchange 2007 staat dat standaard aan. De optie is te vinden door in de Exchange management console, in de Server Configuration de client access server te selecteren en de eigenschappen van de OWA virtual directory op te vragen. De optie is te vinden op de security tab. In een default installatie kan je ook het volgende cmdlet op de client access server draaien.

    Set-owavirtualdirectory -identity "owa (default web site)" -FormsAuthentication:$true

    Op diezelfde tab kan je ook bepalen hoe je de gebruikers wilt laten aanmelden; alleen met hun usernaam, met een domain/user combinatie of met de UPN.

    In Exchange 2003 is dit wat lastiger. Het aanzetten van forms-based authentication gaat als volgt:

  • Start Exchange System Manager.
  • Browse naar Admin Group > servers > servernaam > Protocols > HTTP > Exchange Virtual Server > Properties.
  • In de Settings tab selecteer je 'Enable Forms Based Authentication'
  • In the Compression list, selecteer je het niveau van compressie. (gebruik dit alleen als je in een frontend/backend situatie zit ivm extra load op de machine
  • Open een command prompt en draai 'iisreset /noforce' om IIS te herstarten
  • Om gebruikers gebruik te laten maken van alleen hun username, moet de OWA logon pagina aangepast worden.. Om dit voor elkaar te krijgen ga je naar de directory die hoort bij de juiste TAAL (je browser bepaalt welke taal je voorgeschoteld krijgt, dus eigenlijk moet elke pagina aangepast worden. Je kan directories echter verwijderen, waardoor de default usa folder gebruikt wordt.)
    Browse naar de gewenste folder in %installdir%\exchweb\bin\auth\ en open de 'logon.asp' pagina in een editor.

    Vervang de

    met de volgende code:

    Vergeet de niet te vervangen met het gewenste domein

  • Volume Shadow Copy Service (VSS) & Exchange

    VSS of Volume Shadow Copy Service is een van de meest onderbelichte onderdelen van de laatste Windows besturingssystemen (XP, 2003, Vista, Longhorn). Ikzelf heb er nooit echt aandacht aan besteed, tot de vraag rees wat VSS backups van Exchange voor voordelen heeft.
    More...
    Om die vraag te kunnen beantwoorden moest ik eerst zien uit te zoeken hoe VSS nou eigenlijk in elkaar steekt.
    De Volume Shadow Copy Service is in essentie niet een Windows Service zoals de naam doet vermoeden, maar meer een concept of architectuur. Het bestaat uit een aantal onderdelen zoals in onderstaande screenshot is gevisualiseerd:

    VSS architectuur

    De requestor is hetgene wat de backup aanvraagt, zoals bijvoorbeeld een backup tool; de provider is hetgene wat de shadow copy maakt en beheert en de writer is hetgene wat applicatiespecifieke data klaarzet om te laten meenemen in de shadow copy. In het geval van Exchange 2007, zorgen de Exchange VSS writers ervoor dat de laatste logfiles uit het geheugen naar de database geflushed worden, de E00.log (de actieve log file) wordt gesloten, een tijdelijke E00tmp.log wordt aangemaakt, en de database wordt in read only mode gezet. Nu kan het creeeren van de shadow copy beginnen.
    Zo op het eerste gezicht lijkt het op een normale backup. In Exchange 2003 gebeurde iets soortgelijks om ervoor te zorgen dat de inhoud van de database niet wijzigt gedurende de backup. Als je wijzigingen toestaat tijdens de backup, krijg je namelijk inconsistentie in de database. Pages waarnaar verwezen wordt in records die al in de backup set zitten, zouden ineens verwijdert kunnen worden en dus niet meenomen worden in de backup. Dat willen we uiteraard niet.
    ...page...
    Maar de voorbereiding is ook het enige wat overeenkomt tussen de oude Exchange streaming backup (backuppen via de information store service) en de Shadow Copy.
    Een shadow copy kan OF een complete kopie zijn van de data of een snapshot. In Microsoft termen is een kopie een clone of split-mirror, waarbij bij de creatie van een clone een complete kopie gemaakt wordt op het moment dat de requestor een shadow copy aanvraagt, en een split-mirror gaat uit van een bestaande mirror van de data die op het moment dat de backup wordt aangevraagd, wordt losgekoppeld van de data zodat de wijzigingen niet langer gemirrord worden (deze methode vind je meestal alleen terug in hardware VSS oplossingen). Bij een snapshot wordt er door Microsoft gesproken over copy-on-write. Dit is - wat ik niet wist - al een hele oude techniek die terug te vinden is in bijvoorbeeld het EXT3 filesysteem maar ook in Unix implementaties van virtual memory en verschillende Virtualisatie producten. Het werkt als volgt:

    Op het moment dat de Exchange VSS writers de data hebben klaargezet voor de Shadow Copy, bevriest Windows de harddisk sectoren waar de Database op staat en creert een shadow storage file waarin de gewijzigde sectoren opgeslagen worden. Elke write naar de orginele dataset vind gewoon plaats, maar voordat de sector overschreven wordt, wordt deze gekopieerd naar de shadow storage file. Een soort filter driver in kernel mode (VOLSNAP.SYS) vangt alle lees en schrijf operaties af en bepaald of een sector gekopieerd moet worden voordat deze overschreven is. Dit werkt dus op harddisk sector niveau. Dit zijn dus geen NTFS clusters; VOLSNAP heeft geen weet van de Master File Table, omdat het op een lager niveau dan het filesystem werkt. Het zit tussen het filesystem en de device drivers in.
    Applicaties kunnen op deze manier nog op de normale manier gebruik blijven maken van de data. Wanneer nu een backup gestart wordt van de snapshot, worden alle niet gewijzigde sectoren van de standaard locatie gelezen en alle gewijzigde sectoren van de shadow storage file. VOLSNAP bepaalt waar de sectoren te vinden zijn.
    Na de backup wordt de shadow storage meestal weer vrij gegeven. Deze kan echter bewaard blijven, maar zal dan uiteindelijk kunnen groeien tot dezelfde grootte als het orgineel voor de snapshot.

    Zie de volgende pagina voor een schematisch overzicht...
    ...page...
    Copy On Write

    Het voordeel van VSS voor Exchange is er in het geval van een clone backup nagenoeg niet. De database blijft read only gedurende de creatie van de shadow copy, net zoals de streaming backup bij Exchange 2003. Als je echter met een snapshot of split-mirror shadow copy werkt, vergt de creatie van de shadow copy slechts enkele seconden (het moet zelfs binnen 70 seconden anders failed de operatie), waarna de database weer vrijgegeven wordt voor schrijfacties. Op zich niet zo heel groot voordeel, maar in grote omgevingen liepen servers vaak tegen het limiet van 1024 uncommited logfiles aan, waarna de server crashte. Bij split-mirror heb je nog het voordeel dat je een backup kan doen op niet-productie LUNs.
    Een ander voordeel wat vaak genoemd wordt is het restoren van data. Microsoft schermt met tatements als 'Restore databases in minutes in stead of hours with VSS'

    Dream on zeg ik dan. Ja, als je een snapshot online hebt staan kan je heel snel een stap terug in de tijd, maar hier heb je de orginele dataset nog voor nodig.
    Als je een volledige dataset kwijt bent, zul je toch ALLE data moeten restoren en dat is vergt gewoon tijd. Het moet immers van een backup medium naar een ander medium.

    Het enige verschil wat ik nog zie ten opzichte van 2003 is dat het niet meer via de Information store hoeft, wat zeker een performance boost geeft.

    Bronnen:
    http://blogs.msdn.com/adioltean/archive/2004/12/11/280052.aspx

    http://technet2.microsoft.com/windowsserver/en/library/2b0d2457-b7d8-42c3-b6c9-59c145b7765f1033.mspx?mfr=true

    Microsoft Windows Internals, 4th edition - Mark E. Russinovich and David A. Solomon

    http://technet.microsoft.com/en-us/library/aa996004.aspx

  • Exchange 2007 permissie delegatie

    Exchange 2007 komt met een nieuw delegatiemodel gebaseerd op een aantal rollen. Op het eerste gezicht is dit dus niet veel anders dan Exchange 2003, maar toch zijn er een aantal significante wijzigingen.
    More...
    Waren de permissies die behoorden tot de rollen in 2003 impliciet te delegeren via de Exchange system manager; de rollen in Exchange 2007 zijn, op de Server Administrator na, expliciet te zetten door een security enabled object lid te maken van een of meerdere Universal Groups in het root domain.
    De rollen zijn als volgt:

  • Exchange Organization Administrator
  • Exchange View-Only Administrator
  • Exchange Recipient Administrator
  • Exchange Server Administrator
  • Zoals al gemeld zijn de eerste drie rollen terug te vinden als Universal Group in een nieuw aangemaakte OU, 'Microsoft Exchange Security Groups', in het root domain.
    secgroups.jpg

    Organization Administrator
    Zoals de naam al doet vermoeden is een organization administrator in staat om op organisatieniveau zaken te bewerken. Het gaat echter verder dan dat. Een Organization Administrator is in principe in staat om ALLES te wijzigen wat met Exchange 2007 te maken heeft. Hij heeft dus naast de rechten om organisatie brede eigenschappen aan te passen, ook rechten op elke Exchange server en de Exchange propery sets. In het dagelijks beheer is het dus niet verstandig om beheerders standaard Organization Administrator te maken. Dit zou in principe een rol moeten zijn die bij changes aangevraagd en geaudit moet worden.

    View Only Administrator
    Een view only administrator is in staat de configuratie van Exchange in de Configuration partitie van Active Directory uit te lezen. Hij heeft standaard echter geen rechten op een Exchange server en is daardoor niet zo View-Only als je zou denken. Zo kan je geen informatie over Client Access virtual folders (zoals OWA en ActiveSync) uitlezen en kan je ook de status van bijvoorbeeld de databases niet uitlezen. Om ook deze te kunnen uitlezen heb ik de volgende workaround gevonden. Let wel, dit is niet gebaseerd op officiele documentatie, maar is in mijn optiek redelijk secure. Voer het volgende uit:
    1. Sta toegang tot de IIS metabase toe door een van de volgende commandos te draaien op de Exchange server:

    %windir%\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -ga
    Werkt alleen vanaf ASP.NET 2.0, dus in principe wel op elke Exchange 2007 server

    cscript Metaacl.vbs "IIS://Localhost/W3SVC" RE
    Metaacl moet je wel eerst HIER downloaden

    2. Sta toegang tot het remote registry toe door Lees rechten te geven op de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
    SecurePipeServers\ winreg
    key.

    3. Sta voldoende DCOM permissions toe door een security enabled object lid te maken van de 'Distributed Com Users' local group op de Exchange server OF Access permissies toe te staan in component services. Dit gaat als volgt:
    - Open de 'Component Services' snapin (comexp.msc) en selecteer Computers > My Computer > DCOM Config > IIS WAMREG admin service > Properties.
    - Selecteer de Security tab en allow remote en local access en activation permissies.
    Persoonlijk voel ik meer voor de laatste optie omdat deze alleen toegang biedt tot de IIS service en niet tot alle COM applicaties.
    ...page...
    Recipient Administrator
    De Recipient Administrator vind ik persoonlijk als rol echt een giller. Het staat toe dat over het gehele forest de Exchange property sets gewijzigd kunnen worden. Een Recipient Administrator kan dus standaard, zonder bijvoorbeeld aanvullende AD rechten als account operator, ALLE Exchange properties wijzigen en ook bijvoorbeeld mailboxen aanmaken op servers in andere domains.
    Op zich heel leuk voor de wat kleinere organisaties, maar ik had persoonlijk liever gezien, dat men via bijvoorbeeld lidmaatschap van een andere groep een en ander nog wat kon beperken. Gelukkig is dit redelijk simpel te verwezenlijken, maar het blijft maatwerk, wat ik niet zo charmant vind. Wat je doet met de volgende procedure is een aantal nieuwe Security Groups aanmaken die je gaat gebruiken om rechten te delegeren op container niveau in Active Directory.

    Voordat je begint, double en tripple-check de commando's voordat je begint!!!!

    1. Meld aan met een Domain Admin Account op een Exchange server.

    2. Maak de gewenste UNIVERSAL security groups aan.

    3. Open de Exchange management shell en voer de volgende commando's uit:

    Add-ADPermission –identity "ou=OUnaam,dc=bedrijf,dc=com" –user "domain\group" -AccessRights ReadProperty, WriteProperty -Properties Exchange-Information, Exchange-Personal-Information, legacyExchangeDN, displayName, adminDisplayName, displayNamePrintable, publicDelegates, garbageCollPeriod, textEncodedORAddress, showInAddressBook, proxyAddresses, mail

    Add-ADPermission -identity "ou=OUnaam,dc=bedrijf,dc=com" –user "domain\group" -AccessRights GenericRead

    Add-ADPermission -identity "ou=OUnaam,dc=bedrijf,dc=com" –user "domain\group" -AccessRights GenericAll –InheritanceType Descendents -InheritedObjectType msExchDynamicDistributionList

    Add-ADPermission -identity "ou=OUnaam,dc=bedrijf,dc=com" –user "domain\group" -AccessRights CreateChild, DeleteChild -ChildObjectTypes msExchDynamicDistributionList

    Add-ADPermission -Identity "CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=CompanyOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=company,DC=com" -User "domain\group" -InheritedObjectType ms-Exch-Exchange-Server -ExtendedRights ms-Exch-Recipient-Update-Access -InheritanceType Descendents

    Add-ADPermission –identity "CN=Address Lists Container,CN=ExchOrganisatieNaam,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=bedrijf,DC=com" –user "<domain\group>" -AccessRights WriteProperty -Properties msExchLastAppliedRecipientFilter, msExchRecipientFilterFlags

    Add-ADPermission –identity "CN=Recipient Policies,CN=ExchOrganisatieNaam,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=company,DC=com" –user "" -AccessRights WriteProperty -Properties msExchLastAppliedRecipientFilter, msExchRecipientFilterFlags

    Vervang alles wat schuingedrukt is met de juiste waardes voor jouw organisatie. Je kan deze commando's gebruiken op elke domein- of OU container.

    4. Voeg de beheerders accounts to aan de juiste Security Group.

    Je hebt nu voldoende toegang verleend om exchange recipient management te doen op mailenabled objecten in een bepaalde container. Het enige wat nog steeds kan is een mailbox aanmaken op elke server. Ik ben er nog niet echt achter hoe je dat kan beperken, maar misschien komt dat nog.
    ...page...
    Server Administrator
    De server administrator is een impliciete rol, welke bestaat uit lidmaatschap van de 'Exchange View-Only Adminstrators' Universal Group, 'Administrators' local group op de betreffende server(s) en lees/schrijf rechten op het/de server object(en) in de configuration partitie in Active Directory. Let wel, zet deze rol niet zelf via raw editing tools, maar gebruik de Exchange tools.
    De server administrator is in staat een individuele Exchange server te beheren.

    Delegatie van rechten
    Het delegeren van rechten is relatief simpel te doen via de Exchange Console. Selecteer de Organization Node en kies voor 'Add Exchange Administrator'
    Exchange admin toevoegen

    Je kan het ook doen via de Exchange Shell, maar ik gebruik dit zelden. Gebruik het volgende commando:

    Add-ExchangeAdministrator -Identity -Role [-DomainController ] [-Scope ]

    De scope parameter wordt alleen gebruikt bij de Server Administrator, waar je 1 of meerdere servers op kan geven

    Property Sets
    Bij de recipient administrator heb ik laten zien hoe je permissies delegeert op container niveau. Dit waren slechts een paar ACE's wat een heel verschil was met de manier waarop het in Exchange 2000|3 ging. De reden is dat met Exchange 2007 de properties (attributeSchema's) zijn gegroepeerd in property sets. Klinkt allemaal leuk, maar wat is nou een property set?
    Simpel gezegd is een property set dus een groepering van attributen, op basis waarvan rechten gedelegeerd kunnen worden.
    Als je op zoek gaat naar een propertyset als object in het schema zul je het niet terug vinden. Een propertyset wordt gedefinieerd door een controlAccessRight object aan te maken in CN=Extended-Rights,CN=Configuration,DC=bedrijf,DC=com en de rightsGuid te koppelen aan het attributeSecurityGUID property van een verzameling attributeSchema objecten in het Schema.

    In het screenshot heb ik de attributen, behorend tot de 'Exchange Personal Information' property set opgehaald, om een en ander te visualiseren.
    propertyset.jpg

    Zoals, eerder gemeld is dit, in vergelijking met Exchange 2000|3 een hele verbetering, doordat deze groepering niet bestond. Aan de andere kant is dit wel een erg zwakke implementatie. Het attributeSecurityGUID property op een attributeSchema object accepteert slechts 1 GUID octet, wat dus impliceert dat een attribuut slechts tot 1 property set kan behoren. Redelijk zwak in mijn optiek, maar beter iets dan niets. Dit is trouwens ook de reden dat wanneer je in ADSI gaat kijken naar de rechten delegatie voor bijvoorbeeld de Recipient Administrator, dat je attributen als Proxyaddresses en mail apart gespecificeerd ziet staan. Zij zijn namelijk al lid van de 'Public Information' property set.

    Bronnen:

    http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/61080b45-8bce-4c23-b744-ed264d5f0b7d.mspx

    http://www.microsoft.com/technet/prodtechnol/exchange/E2k7Help/2964c198-e624-46a1-ad3b-2e4f529466e3.mspx

    http://msexchangeteam.com/archive/2007/02/12/435171.aspx

    http://support.microsoft.com/kb/934761

    http://blog.joeware.net/2006/01/18/216/

  • Exchange command shell tips

    Voor wanneer je begint met het scripten voor Exchange 2007 wil ik je een aantal tips meegeven:

  • quickref opent een hta met een korte beschijving van de meest gebruikte Exchange cmdlets
  • More...

  • Om scripts toe te laten staan, zul je de Execution policy moeten aanpassen. Om alle scripts toe te laten, gebruik je:

    Set-ExecutionPolicy unrestricted

  • Exchange Scripts aanroepen bij een scheduled task gaat als volgt:

    PowerShell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\Bin\ExShell.Msc1" -Command ."scriptnaam.ps1"

  • Set-PSDebug -Trace 2 -Step zet je Exchange shell in debugmode, waardoor je het script stap voor stap kan doorlopen en ziet wat de status is van je variabelen.
  • Om de scope binnen je shell van local domain naar forest te zetten, gebruik je:

    $AdminSessionADSettings.ViewEntireForest=$true

  • Om alle properties van een mailboxdatabase te kunnen zien, moet je get-mailboxdatabase met de -status parameter gebruiken. Wanneer je dit niet doet, zullen eigenschappen zoals de datetime van de laatste backup en de mount-status niet zichtbaar zijn
  • Om ervoor te zorgen dat je variabelen eerst instantieert voor dat je ze vult gebruik je Set-PSDebug -Strict
  • De locale directory van het script krijg je met

    Split-path $MyInvocation.Mycommand.Definition

  • Als je snel leuke, simpele reports wilt maken, pipe je output dan naar Out-Html
  • Je kan de Exchange shell alle wijzigingen binnen Exchange laten loggen door het volgende commande te draaien:

    Set-ItemProperty HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin -Name LogpipelineExecutionDetails -value 1

  • Wanneer je in de GUI wijzigingen doet, krijg je vaak het bijhorende powershell commando te zien.
  • In de setuplogs van Exchange zijn handige one-liners te vinden om een beetje gevoel te krijgen met de shell
  • Eindig je commando's met -whatif om te zien wat er gebeurt zonder, dat het daadwerkelijk uitgevoerd wordt.
  • Exchange 2007 rollup 2

    Gisteren is de tweede update rollup voor Exchange 2007 gelanceerd. Naast de in rollup 1 aanwezige fixes bevat deze de volgende critical security fixes:
    More...

  • Outlook Web Access Script Injection Vulnerability - Information Disclosure
  • Malformed iCal Vulnerability - Denial of Service
  • MIME Decoding Vulnerability - Remote Code Execution
  • IMAP Literal Processing Vulnerability - Denial of Service
  • De bestanden zijn HIER te downloaden.
    HIER vind je meer informatie over de security fixes.