Tuesday, January 28, 2014

Office 365 en Windows Azure AD beheren met PowerShell

Microsoft heeft de afgelopen jaren beslist niet stilgezeten als het gaat om het beheer van Office 365. De moderne webinterface biedt veel functionaliteit, is consistent vormgegeven over de verschillende gebieden en is duidelijk genoeg om snel je weg in te vinden.

image

Toch zijn er legio redenen te bedenken waarin je toch graag toegang wilt krijgen met PowerShell, bijvoorbeeld om zaken in te stellen die niet in de webinterface kunnen of om herhalende taken uit te voeren. Denk bijvoorbeeld aan het automatisch toewijzen van licenties aan nieuwe gebruikers.

Als we SharePoint Online en Lync Online even buiten beschouwing laten dan spreken we eigenlijk over twee verschillende PowerShell omgevingen. Als eerste is er Exchange Online PowerShell, hier kunnen we onder andere het volgende mee doen:

  • (Shared) mailboxen aanmaken of wijzigen
  • Rechten op mailboxen aanpassen
  • Etc.

En dan is er nog de Windows Azure AD PowerShell Module, voorheen bekend als Microsoft Online PowerShell Module. Dat laatste zie je nog terugkomen in de naam van de cmdlets, die bevatten allemaal de string ‘msol’. Hiermee kunnen we onder andere de volgende zaken regelen:

  • Toevoegen van een domein aan Office 365
  • Domein omzetten naar federated of stand-alone
  • Licenties toewijzen aan gebruikers

In de praktijk is het handig om een eenvoudig PowerShell script op je computer te hebben staan die verbinding maar met zowel Exchange Online als Azure AD. Hiermee kun je dan altijd alle werkzaamheden uitvoeren.

We starten met het installeren van de Windows Azure AD Module, die op zijn beurt afhankelijk is van de Microsoft Online Services Sign-in Assistant. Een link naar beide downloads vind je hier: Manage Windows Azure AD using Windows PowerShell.

Vervolgens sla je het volgende script op als .ps1-bestand op je eigen computer. Wijzig de UPN in die van je Office 365 beheeraccount, dit spaart je wat typewerk omdat je alleen nog je wachtwoord hoeft in te voeren als daar om gevraagd wordt:

Function Vraag-Credentials
{
$Global:Cred = Get-Credential -Credential beheerder@tenant.onmicrosoft.com
}

Function Verbind-AzureAD
{
Connect-MsolService  -Credential $Cred
}

Function Verbind-ExchangeOnline
{
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri
https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $Session
}

Import-Module msonline
Vraag-Credentials
Verbind-AzureAD
Verbind-ExchangeOnline

Voordat je een niet-ondertekend script kunt draaien kan het nodig zijn om je computer hier eerst voor te configureren: Set-ExecutionPolicy Unrestricted

Wanneer je dit script uitvoert krijg je een PowerShell sessie waarin je zowel Azure AD als Exchange Online voor deze Office 365 omgeving kunt beheren.

No comments: