Kategoriarkiv: Exchange

Segmentera adressboken i Office 365 / Exchange Online

Jobbar man med t.ex. skolor eller lite större företag kan det finnas önskemål om att segmentera adressboken. Finns lite olika sätta att göra detta på. Just detta exemplet är användbart när man jobbar med skolor och vill att varje klass ska ha sin egen adressbok.

Börja med att ansluta till Office 365 / Exchange Online med Powershell.
Sedan måste vi aktivera adressbokspolicy routing.
För att göra detta skriver man:

Set-TransportConfig -AddressBookPolicyRoutingEnabled $true

För att kolla så det gick igenom så skriver man:

Get-TransportConfig | fl AddressBookPolicyRoutingEnabled

 

För att få rättighet att ändra och skapa adresslistor måste man lägga till rollen ”Address Lists” i säkerhesgruppen ”Organization Management”.
För att göra detta skriver man:

New-ManagementRoleAssignment -SecurityGroup ”Organization Management” -Role ”Address Lists”

 

När man ska segmentera adressboken måste man ha något att filtrera på. Smidigast att filtrera saker på är customattribute i Exchange. I detta fallet har vi inte satt något customattribute på användarna när vi la upp dem. Däremot har vi satt den klassen de går i (KlassB i detta exemplet) som ”Department”.

För att få över ”Department” till ”CustomAttribute1” så skriver vi följande:

Get-MsolUser  |  ForEach { Set-Mailbox $_.UserPrincipalName -CustomAttribute1 $_.Department }

 

För att skapa adresslistor, adressböcker, adressbokspolicys för en klass som heter ”KlassB” skriver vi följande:

New-AddressList -Name ’KlassB_All’ -ConditionalCustomAttribute1 ”KlassB” -IncludedRecipients AllRecipients

New-AddressList -Name KlassB_Contacts -ConditionalCustomAttribute1 ”KlassB” -IncludedRecipients MailContacts

New-AddressList -Name KlassB_Recources -ConditionalCustomAttribute1 ”KlassB” -IncludedRecipients Resources


New-GlobalAddressList -Name KlassB_GAL -ConditionalCustomAttribute1 ”KlassB” -IncludedRecipients AllRecipients


New-OfflineAddressBook -Name KlassB_OAB -AddressLists KlassB_GAL


New-AddressBookPolicy -Name KlassB_ABP -AddressLists KlassB_All, KlassB_Contacts -OfflineAddressBook KlassB_OAB -GlobalAddressList KlassB_GAL -RoomList KlassB_Recource
s

 

För att sedan lägga på adressbokspolicyn som vi skapade med kommandot New-AddressBookPolicy här ovanför till användarna som har ”KlassB_ABP” satt till CustomAttribte1 skriver vi:

Get-Mailbox -resultsize unlimited | where {$_.CustomAttribute1 -eq “KlassB”} | Set-Mailbox -AddressBookPolicy “KlassB_ABP”

Sedan gör man samma sak för KlassA, KlassC och så vidare.
Sätter man ingen adressbokspolicy på användarna så kommer de att se alla adressböcker.

Vill man ha en adressbokspolicy för t.ex. lärare, adminstratörer och så vidare som ska kunna se alla så gör man såhär:

New-AddressBookPolicy -Name ”Larare_ABP” -AddressLists ”KlassA_All”,”KlassA_Contacts”,”KlassB_All”,”KlassB_Contacts”,”All Groups”,”All Contacts”,”All Distribution Lists”,”All Rooms”,”All Users” -OfflineAddressBook ”\Default Offline Address Book” -GlobalAddressList ”\Default Global Address List” -RoomList ”\All Rooms”

Sedan får man naturligtvis tilldela denna nya adressbokspolicyn till de användarna som ska ha den.

 

Källor: http://www.flexecom.com/gal-segmentation-in-office-365/
http://www.testlabs.se/blog/?p=3936

Och en kollega som kunde detta sedan innan. .

Fix för fenomenet att skickade objekt från en delad maillåda hamnar i användarens skickade låda i O365

När en användare skickar mail från en delad maillåda så hamnar det i användarens skickat mapp istället för på den skickade maillådan som standard.

Microsoft har nu ordnat en fix på detta.
Det den gör är att den även lägger en kopia på det skickade mailet i skickat mappen på den delade maillådan. Så mailet kommer alltså att ligga både under skickat i den delade maillåda och i användarens skickat.

Det finns två olika scenarier när man skickar från en delad maillåda. Antingen skickar man som avsändaren (Sent As) eller också skickar man på uppdrag av avsändaren (SendOnBehalf).

För att se om funktionen är påslagen eller avslagen skriver vi detta:
Get-Mailbox -Identity <info@foretaget.se>  | Select-Object MessageCopyForSentAsEnabled,MessageCopyForSendOnBehalfEnabled

För att slå på funktionen skriver vi detta:
set-mailbox <info@foretaget.se> -MessageCopyForSentAsEnabled $True
set-mailbox <info@foretaget.se> -MessageCopyForSendOnBehalfEnabled $True

För att slå av funktionen så skriver vi detta:
set-mailbox <info@foretaget.se> -MessageCopyForSentAsEnabled $False
set-mailbox <info@foretaget.se> -MessageCopyForSendOnBehalfEnabled $False

 

Källa: http://blogs.technet.com/b/exchange/archive/2015/03/03/want-more-control-over-sent-items-when-using-shared-mailboxes.aspx

Sätta granskare som standard på alla användares kalendrar i O365.

Ibland vill vissa kunder inte att man ska behöva dela ut sin kalender för att andra ska kunna titta på den. Utan att man helt enkelt ska kunna öppna en kollegas kalender utan att behöva skicka massa delningsförfrågningar.

För att göra det på en användare så skriver man såhär:
Set-MailboxFolderPermission -Identity ”MailboxID:\Kalender” -User default -AccessRights Reviewer

Via powershell kan man sätta så att standardutdelningen på alla användares kalender är ”Reviewer”, så har man löst problemet:

foreach($user in Get-Mailbox -RecipientTypeDetails UserMailbox) {
$cal = $user.alias+”:\Kalender”
Set-MailboxFolderPermission -Identity $cal -User Default -AccessRights Reviewer
}

För att se så det har fungerat skriv:

Get-MailboxFolderPermission -Identity användare:\Kalender

Då ska du få ut detta:

FolderName User AccessRights
———- —- ————
Kalender Standard {Reviewer}
Kalender Anonymous {None}

Under användare standard står det ”{Reviewer}”

Tänk på att ”:\Kalender” kan heta t.ex. ”:\Calendar” om användaren har engelskt språk inställt.

Tänk även på att du inte kan göra detta via delegerad admin utan måste logga in med en dedikerad admin mot just den tenanten.

Källa: https://community.office365.com/en-us/f/148/t/279982

Ändra tidszon, språk, datumformat och standardmapparnas namn i Outlook Web App / Outlook för en användare.

Ibland kan det blir lite jobbigt rent språkmässigt i Office 365. Har man fått fel språk på sin Inkorg, Utkorg, Skickat, Skräppost osv finns det i Office 365 sätt att byta detta.
Användaren kan göra det själv genom att följa de här stegen:

  1. Log on to Outlook Web App by using your credential.
  2. Click Options, and then click See All Options.
  3. Click Settings, and then click Regional.
  4. On the Regional Settings page, change the language, select the date and time format that you want to use, and then select the Rename default folders so their names match the specified language option.
  5. Click Save, and then exit Outlook Web App.
  6. Restart Outlook.

Ibland vill man som administratör göra det åt användaren, eller ifall man har en delad maillåda som man själv inte har rättigheter till så kan man göra detta via powershell.

För att ändra tidszonen, språk, datumformat och standarmapparnas till svenska standarder via powershell för maillådan ”info” skriver man följande i powershell:

Set-MailboxRegionalConfiguration -Identity info -TimeZone ”W. Europe Standard Time” -Language sv-SE -LocalizeDefaultFolderName:$true -DateFormat ”yyyy-MM-dd” -TimeFormat ”HH:mm”

Får du detta felmeddelandet:

The localization operation of the default folders of mailbox ”info” failed:Det går inte att hitta standardmappen.
+ CategoryInfo : InvalidOperation: (anders.stormats:MailboxIdParameter) [Set-MailboxRegionalConfiguration], InvalidOperationException
+ FullyQualifiedErrorId : [Server=HE1PR06MB1113,RequestId=761af6a6-3b5d-4714-9240-b56b1215a57d,TimeStamp=2015-06-02 09:59:56] [FailureCategory=Cmdlet-InvalidOperationException] 948A68CD
,Microsoft.Exchange.Management.StoreTasks.SetMailboxRegionalConfiguration
+ PSComputerName : outlook.office365.com

Så har du troligtvis en mapp som den inte kan döpa om. Kan vara att t.ex. Outlook skapat någon mapp som heter Skräppost och då krockar det när O365 försöker döpa om mappen Junk till Skräppost. Lösningen är att ta bort mappen som heter t.ex. Skräppost och sedan köra kommandot igen. Den döper dock om de mapparna som går att döpa om, trots felmeddelandet.

Källor: http://community.office365.com/en-us/f/158/t/269232.aspx och https://support.microsoft.com/en-us/kb/2826855

Ta bort så att maillådor som du har tillgång till inte dyker upp i din Outlook 2007 eller nyare automatiskt.

Från och med Outlook 2007 så dyker maillådor som du har fulla rättigheter till automatiskt upp i din Outlook genom autodiscover. Rätt bra funktion kan jag tycka men vissa användare vill ha tillgång till maillådorna hela tiden, men de vill kunna lägga till och ta bort dem själva i sin Outlook.

För att inaktivera denna funktionen som kallas automapping gör man följande:

Anslut till Exchange Online med Powershell.
Om användaren som inte ska ha automapping längre redan har  rättigheter till maillådan måste vi ta bord dem.
För att ta bort rättigheterna för användaren arne@kalle.se till maillådan info@kalle.se så skriver man följande:

Remove-MailboxPermission -Identity info@kalle.se -User arne@kalle.se -AccessRights FullAccess

För att sedan lägga till arne@kalle.se igen med fulla rättigheter men utan automapping skriver man följande:

Add-MailboxPermission -Identity info@kalle.se -User arne@kalle.se -AccessRights FullAccess -AutoMapping:$false

Sedan väntar man en stund tills info@kalle.se har försvunnit från Arnes outlook och då kan han lägga till den manuellt genom att gå till Arkiv > Kontoinställningar > Ändra > Fler inställningar > Avancerat
Där kan han även ta bort den själv när han inte vill att den ska synas i sin Outlook. Sedan kan han lägga till den igen när han har behov av den.

Källor: https://support.microsoft.com/en-us/kb/2646504 och https://technet.microsoft.com/en-us/library/hh529943(v=exchg.141).aspx

Workaround för InvalidLicenseException när du kör en staged migrering

Om man har råkat få på Exchange Online licenser för användarna innan man migrerar över deras maillådor till O365 när du kör Dirsync och migrerar med hjälp av en staged migrering så kan det bugga rätt rejält. Felmeddelandet som kommer i loggen för användaren är detta:

”27/01/2015 15:41:35 [DB4PR04MB489] Transient error InvalidLicenseException has occurred. The system will retry (60/60).
27/01/2015 15:42:08 [DB4PR04MB489] The Microsoft Exchange Mailbox Replication service ’DB4PR04MB489.eurprd04.prod.outlook.com’ (15.1.65.15 caps:1FFF) is examining the request.
27/01/2015 15:42:10 [DB4PR04MB489] Connected to source mailbox ’Outlook Anywhere (/o=Foretag/ou=First Administrative Group/cn=Recipients/cn=username)’, database ”, Mailbox server ’servername’ Version 8.1 (Build 399.0).
27/01/2015 15:42:10 [DB4PR04MB489] The job encountered too many transient failures (60) and is quitting.
27/01/2015 15:42:10 [DB4PR04MB489] Fatal error InvalidLicenseException has occurred.”

Det som hjälper är att ta bort användaren från den migreringsbatchen som den ligger i med hjälp av Powershell kommandot: Remove-MigrationUser (Källa: https://technet.microsoft.com/en-us/library/jj219167(v=exchg.150).aspx)

Efter detta ta bort Exchange Online licensen för användaren (ibland krävs det att man tar bort alla O365 licenser), lägg sedan till licenserna igen. Då kommer en maillåda att skapas i O365 för den användaren. Gör sedan en ny migreringsbatch med de berörda användarna!

WAAD + Staged Exchange migrering!

Sitter mitt uppe i ett projekt där en kund vill ha Active DIrectory synkronisering upp till O365 samt migrera bort sin Exchange 2007 server.

Här kommer det hur man i korta drag går tillväga och vad man ska tänka på!

Förberedelser:

Kör iDfix för att kontrollera AD:et. UPN skall vara t.ex. anders@foretaget.com och inte anders@foretaget.local
Ändra så det blir anders@foretaget.com som standard UPN. När iDfix ser bra ut så gå till steg 2.
Gör du inte detta kommer användarna att få en *@foretaget.onmicrosoft.com adress istället för en *@foretaget.com adress i O365 och då missar man hela poängen med ”same sign on”.

För att kunna lägga till flera UPN:er så kolla här: http://support2.microsoft.com/kb/243629
Ladda ner iDfix: http://www.microsoft.com/en-us/download/details.aspx?id=36832
Mer om att ändra UPN: http://support2.microsoft.com/kb/243629
I
fall UPN inte blir som det ska på vissa användare I O365 (t.ex. om någon annan än du själv dragit igång projektet och inte haft full koll på allt): http://support2.microsoft.com/kb/2669550/en-us

Logga in på den Office 365 tenanten som du vill köra WAAD på och gå till users and groups och sedan på Active Directory synchonization > Set up

Installera och kör igång WAAD Sync. Tänk på att de användarna du använder skall ha lösenord som är satta till ”never expire”. Kontrollera så att WAAD Sync fungerar, testa byt lösenord på en användare, ändra namn med mera och se till
så ändringarna synkroniseras över till O365. Kontrollera så det är rätt UPN på användarna i O365!

Ladda ner WAAD Sync: http://www.microsoft.com/en-us/download/details.aspx?id=44225
Guide/Felsökning WAAD Sync: http://www.msexchange.org/articles-tutorials/exchange-server-2013/management-administration/troubleshooting-synchronization-windows-azure-active-directory-waad-part1.html

MIgreringen:

1. Hängslen och livrem: Ta backup på mailboxarna som skall migreras
Info om det här: http://technet.microsoft.com/en-us/library/bb266964(v=exchg.80).aspx

2. Logga in på O365 portalen gå till Admin > Exchange > Recipients > Migration > + > Migrate to Exchange Online. Välj staged och följ guiden.
OBS om du synkroniserar ditt AD skall ForceChangePassword sättas till $false i CSV filen.

3. När den är klar konvertera mailboxarna som har migrerats över till MEU enligt denna artikeln:
http://community.office365.com/en-us/w/exchange/845.convert-exchange-2007-mailboxes-to-mail-enabled-users-after-a-staged-exchange-migration.aspx

OBS scriptet som man kör för att konvertera över mailboxarna till MEU kan bugga. Ned Bellavance har gjort ett som fungerar bättre: http://anexinetisg.blogspot.se/2013/10/x500-address-woes-on-exchange-2007.html

Om du migrerar från Exchange 2003 så följer du dessa intruktionerna (denna har jag ej testat själv): http://community.office365.com/en-us/b/office_365_community_blog/archive/2011/10/31/convert-exchange-2003-mailboxes-to-mail-enabled-users-after-a-staged-exchange-migration.aspx

4. Återställ lösenordet i on-prem AD:et för användarna du precis migrerat. (Detta för att i steg 2 har man satt ett lösenord i CSV filen och för att få samma lösenord i on-prem AD:et och i O365 portalen igen måste man byta lösenord i on-prem AD:et så det synkroniseras upp till O365 igen.)

5. På morgonen när användarna som vi migrerat över kommer till jobbet skapar de en ny profil i sin Outlook och då kommer autodiscover automatiskt att skicka dem till deras Office365 maillåda.

När du är säker på att du migrerat över alla maillådor så kan du peka om MX pekarna för att peka på O365 servrarna istället!

I de bästa av världar hade man nu kunnat avinstallera sin(a) Exchange servrar från sin miljö men nu är inte Microsofts produkter det bästa av världar utan man ska helst behålla sin Exchange server! Om man vill så kan man avveckla den, Dock med en brasklapp från Microsoft:
”Decommissioning Exchange can have unintended consequences. Before decommissioning your on-premises Exchange organization, we recommend that you contact Microsoft Support.”
Taget från: http://technet.microsoft.com/en-us/library/jj874018%28v=exchg.150%29.aspx

Bra noteringar:

Glöm inte att tilldela licenser till användarna efter du migrerat dem!

För att efter en staged migration med WAAD Sync lägga till alias med mera på en användares maillåda så gå till (på din on-prem Exchange server) Exchange Managment Console > Recipient Confgiruation > Mail Contact.
Där finns de som du har migrerat över som ”Mail User”.

För att köra igång en fullständig synkronisering i WAAD kör denna filen:
C:\Program Files\Microsoft Azure AD Sync\Bin\DirectorySyncClientCmd.exe

Full lösenordssync i WAAD: (detta ska teoretiskt skriva över lösenordet som skapas i steg 2 under staged migreringen men fungerar inte i verkligheten) .
http://social.technet.microsoft.com/wiki/contents/articles/28433.how-to-use-powershell-to-trigger-a-full-password-sync-in-azure-ad-sync.aspx
När du kör denna skall eventid 601 dyka upp i Application loggen. Efter det skall eventid 653, 654, 609 dyka upp. Efter att eventid 601 har dykt upp kan det ta mer än en halvtimme innan resten dyker upp.

 

Office 365 autodiscover med en intern Exchange server.

Trots att man gör alla inställningar korrekt i DNS servrarna, både internt och externt så kommer autodiscover att krångla när man innan kört en intern Exchange server.
Detta beror på någonting som heter SCP (Service Connection Point) och som finns i Active Directory. Lösningen på problemet är att stänga av SCP på den interna miljön.

Detta gör man enklast via Powershell på Exchange servern med detta kommando: Set-ClientAccessServer -Identity “SERVERNAME” -AutoDiscoverServiceInternalUri $NULL

Mer information finns här: http://www.agileit.com/news/outlook-profile-autodiscover-service-order-of-precedence-and-disabling-scp-for-hosted-exchangeoffice-365-migrations/
Och här: http://theucguy.net/service-connection-point-scp-in/

Har man inte kontroll över Active Directory / Exchange miljön så kan man även konfigurera varje klient manuellt. Detta med hjälp av en XML fil och lite registernycklar. Lättast att göra detta är via ett gratisprogram som heter MessageOps Config 365. Man kan tanka hem programmet här: http://www.messageops.com/software/office-365-tools-and-utilities/config-365/

Tänk på att om du väljer att krysa i rutan Prefer Local XML – for autodiscover så måste du rensa registernycklarna efter att man löst de interna problemen med SCP.
Annars kan det sluta fungera om Microsoft byter namn på Office 365 servrarna.
Registernycklar som skall tas bort:

Outlook 2007:
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\AutoDiscover

Outlook 2010:
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\AutoDiscover
ExcludeHttpRedirect=0
ExcludeHttpsAutodiscoverDomain=1
ExcludeHttpsRootDomain=1
ExcludeScpLookup=1
ExcludeSrvRecord=1
PreferLocalXML=1