Files
DistractADD cfddd4fad2 Added Files
2021-07-06 13:16:46 +10:00

46 lines
1.5 KiB
PowerShell

# Enable mailbox auditing and disable PowerShell remoting on individual mailboxes
#
# Working on this as a one stop for hardening Exchange Online accounts
#
# UPN of New User
$newUPN = ''
# Is the user an administrator?
$isAnAdmin = $false
# Establish a session to Exchange Online
$credentials = Get-Credential -Message 'Enter your Exchange Online administrator credentials'
$connectionParams = @{
'ConfigurationName' = 'Microsoft.Exchange';
'ConnectionUri' = 'https://outlook.office365.com/powershell-liveid/';
'Credential' = $credentials;
'Authentication' = 'Basic';
'AllowRedirection' = $true
}
$exchangeSession = New-PSSession @connectionParams
Import-PSSession -Session $exchangeSession
# Set Auditing parameters
$params = @{
'AuditEnabled' = $true
'AuditLogAgeLimit' = '180'
'AuditAdmin' = @('Update','MoveToDeletedItems','SoftDelete','HardDelete','SendAs','SendOnBehalf','Create','UpdateFolderPermission')
'AuditDelegate' = @('Update','SoftDelete','HardDelete','SendAs','Create','UpdateFolderPermissions','MoveToDeletedItems','SendOnBehalf')
'AuditOwner' = @('UpdateFolderPermission','MailboxLogin','Create','SoftDelete','HardDelete','Update','MoveToDeletedItems')
}
# Enable Auditing
Get-Mailbox -Identity $newUPN | Set-Mailbox @params
# Disable PowerShell Remoting for non-Admin staff
if ($isAnAdmin) {
Set-User -Identity $newUPN -RemotePowerShellEnabled $true
}
else {
Set-User -Identity $newUPN -RemotePowerShellEnabled $false
}
# Disconnect from Exchange Online
Remove-PSSession $exchangeSession