ฉันจะค้นหาโฟลเดอร์ที่ย้ายไปยังโฟลเดอร์ที่ไม่รู้จักใน Outlook โดยไม่ตั้งใจได้อย่างไร ฉันสามารถค้นหาข้อความในโฟลเดอร์และดูคุณสมบัติของพวกเขาทำให้ฉันมีชื่อของโฟลเดอร์ แต่ไม่ใช่ตำแหน่งที่อยู่
ฉันต้องการหลีกเลี่ยงการค้นหาทุกโฟลเดอร์ในลำดับชั้นด้วยตนเอง
ฉันจะค้นหาโฟลเดอร์ที่ย้ายไปยังโฟลเดอร์ที่ไม่รู้จักใน Outlook โดยไม่ตั้งใจได้อย่างไร ฉันสามารถค้นหาข้อความในโฟลเดอร์และดูคุณสมบัติของพวกเขาทำให้ฉันมีชื่อของโฟลเดอร์ แต่ไม่ใช่ตำแหน่งที่อยู่
ฉันต้องการหลีกเลี่ยงการค้นหาทุกโฟลเดอร์ในลำดับชั้นด้วยตนเอง
คำตอบ:
ลองสิ่งนี้:
ข้อมูลข้างต้นไม่สามารถใช้งานได้กับ Outlook 2007 ควรปฏิบัติดังนี้
สิ่งนี้มีการเปลี่ยนแปลงอีกครั้งใน Outlook 2013:
ฉันประสบความสำเร็จด้วยวิธีนี้:
นี่คือใน Outlook 2010
หากคุณอยู่ใน Office 2007 Outlook สิ่งนี้น่าจะใช้ได้ ไปที่เครื่องมือ คลิกที่การล้างกล่องจดหมาย จากนั้นคลิกที่ดูขนาดกล่องจดหมาย คุณจะได้รับรายชื่อโฟลเดอร์ทั้งหมดของคุณและถ้าคุณทำมันลงไปคุณจะพบโฟลเดอร์ที่หายไป
Microsoft ไม่ได้ให้เครื่องมือดังนั้นฉันจึงเขียน ฟรีโดยไม่มีการดักจับที่นี่:
นี่คือสคริปต์ powershell ที่ฉันเขียนมันช่วยให้สามารถค้นหา foldername หรือแสดงรายการแผนผังโฟลเดอร์ที่สมบูรณ์ การใช้งาน:
ไม่มีพารามิเตอร์มันจะแสดงโฟลเดอร์ทั้งหมด
PS>.\get-MailboxFolders.ps1
└@conserver
└_Licences, codes etc.
└2 Clic
└Axter Ltd
└Chili
└Pérou
หากคุณผ่านพารามิเตอร์มันจะค้นหาชื่อโฟลเดอร์ที่มีคำนั้นและส่งออกเส้นทาง
PS>.\get-MailboxFolders.ps1 201
The term *201* was found in :
\\mailbox@domain.com\2015
\\mailbox@domain.com\archivage\2010
\\mailbox@domain.com\archivage\2011
คุณสามารถค้นหาบัญชีที่ระบุโดยใช้พารามิเตอร์กล่องจดหมาย
PS>.\get-MailboxFolders.ps1 -mailbox "infor"
Account selected = ENT, Service Informatique
└Archives
└Boîte de réception
นี่คือสคริปต์:
<#
.Synopsis
search outlook folders or display the folders tree
.Description
This script uses the outlook COM object.
.Parameter folder
Part of the folder's name to search for. If this parameter is not set the script will output
the complete folders tree
#>
[CmdletBinding()]
param(
[Parameter(Position=0, Mandatory=$false,ValueFromPipeline = $true)]
[System.String]
$folder=$null,
[Parameter(Position=1, Mandatory=$false)]
[System.String]
$mailbox=$null
)
$output=""
$find=@()
function Get-MailboxFolder($folder,$prefix, $search=$null, $firstrun=$false){
if(($search -ne $null) -and ($folder.name -match $search)) {
$script:find+=$folder.folderpath # if foldername match search term add it to the result
}
if($firstrun -eq $true){$script:output=$script:output+"$prefix$($_.name)`n"} # top level directories
if ($folder.folders.count -gt 0 ){ # If there are subfolders
if($firstrun -eq $false){
$script:output=$script:output+"$prefix$($folder.name)`n"
}
$prefix=" "+$prefix # preffix padding
$folder.folders |sort -property name| %{ get-MailboxFolder $_ $prefix $search} #recursivity
}
# No subfolder
if($folder.folders.count -eq 0 -and $firstrun -eq $false){$script:output=$script:output+"$prefix$($folder.name)`n"}
}
# Start outlook
$o=New-Object -ComObject outlook.application
$ns=$o.GetNamespace("MAPI")
if($mailbox -ne $null){
$bal=$ns.Folders |?{$_.name -match $mailbox}
}
else{
$bal=$ns.Folders.Item(1) # select the default mail account // you can let $bal=$ns.Folders to search through all accounts
}
write-host "Account selected = $($bal.name)"
$prefix="└"
$i=1
$bal.folders|sort -property name |%{
$percent=$i*100/($bal.folders.count)
write-progress -activity "Searching, please wait" -currentoperation "$($_.name)" -percentcomplete $percent
get-MailboxFolder $_ $prefix $folder $true
$i++
}
if(($folder -ne $null) -and ($folder -ne "")){ # are we searching ?
if ($find.count -eq 0){write-host "No folder *$folder* could be found"}
else{write-host "The term *$folder* was found in : ";$find}
}
else{$script:output} # display tree
$o.quit()
หากคุณสามารถเข้าถึง PowerShell บนเซิร์ฟเวอร์การแลกเปลี่ยนคุณสามารถเรียกใช้สคริปต์ต่อไปนี้เพื่อถ่ายโอนข้อมูลโฟลเดอร์ทั้งหมดในระบบการแลกเปลี่ยน (ได้รับความอนุเคราะห์จากhttps://blogs.msdn.microsoft.com/deva/2012/05/10/exchange- powershell-how-to-get-list- ของกล่องจดหมาย - โฟลเดอร์ - โฟลเดอร์ย่อย - รายการ - ในโฟลเดอร์ - โฟลเดอร์ - โปรแกรม - / ( ):
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.* -erroraction SilentlyContinue
$saveto = $env:USERPROFILE + "\\OutlookFolderList.csv"
Get-Mailbox | Select-Object alias | foreach-object {Get-MailboxFolderStatistics -Identity $_.alias | select-object Identity, ItemsInFolder, FolderSize} | Export-csv $saveto -NoTypeInformation
หากคุณต้องการข้อมูลสำหรับผู้ใช้เฉพาะคุณสามารถใช้สิ่งนี้:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.* -erroraction SilentlyContinue
$who = $args[0]
$saveto = $env:USERPROFILE + "\\OutlookFolderListFor$who.csv"
Get-MailboxFolderStatistics -Identity $who | select-object Identity, ItemsInFolder, FolderSize | Export-csv $saveto -NoTypeInformation
วิธีการเหล่านี้สร้างไฟล์ CSV ที่สามารถเปิดได้ง่ายในสเปรดชีตและค้นหา