Exchange / Exchange online

Få ut alla dina SMTP adresser inklusive alias på en O365 domän:
Get-Recipient | Select-Object DisplayName,@{Name=”EmailAddresses”;Expression={$_.EmailAddresses |Where-Object {$_ -LIKE “SMTP:*”}}} | Sort | Out-GridView
Källa: http://masterandcmdr.com/use-powershell-to-find-email-aliases/

Få ut alla SMTP adresser på ett visst OU på Exchange och skicka till en CSV fil:
Get-Recipient | Where { $_.OrganizationalUnit -eq “domain.local/Kunder/Kund1” } | Select-Object DisplayName,@{Name=”EmailAddresses”;Expression={$_.EmailAddresses |Where-Object {$_ -LIKE “SMTP:*”}}} | Sort | Out-File C:\Temp\smtpadresses.csv
Källa: Gjort det själv

Få ut “primary smtp adress” på alla maillådor i ett visst OU på Exchange:
Get-Mailbox –OrganizationalUnit “ou=prod,ou=users,ou=foretag,dc=domain,dc=local” -ResultSize Unlimited |Select-Object PrimarySmtpAddress
Källa: Gjort det själv

Lista mailboxar från ett visst OU och visar storleken på Exchange:
get-mailbox -OrganizationalUnit “ou=prod,ou=users,ou=foretag,dc=domain,dc=local” -resultsize unlimited |get-mailboxstatistics | ft DisplayName,TotalItemSize,Itemcount
Källa: Gjort det själv

Sätta full åtkomst till alla maillådor i ett visst OU på Exchange:
Get-Mailbox | Where { $_.OrganizationalUnit -eq “sundis.local/Test/Users” } | Add-MailboxPermission -User Administrator -AccessRights Fullaccess -InheritanceType all
Källa: https://msundis.wordpress.com/2011/06/21/manage-full-access-permissions-on-mailboxes-in-exchange-2010/

Sätta på MAPI på alla användare i ett visst OU på Exchange:
Get-Mailbox | Where { $_.OrganizationalUnit -eq “sunids.local/Test/Users” } | Set-CASMailbox -MapiEnabled $true

Lista alla användare i ett OU som har tillgång till andra maillådor i Exchange:
Get-Mailbox -OrganizationalUnit “ou=prod,ou=users,dc=server,dc=domain,dc=local” | Get-MailboxPermission | where {$_.user.tostring() -ne “NT AUTHORITY\SELF” -and $_.IsInherited -eq $false} | Select Identity,User,@{Name=’Access Rights’;Expression={[string]::join(‘, ‘, $_.AccessRights)}} | Export-Csv -NoTypeInformation mailboxpermissions.csv
Källa: http://exchangeserverpro.com/list-users-access-exchange-mailboxes/

Fix för fenomenet att skickade objekt från en delad maillåda hamnar i användarens skickade låda i O365:
https://office365.stormats.se/?p=211

Vidarebefordra en användares maillåda och spara en kopia i Office 365 lådan:
Set-Mailbox  <Identity> -ForwardingsmtpAddress <External Recipient Email Address> -DeliverToMailboxAndForward $true
Notering: Fungerar även på delade maillådor

Ta bort vidarebefordringar:
Set-Mailbox <Identity> -ForwardingSmtpAddress $Null -DeliverToMailboxAndForward $False

Kontrollera vidarebefordringar i Office 365:
Get-Mailbox | select UserPrincipalName,ForwardingSmtpAddress,DeliverToMailboxAndForward
Källor: http://o365info.com/forward-mail-powershell-commands-quick/

Sätta granskare som standard på alla användares kalendrar i O365: https://office365.stormats.se/?p=179

Sätta reviewer på en resursmailbox till en användare:
Add-MailBoxFolderPermission Namnpåresurs:\Kalender –User “Namn på användaren” –AccessRights Reviewer

Ändra så att resursmailboxar visar information om bokade möten:
Set-MailBoxFolderPermission -AccessRights LimitedDetails  “NamnpåResurs”:\Calendar -User default
Källa: http://o365info.com/room-mailbox-powershell-commands/

Ta bort så att maillådor som du har tillgång till inte dyker upp i din Outlook 2007 eller nyare automatiskt: https://office365.stormats.se/?p=181

Sätta lite bra kalenderinställningar på alla användare i O365:
Get-Mailbox | Set-MailboxCalendarConfiguration -WorkingHoursTimeZone “W. Europe Standard Time” -WeekStartDay “Monday” -ShowWeekNumbers $True

Sätta felstavningskontrollen till Svenska på O365:
Get-Mailbox | Set-MailboxSpellingConfiguration -DictionaryLanguage “Swedish”

Få ut information om alla maillådor och skicka ut dem till en “Gridview” i O365:
Get-mailbox | Get-Mailboxstatistics | select displayname,TotalItemSize,LastLogonTime | Out-GridView

Ändra tidszon, språk, datumformat och standardmapparnas namn i Outlook Web App / Outlook för en användare: https://office365.stormats.se/?p=185

Skapa delade maillådor:
New-Mailbox -Name “Info – ForetagA” -Alias infoforetaga –Shared -PrimarySmtpAddress info@foretaga.se
Mer information här: http://o365info.com/shared-mailbox-powershell-commands/

Skapa en dynamiskdistrubitionsgrupp med bara användarmaillådor som mottagare:
New-DynamicDistributionGroup -Name “Test” -RecipientFilter {(-not(RecipientTypeDetailsValue -eq ‘SharedMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘RoomMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘EquipmentMailbox’)) -and (-not(RecipientType -eq ‘MailUniversalDistributionGroup’)) -and (-not(RecipientType -eq ‘DynamicDistributionGroup’)) -and (-not(RecipientType -eq ‘MailContact’))}

För att sedan titta vilka som ingår i distrubitionsgruppen vi nyss skapade:
$List=Get-DynamicDistributionGroup Test
Get-Recipient -RecipientPreviewFilter $List.RecipientFilter

Lägga till många användare samtidigt i en distrubitionsgrupp:
Import-CSV C:\_Temp\distimport.csv | ForEach {Add-DistributionGroupMember -Identity “DIst gruppens namn” -Member $_.Name}

Lägg in mailadressen till de som ska ingå i gruppen i CSV filen och se till så de finns upplagda som externa kontakter i O365.

Ge externa användare tillåtelse att boka i t.ex. en resursmailbox:
Set-CalendarProcessing -Identity “Resurs1” -ProcessExternalMeetingMessages $true
Källa: http://unlock-adaccount.blogspot.se/2015/02/allow-external-senders-to-create.html

Få ut en meddelandespårning från Exchange online med en specifik avsändare och specifika datum:
Get-MessageTrace -SenderAddress avsandare@doman.se -StartDate 2017-02-07 -EndDate 2017-02-08 | Out-Gridview

Ändra skicka och ta emot begränsningar i Exchange Online för alla användare:
GetMailbox Resultsize Unlimited | SetMailbox MaxReceiveSize XXMB MaxSendSize XXMB