www.SAMURAJ-cz.com 

02.05.2024 Zikmund Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Exchange Web Services a PowerShell

Čtvrtek, 13.01.2011 11:00 | Samuraj - Petr Bouška |
Pro práci s Exchange serverem máme k dispozici řadu cmdletů v PowerShellu a pro některé funkce GUI. Ale někdy se může hodit i trochu jiný způsob. Můžeme použít Exchange Web Services Managed API, což je .NET rozhranní k EWS, které využívá Web Services SOAP protokol a Autodiscover. A stejně jako jiné .NET rozrhaní jej můžeme použít rovnou z PowerShellu.

Od verze Exchange 2007 SP1 obsahuje poštovní server Exchange Web Services (EWS), tedy rozhraní pro přístup k položkám v Exchange data store. Pro programování nebo skriptování je k dispozici Exchange Web Services Managed API, což je knihovna, která dovolí využít EWS a to i třeba z PowerShellu. Můžete to být zajímavý nástroj, pouze se mi zdá podivný způsob, jak je umožněno přistupovat ke schránkám uživatelů. I když jste Exchange Admin, tak nemáte oprávnění pomocí EWS získat nějaké informace, ale musí se použít Impersonation (popis pro Exchange 2007), což je zjednodušeně řečeno nastavení speciálního oprávnění na účty uživatelů.

Tento článek je pouze malým navedením, jak EWS v PowerShellu použít.

Nejprve musíme načíst knihovnu EWS.

Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\1.1\Microsoft.Exchange.WebServices.dll"

Vytvoříme objekt služby Exchange, důležité je specifikovat verzi Exchange (jinak dostaneme chybu při bind, zadání s SP2 mi nefungovalo).

$exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1)

Musíme zadat adresu CAS serveru, buď ručně nebo se určí automaticky pomocí Autodiscover (pro určitého uživatele).

$exchService.Url = "https://mail.firma.local/EWS/Exchange.asmx"
$exchService.AutodiscoverUrl("bouska@firma.cz") 

Další důležitý krok je, k jaké schránce a pod jakými právy budeme přistupovat, máme tři možnosti. U prvních dvou zadáváme uživatele, pod kterým budeme přistupovat, a defaultně se přistupuje k jeho schránce. První možnost, využijí se credentials aktuálního uživatele.

$exchService.UseDefaultCredentials = $true

Nebo zadáme credentials nějakého určitého uživatele, musí se zadat i jeho heslo.

$exchService.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($user, "heslo", "domain")

Poslední možnost je využít impersonalizace, tehdy přistupujeme k účtu zadanému v této funkci. Standardně pod uživatelem, který spustil skript, a ten musí mít práva pro Impersonation.

$exchService.ImpersonatedUserId = New-Object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress, "nekdo@firma.cz")

Nyní se již můžeme připojit k nějaké složce (folder) uživatele. V příkladu se připojíme ke kalendáři.

$calendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService, [Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar) 

Zde můžeme například zobrazit práva na kalendáři. Druhý řádek zobrazí informace o uživateli, který je přiřazen první položce.

$calendar.Permissions
$calendar.Permissions[0].UserId

Práva můžeme i nastavit (pokud pro daného uživatele již práva nastavena jsou, dostaneme chybu). Na konci je třeba provést aktualizaci, aby se změna provedla.

$FolderPermission = New-Object Microsoft.Exchange.WebServices.Data.FolderPermission("nekdo-jiny@firma.cz", [Microsoft.Exchange.WebServices.Data.FolderPermissionLevel]::Reviewer)
$calendar.Permissions.Add($FolderPermission)
$calendar.Update()
zobrazeno: 14804krát | Komentáře [0]

Autor:

Související články:

Microsoft Exchange

Jednou částí mé práce je administrace poštovního serveru od firmy Microsoft, tedy Exchange Serveru. Články začínají u verze 2003 a jak jde čas, tak pokračují dále.

PowerShell

Články týkající se Microsoft skriptovacího jazyku PowerShell, který se používá ve všech nových verzích MS OS a aplikací.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

Zatím tento záznam nikdo nekomentoval.

Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách