I am batman
This commit is contained in:
853
Exchange Online & Active Directory PowerShell Cheat Sheet.md
Normal file
853
Exchange Online & Active Directory PowerShell Cheat Sheet.md
Normal file
@@ -0,0 +1,853 @@
|
||||
|
||||
|
||||
|
||||
|
||||
> Quick reference for Service Desk administration tasks.
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Exchange Online PowerShell
|
||||
|
||||
|
||||
|
||||
## Install Exchange Online Module
|
||||
|
||||
|
||||
|
||||
Run once:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Install-Module ExchangeOnlineManagement -Scope CurrentUser
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Verify installation:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Module ExchangeOnlineManagement -ListAvailable
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Enable PowerShell Script Execution
|
||||
|
||||
|
||||
|
||||
Check current policy:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ExecutionPolicy -List
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Enable scripts for current user:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Temporary bypass for current session:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
powershell.exe -ExecutionPolicy Bypass
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Connect to Exchange Online
|
||||
|
||||
|
||||
|
||||
Import module:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Import-Module ExchangeOnlineManagement
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Connect:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Connect-ExchangeOnline
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Connect with a specific account:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Connect-ExchangeOnline -UserPrincipalName username@company.com
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Verify connection:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ConnectionInformation
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Disconnect from Exchange Online
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Disconnect-ExchangeOnline -Confirm:$false
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find Distribution Lists
|
||||
|
||||
|
||||
|
||||
## Search by partial name
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroup -Anr FSM
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Search Display Name
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroup -Filter "DisplayName -like '*FSM*'"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Show more details
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroup -Filter "DisplayName -like '*FSM*'" |
|
||||
|
||||
Select Name,DisplayName,Alias,PrimarySmtpAddress
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find Any Exchange Recipient
|
||||
|
||||
|
||||
|
||||
Search mailboxes, groups, contacts, shared mailboxes, etc.
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Recipient -Filter "DisplayName -like '*FSM*'"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
More details:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Recipient -Filter "DisplayName -like '*FSM*'" |
|
||||
|
||||
Select Name,RecipientType,PrimarySmtpAddress
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find Shared Mailboxes
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Mailbox -RecipientTypeDetails SharedMailbox
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Search by name:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Mailbox -RecipientTypeDetails SharedMailbox |
|
||||
|
||||
Where-Object {$_.DisplayName -like "*FSM*"}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# View Distribution Group Members
|
||||
|
||||
|
||||
|
||||
By display name:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroupMember -Identity "FSM"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
By email address:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroupMember -Identity "bdl@agas.com"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Add User to Distribution List
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Add-DistributionGroupMember `
|
||||
|
||||
-Identity "FSM" `
|
||||
|
||||
-Member username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Add-DistributionGroupMember `
|
||||
|
||||
-Identity "FSM" `
|
||||
|
||||
-Member jsmith
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Remove User from Distribution List
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Remove-DistributionGroupMember `
|
||||
|
||||
-Identity "FSM" `
|
||||
|
||||
-Member jsmith `
|
||||
|
||||
-Confirm:$false
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find Distribution Group AD Object
|
||||
|
||||
|
||||
|
||||
Useful when Exchange name differs from AD name.
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroup "FSM" |
|
||||
|
||||
Format-List Name,DisplayName,Alias,DistinguishedName
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Active Directory User Management
|
||||
|
||||
|
||||
|
||||
## Load Active Directory Module
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Import-Module ActiveDirectory
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find User
|
||||
|
||||
|
||||
|
||||
By username:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADUser username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
By display name:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADUser -Filter 'Name -like "*John Smith*"'
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Disable Local/AD User
|
||||
|
||||
|
||||
|
||||
Disable AD account:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Disable-ADAccount -Identity username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Verify:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADUser username -Properties Enabled
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Enable Local/AD User
|
||||
|
||||
|
||||
|
||||
Enable AD account:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Enable-ADAccount -Identity username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Verify:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADUser username -Properties Enabled
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Reset Password
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Set-ADAccountPassword `
|
||||
|
||||
-Identity username `
|
||||
|
||||
-Reset `
|
||||
|
||||
-NewPassword (ConvertTo-SecureString "NewPassword123!" -AsPlainText -Force)
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Force password change at next login:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Set-ADUser username -ChangePasswordAtLogon $true
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Unlock AD Account
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Unlock-ADAccount username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Check lockout status:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADUser username -Properties LockedOut
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# AD Group Membership
|
||||
|
||||
|
||||
|
||||
## See User's Groups
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADPrincipalGroupMembership username |
|
||||
|
||||
Select Name
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Add User to Group
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Add-ADGroupMember `
|
||||
|
||||
-Identity "Group Name" `
|
||||
|
||||
-Members username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Remove User from Group
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Remove-ADGroupMember `
|
||||
|
||||
-Identity "Group Name" `
|
||||
|
||||
-Members username `
|
||||
|
||||
-Confirm:$false
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find Group by Name
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADGroup -Filter 'Name -like "*FSM*"'
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Find Group by Email Address
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADGroup `
|
||||
|
||||
-Filter 'mail -eq "bdl@agas.com"' `
|
||||
|
||||
-Properties mail
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Common Troubleshooting
|
||||
|
||||
|
||||
|
||||
## Exchange Module Won't Load
|
||||
|
||||
|
||||
|
||||
Check if installed:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Module ExchangeOnlineManagement -ListAvailable
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Check execution policy:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ExecutionPolicy -List
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Enable script execution:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## Exchange Commands Hang
|
||||
|
||||
|
||||
|
||||
Test connection:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ConnectionInformation
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Test response:
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Mailbox -ResultSize 5
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Avoid pulling everything:
|
||||
|
||||
|
||||
|
||||
✅ Faster
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Recipient -Filter "DisplayName -like '*FSM*'"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
❌ Slower
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-Recipient -ResultSize Unlimited |
|
||||
|
||||
Where-Object {$_.DisplayName -like "*FSM*"}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
# Most Common Service Desk Commands
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Connect-ExchangeOnline
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroup -Anr FSM
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-DistributionGroupMember -Identity "FSM"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Add-DistributionGroupMember -Identity "FSM" -Member username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Remove-DistributionGroupMember -Identity "FSM" -Member username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Enable-ADAccount username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Disable-ADAccount username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Unlock-ADAccount username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Get-ADPrincipalGroupMembership username
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
|
||||
Disconnect-ExchangeOnline -Confirm:$false
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** 2026-06-24
|
||||
Reference in New Issue
Block a user