Difference between revisions of "Most useful PowerShell commands for Exchange"

From Tech-Wiki
Jump to: navigation, search
(Created page with "Category:Microsoft '''Back to Misc''' '''Assign Mailbox Permissions''' Assign “Full Access” permissions for a Mailbox PowerShell command Syntax...")
 
Line 1: Line 1:
 
[[Category:Microsoft]]
 
[[Category:Microsoft]]
 
'''[[Microsoft#Misc|Back to Misc]]'''
 
'''[[Microsoft#Misc|Back to Misc]]'''
 +
 +
Listing User
 +
Get-Mailbox | Select DisplayName, SamAccountName, UserPrincipalName, PrimarySMTPAddress
 +
Get-MailboxStatistics -Database (DM) | Select DisplayName, TotalItemSize
  
 
'''Assign Mailbox Permissions'''
 
'''Assign Mailbox Permissions'''
Line 65: Line 69:
 
  -InternalMessage "I'm currently on leave until 23th April. Please contact Ezio Auditore on x72023 for urgent matters."
 
  -InternalMessage "I'm currently on leave until 23th April. Please contact Ezio Auditore on x72023 for urgent matters."
 
  AutoReplyState can also be: AutoReplyState Scheduled –StartTime “02/28/2018 07:00:00” –EndTime 03/18/2018 17:00:00
 
  AutoReplyState can also be: AutoReplyState Scheduled –StartTime “02/28/2018 07:00:00” –EndTime 03/18/2018 17:00:00
 +
 +
Export Mailbox to PST
 +
New-MailboxExportRequest -Mailbox User01 -FilePath ‘\\SERVER01\PSTFileShare\User01_Recovered.pst’
 +
 +
Create Office 365 Users
 +
New-MsolUser -UserPrincipalName "[email protected]" -DisplayName " Desmond Miles " -FirstName "Desmond" -LastName "Miles" -UsageLocation "CH" -LicenseAssignment "Contoso:BPOS_Standard"
 +
New-MsolUser -DisplayName <DisplayName> -FirstName <FirstName> -LastName <LastName>
 +
-UserPrincipalName <Account> -UsageLocation <CountryCode> -LicenseAssignment <AccountSkuID> [-Password <Password>]
 +
 +
Create Office 365 Users in Bulk mode
 +
UserPrincipalName,FirstName,LastName,DisplayName,UsageLocation,AccountSkuId
 +
[email protected],Claude,Loiselle,Claude Loiselle,US,contoso:ENTERPRISEPACK
 +
[email protected],Lynne,Baxter,Lynne Baxter,US,contoso:ENTERPRISEPACK
 +
[email protected],Shawn,Melendez,Shawn Melendez,US,contoso:ENTERPRISEPACK
 +
 +
Import-Csv -Path <Input CSV File Path and Name> |
 +
foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName
 +
-UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId [-Password $_.Password]}
 +
| Export-Csv -Path <Output CSV File Path and Name>
 +
 +
  
 
Office 365 commands:
 
Office 365 commands:
 
  https://blog.netwrix.com/2018/09/19/ten-most-useful-office-365-powershell-commands/
 
  https://blog.netwrix.com/2018/09/19/ten-most-useful-office-365-powershell-commands/

Revision as of 22:19, 6 June 2019

Back to Misc

Listing User

Get-Mailbox | Select DisplayName, SamAccountName, UserPrincipalName, PrimarySMTPAddress
Get-MailboxStatistics -Database (DM) | Select DisplayName, TotalItemSize

Assign Mailbox Permissions

Assign “Full Access” permissions for a Mailbox

PowerShell command Syntax
Add-MailboxPermission <Identity> -User <Identity> -AccessRights FullAccess -InheritanceType All
PowerShell command Example
Add-MailboxPermission John -User Suzan -AccessRights FullAccess -InheritanceType All

Assign “Send As” Permissions for a Mailbox

PowerShell command Syntax
Add-RecipientPermission <Identity> -AccessRights SendAs -Trustee <Identity>
PowerShell command Example
Add-RecipientPermission John -AccessRights SendAs -Trustee Suzan
Adjustments & Improvements
To avoid the need for confirmation, we can add the option: “-Confirm:$False”
Add-RecipientPermission John -Trustee Suzan -AccessRights SendAs -Confirm:$False

Assign “Send As” Permissions for recipient for each member in a distribution group

PowerShell command Syntax
$DL = Get-DistributionGroupMember 
Foreach ($item in $DL) 
{ 
Add-RecipientPermission $item.name -AccessRights SendAs
–Trustee <Identity> -Confirm:$False 
}
PowerShell command Example
$DL = Get-DistributionGroupMember DL-01 
Foreach ($item in $DL) 
{ 
Add-RecipientPermission $item.name -AccessRights SendAs –Trustee Suzan -Confirm:$False}

Display permissions for a Mailbox

Display “Full Access” Permissions for a Mailbox

PowerShell command Syntax
Get-MailboxPermission <Identity>
PowerShell command Example
Get-MailboxPermission John
Adjustments & Improvements
For improving the quality of the output we can use an additional PowerShell parameter that will “clean” the unnecessary information:
Get-MailboxPermission John | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select Identity,user,AccessRights

Revoke Permissions

Revoke “Full Access” Permissions

PowerShell command Syntax
Remove-MailboxPermission <Identity> -User <Identity> -AccessRights FullAccess
PowerShell command Example
Remove-MailboxPermission John -User Suzan -AccessRights FullAccess
Adjustments & Improvements
To avoid the need for confirmation, we can add the option: “-Confirm:$False”
Remove-MailboxPermission John -User Suzan -AccessRights FullAccess -Confirm:$False

Migration statistics

Get-MigrationUser -BatchId StagedBatch1 | Get-MigrationUserStatistics

Message Tracking log

Get-MessageTrackingLog -Start "02/26/2018 08:23:00" -End "02/28/2018 17:00:00" -Recipients $recipientSMTP -Server $ExchServer

Set Auto-Reply

Set-MailboxAutoReplyConfiguration -Identity "Desmond Miles" -AutoReplyState Enabled `
-InternalMessage "I'm currently on leave until 23th April. Please contact Ezio Auditore on x72023 for urgent matters."
AutoReplyState can also be: AutoReplyState Scheduled –StartTime “02/28/2018 07:00:00” –EndTime 03/18/2018 17:00:00

Export Mailbox to PST

New-MailboxExportRequest -Mailbox User01 -FilePath ‘\\SERVER01\PSTFileShare\User01_Recovered.pst’

Create Office 365 Users

New-MsolUser -UserPrincipalName "[email protected]" -DisplayName " Desmond Miles " -FirstName "Desmond" -LastName "Miles" -UsageLocation "CH" -LicenseAssignment "Contoso:BPOS_Standard"
New-MsolUser -DisplayName <DisplayName> -FirstName <FirstName> -LastName <LastName> 
-UserPrincipalName <Account> -UsageLocation <CountryCode> -LicenseAssignment <AccountSkuID> [-Password <Password>]

Create Office 365 Users in Bulk mode

UserPrincipalName,FirstName,LastName,DisplayName,UsageLocation,AccountSkuId
[email protected],Claude,Loiselle,Claude Loiselle,US,contoso:ENTERPRISEPACK
[email protected],Lynne,Baxter,Lynne Baxter,US,contoso:ENTERPRISEPACK
[email protected],Shawn,Melendez,Shawn Melendez,US,contoso:ENTERPRISEPACK
Import-Csv -Path <Input CSV File Path and Name> | 
foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName 
-UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId [-Password $_.Password]} 
| Export-Csv -Path <Output CSV File Path and Name>


Office 365 commands:

https://blog.netwrix.com/2018/09/19/ten-most-useful-office-365-powershell-commands/