>source

제목을 조금 자세히 설명하겠습니다.

현재 Exchange 2010의 사서함을 PST로 내보내고 특정 날짜 범위의 전자 메일 만 내보내는 스크립트를 만들고 있습니다

그러나 필터를 무시하고 모든 37GB를 PST로 내보내는 것 같습니다.

향후 스크립트를 작성하지 않도록 스크립트를 만들고 있습니다. 변수 등으로 인해 문제와 관련이 있으므로 아래 스크립트를 게시하겠습니다.

# / Sets to US Date Values \ #
[System.Reflection.Assembly]::LoadWithPartialName("System.Threading")
[System.Reflection.Assembly]::LoadWithPartialName("System.Globalization")
[System.Threading.Thread]::CurrentThread.CurrentCulture = [System.Globalization.CultureInfo]::CreateSpecificCulture("en-us")
# / This Loads The Assemblies Required for Data Input for the future Parameters \ #
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
[System.Windows.Forms.Application]::EnableVisualStyles() | Out-Null
# / This Loads The Pop-up Data Input Windows For Creating the Parameters \ #
Add-Type -AssemblyName Microsoft.VisualBasic
# / Parameter Creation Using Nice GUI Pop-Up Windows \ #
$User = [Microsoft.VisualBasic.Interaction]::InputBox('What Is The Email Account?', 'Email Address', "Email@Email.com")
$StartDateData = [Microsoft.VisualBasic.Interaction]::InputBox('What Is The Start Date (US Date Format)', 'Start Date', "12/25/1900")
$EndDateData = [Microsoft.VisualBasic.Interaction]::InputBox('What Is The End Date (US Date Format)', 'End Date', "12/25/1900")
$Path = [Microsoft.VisualBasic.Interaction]::InputBox('Specify Where You Want The PST to Be Saved (Full UNC Path WITH Trailing Slash)', 'Path', "C:\Users\%USERPROFILE%\Desktop\")
# / Export Mailbox \ #
cls
Write-Host ''
Write-Host ''
Write-Host ''
Write-Host ''
Write-Host ''
Write-Host ''
Write-Host 'Is this Data Correct?'
Write-Host ''
Write-Host ''
Write-Host $User 
Write-host $StartDateData
Write-host $EndDateData
write-host $Path
Write-Host ''
Write-Host ''
Write-Host ''
Write-Host "Do You Want To Continue? (Y/N)"
$response = Read-Host
if ( $response -ne "Y" ) { 
exit
}
cls
# / Sets The Path Parameter \ #
$PSTPath = $Path + $User + ".pst"
# / Sets The Date Parameter \ #
$StartDate = "'" + $StartDateData + "'"
$EndDate = "'" + $EndDateData + "'"
# Use This if the Below Doesn't Work - Export-Mailbox -Identity $User -StartDate $StartDate -EndDate $EndDate -PstFolderPath $PSTPath
# gt = Greater-Than
# ge = Greater-Than-Or-Equal-To
# lt = Less-Than
# le = Less-Than-Or-Equal-To
$Request = New-MailboxExportRequest -Mailbox $User -ContentFilter {(Received -ge $StartDate) -and (Received -le $EndDate)} -FilePath $PSTPath
$Status = ( Get-MailboxExportRequestStatistics -Identity $Request ).Status.ToString().Trim()
while( $Status -ne 'Completed' ){
    Start-Sleep 10
    $Status = ( Get-MailboxExportRequestStatistics -Identity $Request ).Status.ToString().Trim()
    Write-Verbose "Current Export Status: $Status" -Verbose
    }a
Write-Verbose "$Mailbox exported" -Verbose

대량에 대한 사과, 개인적으로 오류를 볼 수 없습니다.

  • 답변 # 1

    많이 놀고 난 후에이 문제를 직접 해결했습니다.

    필터를 자체 매개 변수에 넣습니다.

    $filter = "(Received -ge" + " " + $StartDate + ") -and (Received -le" + " " + $EndDate + ")"
    
    

    그런 다음 명령으로 파이프

    $Request = New-MailboxExportRequest -ContentFilter $filter -Mailbox $User -Name $ReqName -FilePath $PSTPath
    
    

    이것으로 진행할 수있었습니다

  • 이전 ffmpeg 움직이는 텍스트를 부드럽게 만드는 방법?
  • 다음 apache kafka - 한 클러스터에서 다른 클러스터로 부분 주제 데이터를 복사하는 방법