Ühendumine Exchange Server 2010 külge Powershell abil

Exchange 2010 serverit on võimalik administreerida suvalisest masinast, kus on olemas Powershell 2.0. Ühenduse loomiseks saab anda ka kasutajanime/parooli, mis ei pruugi olla samad, kui ühenduse tegemise tööjaamas sisselogitud kasutajanimi. Natuke lähemalt, kuidas seda ühendust luua ja võimalused.

Kõigepealt loeme muutujasse $UserCredential (vabalt valitud nimi) kasutajanime/parooli:

$UserCredential = Get-Credential

Ilmuvasse aknassse tuleb siis need ka väärtused sisestada:

image

Järgmise käsuga alustame sessiooni näiteks ex01.contoso.com nimelise Exchange serveriga, ning omistame selle mingile muutujale:

$rs = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ex01.contoso.com/powershell -Credential $UserCredential

Kui nüüd anda mingi Exchange PS käsk (näiteks Get-ExchangeServer), siis saame veateate:

image

Üks võimalus käsku saata ja tulemust näha on:

Invoke-Command {Get-ExchangeServer} -Session $rs

image

Nagu näha, siis sellisel kombel serverile edastatud käsk annab tulemuse, nagu oleks tulemus antud Format-List käsule.

Pidevasse käsukeskkonda saab siseneda käsuga:

Enter-PSSession $rs

image

Antud juhul toimivad kõik Exchange käsud samamoodi kui “tavalises” Exchange Management Shell-is. Küll aga ei toimi siin tabulaatoriga automaatne käskude ja võtmete pikendamine. Antud keskkonnast saab välja Exit-PSSession käsuga.

Kõige mugavama keskkonna, mis käitub nagu “päris” Exchange Management Shell, saame käsuga:

Import-PSSession $rs

Siin toimib ka tabulaatoriga käskude ja võtmete pikendamine. Käsu andmisel võib esimene kord tekkida ainult üks probleem – nimelt pole tavaliselt Powershellis lubatud signeerimata skriptide käivitamine (import sisaldab xml allalaadimist ja käivitamist, mida loetakse ebaturvaliseks). Selle kõrvaldamiseks tuleks neid õigusi laiendada. Kõigepealt tasub need õigused üle kontrollida, seda käsuga Get-ExecutionPolicy –List, mis annab näiteks sellise tulemuse:

image

Siit on näha, et antud sisseloginud kasutajal on õigused piiramata (Unrestricted). Kui policy staatus on Undefined või Restricted, siis saab seda muuta ära käsuga (see on ühekordne tegevus, pole vaja iga kord teha):

Set-ExecutionPolicy Unrestricted

või täpsemalt skoobiga määrates:

Set-ExecutionPolicy -Scope CurrentUser Unrestricted

Selleks, et ei peaks kõike seda meelde jätma, on lihtsam panna ühenduse tegemise käsud skripti ja siis see vajadusel käivitada. Alloleva teksti võib siis kopeerida ja salvestada ps1 laiendiga faili:

$UserCredential = Get-Credential
$rs = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ex01.contoso.com/powershell -Credential $UserCredential
Import-PSSession $rs

Exchange Management Shell ise kasutab bin kataloogis olevat RemoteExchange.ps1 skripti, mis on märksa keerulisem. Mida see täpsemalt teeb, võib igaüks huvi korral järgi uurida Smile

Lõpetuseks veel – kui Exchange Management Shell käivitate, siis antakse seal alati mingi nõuanne (tip). Kui mõnda lisaks saada, siis kasutage käsku Get-Tip. Paraku töötab see ka ainult “päris” EMS alt (kasutab bin kataloogis olevat xml failis sisalduvaid tippe, mis loetakse “päris” shelli käivitamisel sisse).