Monday, November 12, 2012

Exchange 2013 remote beheren met PowerShell

Bij de lancering van Exchange 2013 werd vooral veel nadruk gelegd op het nieuwe Exchange Admin Center (EAC). Dit is een webbased beheerconsole die de vervanger is van de MMC-gebaseerde Exchange Management Console (EMC) die we kennen van Exchange 2007 en 2010.

image

Ervaren beheerders missen in AEC al snel een aantal features die de EMC wel had, maar als sterke punt wordt vaak genoemd dat de console webbased is en je hem dus overal kunt gebruiken. Maar wat als je iets uit wilt voeren wat niet in EAC kan? Dan heb je toch de Exchange Management Shell (EMS) nodig voor volledige PowerShell toegang tot je omgeving. Zou het niet handig zijn als je die ook overal vandaan kunt gebruiken?

Om dit mogelijk te maken moet het volgende geregeld zijn:

  • De /PowerShell virtual directory moet gepubliceerd zijn in de reverse proxy, als je deze gebruikt.
  • Basic Authentication moet ingeschakeld zijn op de /PowerShell virtual directory.

En tenslotte hebben we een klein script nodig, maar daarover later meer. Het aanpassen van de reverse proxy is eenvoudig, open de publishing rule voor Outlook Anywhere en controleer of het pad /PowerShell gepubliceerd wordt. Vervolgens moeten we Basic Authentication aanschakelen op de PowerShell virtual directory, dit kunnen we mooi in het EAC uitvoeren. Navigeer hiervoor naar servers, virtual directories en kies de eigenschappen van PowerShell (Default Web Site).

image

In het authentication deel zet je een vinkje voor Basic authentication en klik je op save.

Het configureren van de server is hiermee afgerond. Nu hebben we nog een kort script nodig op onze werkplek, dit script maakt een remote PowerShell sessie met de server en importeert deze in de sessie. Dit script zou er zo uit kunnen zien:

# Functies
Function Vraag-Credentials
{
$Global:Cred = Get-Credential -Credential naam@domain.nl
}

Function Verbind-Exchange
{
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri
https://webmail.domain.nl/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $Session
}

# Doe je ding
Vraag-Credentials
Verbind-Exchange

Sla dit bestand op met de .ps1 extensie nadat je de gebruikersnaam en url aangepast hebt en roep het script aan in een standaard PowerShell console:

image

Het kan zijn dat je PowerShell eerst moet configureren om een niet-ondertekend script uit te voeren. Na het uitvoeren van het script kun je de Exchange PowerShell cmdlets gebruiken net alsof je direct op je eigen server werkt.

No comments: