Script to set retention for all mailboxes in a tenant (#2798)
The script requires authenticating with Exchange admin user name and password and will set retention to 0 for all tenant mailboxes. This helps with CI cleanup of test data The script can be integrated with some low frequency invocation with the CI pipeline to make sure the retention is properly set. Would require setting the credentials as Git secrets --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No #### Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Test - [x] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Issue(s) #### Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
3d96507719
commit
41f0b86073
26
src/cmd/purge/scripts/setRetention.ps1
Normal file
26
src/cmd/purge/scripts/setRetention.ps1
Normal file
@ -0,0 +1,26 @@
|
||||
# This is tested on Mac as well as Docker (with m365pnp/powershell image)
|
||||
# To run in Docker with the script in the current working diredctory
|
||||
# docker run --rm -it -v "$(pwd):/usr/reset-retnention" -e M365TENANT_ADMIN_USER -e M365TENANT_ADMIN_PASSWORD \
|
||||
# -w /usr/reset-retnention m365pnp/powershell pwsh -c "./setRetention.ps1"
|
||||
Param (
|
||||
[Parameter(Mandatory = $False, HelpMessage = "Exchange Admin email")]
|
||||
[String]$AdminUser = $ENV:M365TENANT_ADMIN_USER,
|
||||
|
||||
[Parameter(Mandatory = $False, HelpMessage = "Exchange Admin password")]
|
||||
[String]$AdminPwd = $ENV:M365TENANT_ADMIN_PASSWORD
|
||||
)
|
||||
|
||||
# Setup ExchangeOnline
|
||||
if (-not (Get-Module -ListAvailable -Name ExchangeOnlineManagement)) {
|
||||
Install-Module -Name ExchangeOnlineManagement -MinimumVersion 3.0.0 -Force
|
||||
}
|
||||
|
||||
Write-Host "Connecting to Exchange..."
|
||||
$password = convertto-securestring -String "$AdminPwd" -AsPlainText -Force
|
||||
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $AdminUser, $password
|
||||
Connect-ExchangeOnline -Credential $cred
|
||||
|
||||
Write-Host "Resetting retention..."
|
||||
# Set retention values for all mailboxes
|
||||
Get-Mailbox | ForEach-Object { Set-Mailbox -Identity $_.Alias -RetentionHoldEnabled $false -LitigationHoldEnabled $false -SingleItemRecoveryEnabled $false -RetainDeletedItemsFor 0 -AuditLogAgeLimit 0 -Force }
|
||||
Get-Mailbox | ForEach-Object { Start-ManagedFolderAssistant -Identity $_.Alias }
|
||||
Loading…
x
Reference in New Issue
Block a user