forum

www.SAMURAJ-cz.com 

18.05.2012 Nataša VÍTEJTE V MÉM SVĚTĚ

Články

PowerShell - Exchange server

Pátek, 19.11.2010 08:45 | Samuraj | Microsoft admin
Na rozdíl od Active Directory se pro MS Exchange Server 2007 musel používat PowerShell pro řadu operací již od začátku. Některé operace byly časem doplněny do GUI Exchange Management Console, ale některé můžeme provést pouze přes PowerShell. Takže opět můj malý tahák užitečných PowerShell příkazů pro Exchange server (zatím ve verzi 2007).

Obecné vlastnosti

Pokud chceme používat PowerShell ISE, a ne Exchange Management Shell, tak nejprve musíme načíst příkazy Exchange serveru.

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin 

Pro Exchange Server 2010 můžeme použít.

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

Uživatelé a mailboxy (schránky)

Založení uživatele s mailboxem

Uživatele vytvoříme s defaultním heslem 123456 a určujeme kontejner, v kterém se účet vytvoří.

$pass = ConvertTo-SecureString -AsPlainText -Force -String '123456' 
New-Mailbox -Name 'Bouška Petr' -Alias 'bouska' -OrganizationalUnit 'firma.local/Firma -UserPrincipalName 'bouska@firma.local' -SamAccountName 'bouska' -FirstName 'Petr' -LastName 'Bouška' -Password $pass -ResetPasswordOnNextLogon $false -Database 'MAIL\First Storage Group\Mailbox Database' -ActiveSyncMailboxPolicy 'Default' 

Informace o mailboxu

Get-Mailbox -Identity bouska | FL 

Nastavení AutoAccept pro události v kalendáři

Například u zasedací místnosti chceme, aby automaticky schvalovala rezervace. Důležitý parametr je BookingWindowInDays, který určuje, jak dlouhou (opakující se) událost můžeme zadat.

Set-MailboxCalendarSettings -Identity zasedacka -BookingWindowInDays 360 -AutomateProcessing AutoAccept -AddOrganizerToSubject $false -DeleteSubject $false

Oprávnění na mailbox

Zjištění oprávnění

Get-MailboxPermission -Identity zasedacka | FT -AutoSize

Nastavení oprávnění

Add-MailboxPermission -Identity zasedacka -User bouska -AccessRights FullAccess -InheritanceType All

Odebrání oprávnění

Remove-MailboxPermission -Identity zasedacka -User bouska -AccessRights FullAccess -InheritanceType All

Informace o kalendáří

Get-MailboxCalendarSettings -Identity zasedacka | FL 

Nastavení delegace pro kalendář

Set-MailboxCalendarSettings -Identity zasedacka -ResourceDelegates bouska -ForwardRequestsToDelegates $true

Seznam databází

Get-MailboxDatabase

Seznam mailboxů

Get-Mailbox
Get-Mailbox -Database SERVER\VIP  

Seznam velikostí mailboxů

Get-MailboxStatistics -Database SERVER\VIP
Get-MailboxStatistics -Server SERVER -Identity bouska
Get-MailboxStatistics | select DisplayName,TotalItemSize,ItemCount,LastLogonTime | sort TotalItemSize

Vypnutí POP3 a IMAP

Set-CASMailbox -Identity bouska -PopEnabled $false -imapEnabled $false 

Seznam mailboxů, které mají zapnutý POP3 či IMAP

Get-CASMailbox -Filter {popEnabled -eq "True"}
Get-CASMailbox -Filter {imapEnabled -eq "True"} 

Nastavení IMAP a POP3 pro mailbox

Uživatelé mají defaultně povolený IMAP i POP3, pokud tomu chceme zabránit, tak můžeme pouze vypnout služby. Pokud ale chceme mít pro pár vybraných účtů povoleno třeba IMAP a ostatním to vypnout, tak to jednoduše nelze. Jedno řešení je těm speciálním účtům nastavit rozšířený atribut třeba na hodnotu IMAP a všem účtům, které toto nastavení nemají vypnout.

Seznam uživatelů, kteří mají nastavený customAttribute1 (v ADUC u uživatele záložka Attribute Editor, položka extensionAttribute1)

Get-Mailbox -Filter {customAttribute1 -eq "IMAP"}

Vypnutí POP3 pro všechny uživatele, kteří jej mají zapnuto

Get-CASMailbox -Filter {popEnabled -eq "True"} | Set-CASMailbox -PopEnabled $false 

Vypnutí IMAP u všech, kteří nemají nastavený atribut

Get-CASMailbox -Filter {imapEnabled -eq "True"} | get-Mailbox | where{$_.customAttribute1 -ne "IMAP"} | Set-CASMailbox -imapEnabled $false

Změna limitu na velikost pravidel v Rules and Alerts

Uživatel může mít ve své schránce vytvořeno pouze omezené množství aktivních pravidel (Rules and Alerts). Toto omezení je dánou společnou velikostí, kterou tato pravidla zabírají, a na Exchange 2007 je to 64 kB.

Set-Mailbox -Identity bouska -RulesQuota 128kB

Veřejné složky (Public Folders)

Zjištění uživatelských oprávnění na Public Folder

Get-PublicFolderClientPermission -Server SERVER -Identity "\složky\hotline" 

Nastavení uživatelských oprávnění na Public Folder

Add-PublicFolderClientPermission -Identity "\složky\hotline" -AccessRights Owner -User bouska

Zjištění oprávnění na AD objektu

Get-ADPermission -Identity hotline | FT -AutoSize

Nastavení SendAs oprávnění

Add-ADPermission -Identity hotline -User bouska -ExtendedRights Send-as

Seznam velikostí Public Folderů

