PowerShell voor meer Office 365 services i.c.m. Azure MFA

Voor de techneuten met PowerShell-ervaring hebben we goed nieuws: Microsoft heeft nieuwe PowerShell modules vrijgegeven waarmee inloggen met behulp van Azure Multifactor Authenticatie (Azure MFA) geen probleem meer is! Tot voor kort kon alleen via de verschillende portals met de extra beveiliging ingelogd worden. Via de bestaande PowerShell modules, op die voor Azure Active Directory na, kon dit alleen via basic authentication.

Links naar Azure MFA enabled PowerShell modules

Eerst even wat linkjes naar de instructies van Microsoft en download:

Azure MFA voor Microsoft Exchange Online Remote PowerShellEerste ervaringen

We gebruiken zelf vooral de Azure Active Directory en Exchange Online PowerShell modules. Zoals aangegeven is Azure Active Directory al langer geschikt voor het gebruik i.c.m. Azure MFA. Door geen credentials mee te geven aan de cmdlet Connect-MsolService wordt er een venster getoond waarin de authenticatie kan plaatsvinden, al dan niet i.c.m. Azure MFA. De installatie van de module is een MSI die voor iedere gebruiker van de machine te gebruiken is.

Exchange Online Remote PowerShell Module

De Exchange Online Remote PowerShell Module is alleen te installeren d.m.v. een ClickOnce installatie die te downloaden is vanaf de Exchange Admin center. Dit moet per gebruiker geïnstalleerd worden, want de locatie voor de software is %localappdata%.

De module kan vervolgens gestart worden via de snelkoppeling in het startmenu. In veel gevallen is dat niet praktisch en moet de functionaliteit gebruikt worden vanuit een ander PowerShell script. Om dit te omzeilen zijn er al een aantal workarounds bekend, zoals in de PowerShell Gallery. Of iets makkelijker met de code uit het commentaar op deze blog op Technet:

$Path = $env:LOCALAPPDATA+”\Apps\2.0\”
Import-Module MSOnline
Connect-MsolService
Import-Module $((Get-ChildItem -Path $($Path) -Filter Microsoft.Exchange.Management.ExoPowershellModule.dll -Recurse ).FullName|?{$_ -notmatch “_none_”}|select -First 1)
$NewSession = New-ExoPSSession
Import-PSSession $NewSession

Een andere methode is door de module centraal neer te zetten. Dit omzeilt de ClickOnce installatie, waardoor de software niet meer wordt bijgewerkt. Het voordeel is echter dat niet iedereen de module handmatig hoeft te installeren. De volgende bestanden moeten uit de map %localappdata%\Apps\2.0 gevist worden en in een gedeelde map geplaatst worden:

  • CreateExoPSSession.ps1
  • Microsoft.Exchange.Management.ExoPowershellModule.dll
  • Microsoft.IdentityModel.Clients.ActiveDirectory.dll
  • Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll

Door het PS1-bestand te “dotsourcen” en de twee ActiveDirectory-dll’s te importeren kan de functionaliteit beschikbaar gemaakt worden.

. "C:\SVNJH\Management\Exchange\ExoPowerShellModule\CreateExoPSSession.ps1"
Import-Module "C:\SVNJH\Management\Exchange\ExoPowerShellModule\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
Import-Module "C:\SVNJH\Management\Exchange\ExoPowerShellModule\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll"
Connect-EXOPSSession

Hierna kunnen de Exchange Online cmdlets gebruikt worden zoals men gewend is.



Wilt u graag een afspraak maken? Dat kan!

Wij ontvangen u met plezier of komen graag bij u op locatie.

[contact-form-7 id="605" title="Contactformulier 1"]
Heeft u een vraag?

Vul onderstaand formulier in en wij nemen zo snel mogelijk contact op!

[contact-form-7 id="606" title="Mail icoon popup"]
X