Články
PowerShell - Exchange server
- Obecné vlastnosti
- Uživatelé a mailboxy (schránky)
- Veřejné složky (Public Folders)
- Seznamy adres (Address List)
- Zprávy a logy (email)
- Testy a kontroly
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
Související články:
PowerShell
- PowerShell - Active Directory [14.11.2010 13:13]
- PowerShell - Exchange server [19.11.2010 08:45] právě čtete
- PowerShell - Windows [12.12.2010 18:00]
- PowerShell - Ovládání aplikací a další použití [09.01.2011 18:59]
- Exchange Web Services a PowerShell [13.01.2011 11:00]
- Active Directory Recycle Bin [31.03.2011 15:48]
- Automatizovaná kontrola prostředí pomocí PowerShellu [13.06.2011 17:35]
- Powershell - poslední přihlášení počítače či uživatele [06.09.2011 14:44]
- Exchange Server, Outlook a certifikáty v GALu [27.12.2011 14:48]
Exchange
- Nastavení Outlook Web Access (OWA) na Exchange Server 2003 [11.06.2006 15:44]
- Nastavení Outlook Mobile Access (OMA) na Exchange Server 2003 [20.06.2006 14:27]
- Nastavení Exchange ActiveSync na Exchange Server 2003 [30.06.2006 16:29]
- Exchange 2007 - problém zasekávání zpráv v Drafts [25.08.2007 12:39]
- Outlook - Zaseknutá událost v kalendáři [20.02.2008 16:43]
- Kopírování kontaktů z GALu v Outlook 2010 [27.10.2010 18:19]
- Active Directory a personální data uživatelů - PowerShell [30.10.2010 13:19]
- PowerShell - Exchange server [19.11.2010 08:45] právě čtete
- Exchange Web Services a PowerShell [13.01.2011 11:00]
- MS Outlook a konfigurace pomocí Group Policy [23.03.2011 16:30]
- Exchange 2007 a správa mobilních zařízení [13.04.2011 16:49]
- Exchange 2010 CAS Array a DAG mezi Sites [12.02.2012 18:34]
- Exchange 2010 - změna umístění databáze nebo logů [15.02.2012 21:03]
- Přechod z Exchange 2007 na Exchange 2010 - část 1 [04.03.2012 19:55]
- Přechod z Exchange 2007 na Exchange 2010 - část 2 [05.03.2012 18:08]
- Exchange 2010 a funkce synchronizace SMS [15.03.2012 16:20]
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
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
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í.
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
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.