Get-PublicFolderStatistics -Server SERVER | Sort-Object TotalItemSize | FT Name,FolderPath,ItemCount,TotalItemSize,LastAccessTime -AutoSize

Seznamy adres (Address List)

Seznam všech Address List

Get-AddressList

Přejmenování Address Listu

Změna jména a zobrazovaného jména seznamu. Jméno můžeme změnit i přes GUI, ale nezměníme tam DisplayName, takže uživatelé v Outlooku stále uvidí staré jméno.

Set-AddressList -Identity "All Users " -Name "Zaměstnanci"
Set-AddressList -Identity "Zaměstnanci" -DisplayName "Zaměstnanci"

Zprávy a logy (email)

Nalezení určitých zpráv za danou dobu

Potřebujeme zjistit, jestli za poslední den přišla nějaká zpráva na určitou adresu, nebo chceme vypsat všechny příchozí zprávy od nějaké odesílatele, podobných situací je mnoho. Použijeme cmdlet Get-MessageTrackingLog, který, jak již název napovídá, prochází message tracking log a vyhledává určité záznamy. Specifikovat můžeme kategorii (jako Receive, Send), odesílatele, příjemce, časové rozmezí, předmět (subject - pokud jej logujeme), apod.

Get-MessageTrackingLog -server MAIL1 -EventID "RECEIVE" -Recipients "samuraj@samuraj-cz.com" -Start "01/12/2010 00:00:00" -End "03/12/2010 23:59:59" | Group Recipients | FL
Get-MessageTrackingLog -server MAIL1 -EventID "RECEIVE" -Sender "samuraj@samuraj-cz.com" -Recipients "samuraj@samuraj-cz.com" -MessageSubject "dotaz" -Start "06/12/2010 16:00:00" -End "06/12/2010 17:00:00" | FT Timestamp, Sender, MessageSubject -AutoSize

Pokud chceme zjistit, jestli za poslední hodinu přišla nějaká zpráva, můžeme například použít.

$time = Get-Date
$mails = Get-MessageTrackingLog -server OKMAIL1 -EventID "RECEIVE" -Sender "samuraj@samuraj-cz.com" -Recipients "samuraj@samuraj-cz.com" -Start $time.AddHours(-1) -End $time |  FT Timestamp, Sender, MessageSubject -AutoSize
($mails | Measure-Object).Count

Testy a kontroly

Test funkčnosti ActiveSync pro určitého uživatele (musíme zadat jeho heslo).

Test-ActiveSyncConnectivity -MailboxCredential (get-credential user@domain)

Test synchronizace s Edge serverem a ověří, jestli má aktuální data.

Test-EdgeSynchronization

Ověřuje, jestli funguje odesílání a doručování emailů, může testovat i mezi definovanými mailbox servery a ověřovat zpoždění.

Test-Mailflow

Přihlásí se k definované nebo systémové schránce, tím ověří funkčnost MAPI, LDAP a Exchange store.

Test-MAPIconnectivity

Ověřuje funkci autodiscover.

Test-OutlookWebServices | FT -AutoSize

Ověřuje funkčnost OWA pro určitého uživatele (musíme zadat jeho heslo).

Test-OwaConnectivity -MailboxCredential (get-credential user@domain)

Ověřuje funkčnost POP3 pro určitého uživatele (musíme zadat jeho heslo)..

Test-PopConnectivity -MailboxCredential (get-credential user@domain)

Testuje jestli daná IP adresa je legitimní pro odesílání mailů z dané domény.

Test-SenderId -IPAddress 1.2.3.4 -PurportedResponsibleDomain domain.tld

Vypíše seznam všech Exchange služeb a otestuje zda běží a jsou nastaveny na autostart.

Test-ServiceHealth

Získá data o Exchange systému a podle Best Practices vypíše doporučení.

Test-SystemHealth
zobrazeno: 3669krát | Komentáře [4]

Související články:

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í.

Exchange

Jednou částí mé práce je administrace poštovního serveru od firmy Microsoft, tedy Exchange Serveru.

Pokud se Vám článek líbil, tak mne potěšíte, když uložíte odkaz na některý server:

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže. Pokud chcete poradit s nějakým problémem či diskutovat na nějaké téma, tak použijte fórum.

Komentáře

  1. [1] Piki

    Zdravim, jeste bych doplnil co jsem nedavno hledal:

    Pravidla pro trideni posty jsou defaultne nastaveny na velikost 32kb

    nastaveni na 256kb

    Set-Mailbox uzivatel@domena.tld -RulesQuota:256KB

    Sobota, 20.11.2010 13:53 | odpovědět
  2. [2] Samuraj

    odpověď na [1]Piki: Díky za tip, doplním do seznamu. Nevěděl jsem, že se tento limit dá zvednout, to se hodí.

    Sobota, 20.11.2010 16:16 | odpovědět
  3. [3] Vladimír Dlesk

    Zdravím pane Bouška, mám na Vás dotaz. Potřeboval bych k cca. 500 účtům v AD(2003)/Exchange 2003 přidat email alias s určitou novou doménou. Neřešil jste to někdy? Děkuji

    Středa, 09.03.2011 16:36 | odpovědět
  4. [4] Samuraj

    odpověď na [3]Vladimír Dlesk: Jestli se nepletu, tak to se dělá běžně a jednoduše pomocí E-mail Address Policy (jestli se to na 2003 jmenuje stejně). Defaultní politiku tam máte už teď, ta přiřazuje defaultní doménu. A můžete přidat druhou, buď pro všechny uživatele nebo je vybrat podle nějakého parametru.

    Středa, 09.03.2011 16:41 | odpovědět
Přidat komentář

Vložit tag: strong em link

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


Ochrana proti SPAMu, zdejte následující čtyři znaky image code

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