Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TODO:
- # [ ] Check PSSnapin Get-PSSnapin -Name Microsoft.Exchange.Management.PowerShell.E2010
- # [ ] Check exist user
- # [x] Check and delete old Queued
- # [ ] Check path from server (check it out from the server can not be)
- # [ ] Check <Exchange Trusted Subsystem> group has read/write path permission (check it out from the server can not be)
- # [ ]
- # [ ] Sending email (status, size, user, databases)
- # [ ] if .pst exist ?
- $SecondsToSleep='5'
- $ExportGroupName='ExportDisableUser2PST'
- $ADUser = 'user'
- #Path and file to export
- $Path2Export="\\server\BackupP$\"
- $MailboxFileExport=$Path2Export+"$ADUser.pst"
- $MailboxArchiveFileExport=$Path2Export+"$ADUser.Archive.pst"
- #region Check exist user
- #endregion
- #region Check and delete old Queued
- Get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving" | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest -Confirm:$false
- Get-MailboxExportRequest -Name "$ExportGroupName-$ADUser" | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest -Confirm:$false
- if (Get-MailboxExportRequest -Name "$ExportGroupName-$ADUser") {Write-Host " Exist queued export mailbox not complite " $ExportGroupName-$ADUser -foregroundcolor red; exit}
- if (Get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving") {Write-Host " Exist queued export arhiving not complite " $ExportGroupName-$ADUser-archiving -foregroundcolor red; exit}
- #endregion
- #region Check path
- #endregion
- #region Check path permision
- #endregion
- #region Export Mailbox
- $curError = $null
- write-host 'Starting export mailbox. Mailbox size = ' (get-mailboxstatistics -Identity $ADUser |select -ExpandProperty TotalItemSize) -foregroundcolor Yellow
- New-MailboxExportRequest -Name "$ExportGroupName-$ADUser" -mailbox $ADUser -FilePath $MailboxFileExport –Verbose
- if (get-MailboxExportRequest -Name "$ExportGroupName-$ADUser") {
- write-host 'Mailbox Queued create - ok' -ForegroundColor Green
- } else {
- write-host 'Mailbox Queued create for user' $ADUser ' - ERROR' -ForegroundColor red
- exit
- }
- Start-Sleep -s $SecondsToSleep
- #endregion
- #region Export Archive Mailbox
- $isarciving=Get-Mailbox -Identity $ADUser|select archivedatabase|% {if ($_.archivedatabase -eq $null) {$false} else {$true}}
- if ($isarciving) {
- write-host 'Starting export archiving mailbox. Archiving mailbox size = ' (get-mailboxstatistics -Identity $ADUser –archive |select -ExpandProperty TotalItemSize) -foregroundcolor Yellow
- New-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving" -mailbox $ADUser -Isarchive -FilePath $MailboxArchiveFileExport –Verbose
- if (get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving") {
- write-host 'Mailbox Arhiving Queued create - ok' -ForegroundColor Green
- } else {
- write-host 'Mailbox Archiving Queued create for user' $ADUser ' - ERROR' -ForegroundColor red
- #exit
- }
- #Start-Sleep -s $SecondsToSleep
- }
- #endregion
- #region Waiting status and show progress
- do {
- #region Mailbox progressbar
- $StatusExport = get-MailboxExportRequest -Name "$ExportGroupName-$ADUser"| select -ExpandProperty Status
- $MailboxPercent=get-MailboxExportRequest -Name "$ExportGroupName-$ADUser"| Get-MailboxExportRequestStatistics|select -ExpandProperty PercentComplete
- Write-Progress -id 1 -Activity "Export $ADUser Mailbox" -status "Status $StatusExport complite $MailboxPercent percent" -percentComplete $MailboxPercent
- #endregion
- #region Archiving mailbox progressbar
- if ($isarciving) {
- $StatusExportArchiving = get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving"| select -ExpandProperty Status
- $archivingPercent=get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving"| Get-MailboxExportRequestStatistics|select -ExpandProperty PercentComplete
- Write-Progress -Id 2 -ParentId 1 -Activity "Export $ADUser Archiving mailbox" -status "Status $StatusExportArchiving complite $archivingPercent percent" -percentComplete $archivingPercent
- } else {$StatusExportArchiving = 'Completed' }
- #endregion
- if ($StatusExport -eq 'Failed') {$StatusExport = 'Completed'}
- if ($StatusExportArchiving -eq 'Failed' ) {$StatusExportArchiving = 'Completed'}
- if (($StatusExportArchiving -eq 'Completed') -and ($StatusExport -eq 'Completed')) {$ExitWhile=$true} else {$ExitWhile=$false}
- } while ($ExitWhile -ne $true)
- #endregion
- #region Check status
- write-host 'Clear Queued' -foregroundcolor Yellow
- $ExportMailboxComplitedStatus=get-MailboxExportRequest -Name "$ExportGroupName-$ADUser"| select -ExpandProperty Status
- if ($ExportMailboxComplitedStatus -ne 'Completed' ) {
- Write-Host " Error export $ADUser mailbox status - " $ExportArchivingComplitedStatus $ExportGroupName-$ADUser -foregroundcolor red
- } else {
- Get-MailboxExportRequest -Name "$ExportGroupName-$ADUser" | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest -Confirm:$false
- }
- if ($isarciving) {
- $ExportArchivingComplitedStatus=get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving"| select -ExpandProperty Status
- if ($ExportArchivingComplitedStatus -ne 'Completed' ) {
- Write-Host " Error export $ADUser mailarchive status - " $ExportArchivingComplitedStatus $ExportGroupName-$ADUser-archiving -foregroundcolor red
- } else {
- Get-MailboxExportRequest -Name "$ExportGroupName-$ADUser-archiving" | where {$_.status -eq "Completed"} | Remove-MailboxExportRequest -Confirm:$false
- }
- }
- #endregion
- #region Sending email (status, size, user, databases)
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment