Powershell - 文件夹的Parse outlook隐藏了两个级别

时间:2013-02-02 00:50:18

标签: powershell outlook

收件箱

... | ___ Folder1中

............. | ___ FOLDER2

我有搜索收件箱下的文件夹的代码,但我无法理解如何搜索文件夹下的文件夹的某些字段。我需要做一些递归吗?

$olFolderInbox = 6
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace("MAPI");
$inbox = $ns.GetDefaultFolder($olFolderInbox)

$Folder1 = $inbox.Folders | where-object { $_.name -eq "Folder1" }      
$Folder1Mail = $UTSFolder.items | Select-Object -Property Subject, ReceivedTime, Body

然后我可以使用input.txt获取我正在寻找的信息列表,并将其与该收件箱中的每个项目进行比较。

$Inputs = Get-Content input.txt

Foreach ($Input in $Inputs){
    Foreach ($Mail in $Folder1Mail){
        if ($Mail.Body -like "*$Input*") { 
            Write-Host "Match found!" 
        }
    }
}

我发现了一个会抓取并列出所有文件夹和子文件夹的脚本,但它并不像如何引用它们那么明确。 http://gallery.technet.microsoft.com/office/b1295e6f-6d16-4df4-b644-f3c7e4031a69

目前正在阅读Windows PowerShell In Action,因为我厌倦了Frankenstein剁购物脚本。

谢谢!

1 个答案:

答案 0 :(得分:3)

您需要使用MAPIFolder.Folders集合:VB样式:

set Folder = inbox.Folders.Item("folder1").Folder.Item("Folder2")