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.