mttp1990

Powershell Exchange retention Policy

May 20th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $NeedsRetentions = @()
  2. # Get Start Time for script timer
  3. $startDTM = (Get-Date)
  4.  
  5. #Authenticate using cached credentials or re-prompt for credentials.
  6. if (Test-Path C:\temp\mycred.xml) {
  7.     $UserCredential = Import-CliXML C:\temp\mycred.xml}
  8. else{
  9.     Get-Credential | Export-CliXml C:\temp\mycred.xml
  10.     $UserCredential = Import-CliXML C:\temp\mycred.xml}
  11.  
  12. #Connect to Exchange Server
  13. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://munprdcasht04.exchange.com/PowerShell/ -Authentication Kerberos -Credential $UserCredential
  14. Import-PSSession $Session
  15.  
  16. #returns alias' for mailboxes where creation date is <= 7 days and
  17. #resides on "ABC" or "DEF" server and has no retention policy applied
  18. $NeedsRetentions = (Get-Mailbox -ResultSize Unlimited| Where-Object {
  19. ($_.WhenCreated –ge ((Get-Date).Adddays(-7))) -and
  20. (($_.ServerName -like "*munprdmbxa*") -or ($_.ServerName -like "*wauprdexa*")) -and
  21. ($_.retentionpolicy -ne "PurgeDeletedItemsFolder_60days")} |
  22. ft -auto alias)  
  23.  
  24. ForEach ($NeedsRetention in $NeedsRetentions){
  25.     set-mailbox -Identity $NeedsRetention -RetentionPolicy "PurgeDeletedItemsFolder_60days"
  26.     }
  27.  
  28. # Get End Time
  29. $endDTM = (Get-Date)
  30.  
  31. # Echo Time elapsed
  32. "Elapsed Time: $(($endDTM-$startDTM).totalseconds) seconds"
Add Comment
Please, Sign In to add comment