Outlookの不明なフォルダーに誤って移動されたフォルダーを見つけるにはどうすればよいですか?フォルダーでメッセージを見つけることができ、そのプロパティを見るとフォルダーの名前がわかりますが、フォルダーの場所はわかりません。
階層内のすべてのフォルダーを手動で確認する必要がないようにしたいと思います。
これを試して:
上記はOutlook 2007では機能しませんでした。
これもOutlook 2013で変更されました。
私はこの方法で成功しました:
これはOutlook 2010にありました。
Office 2007 Outlookを使用している場合は、これでうまくいくはずです。ツールに移動します。メールボックスのクリーンアップをクリックします。次に、[メールボックスサイズの表示]をクリックします。すべてのフォルダーのリストが表示されます。これを調べてみると、欠落しているフォルダーが見つかるはずです。おそらく、かなり予想外の場所にあります。
これは私が書いた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 :
\\[email protected]\2015
\\[email protected]\archivage\2010
\\[email protected]\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()
Microsoftはツールを提供していなかったので、私が作成しました。ここで利用可能なキャッチなしで無料:
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ファイルを作成します。