回答:
これを試して:
上記はOutlook 2007では機能しませんでした。
これもOutlook 2013で変更されました。
Microsoftはツールを提供していなかったので、私が作成しました。ここで利用可能なキャッチなしで無料:
これは私が書いたPowerShellスクリプトです。フォルダ名を検索したり、完全なフォルダツリーを一覧表示したりできます。使用法 :
パラメータなしですべてのフォルダを表示します
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()
Exchangeサーバーでpowershellにアクセスできる場合は、次のスクリプトを実行して、Exchangeシステムのすべてのフォルダーをダンプできます(https://blogs.msdn.microsoft.com/deva/2012/05/10/exchange-提供) powershell-how-to-get-list-of-mailboxes-folders-subfolders-items-in-folder-foldersize-programmatically /):
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ファイルを作成します。