Powershell 列出共享邮箱文件夹中的发件人(递归)

Powershell 列出共享邮箱文件夹中的发件人(递归),powershell,outlook,Powershell,Outlook,我正在尝试获取我有权访问的特定共享邮箱(vía Outlook)的完整发件人列表 到目前为止,我正在使用这个小而方便的脚本来选择所选文件夹,因为我不知道如何将要检查的文件夹作为参数(Param)调用: Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] $outloo

我正在尝试获取我有权访问的特定共享邮箱(vía Outlook)的完整发件人列表

到目前为止,我正在使用这个小而方便的脚本来选择所选文件夹,因为我不知道如何将要检查的文件夹作为参数(Param)调用:

Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
$Inbox = $namespace.pickfolder()
$Inbox.items | Select-Object -Property SenderName
之后,我根据需要的信息(在本例中为发件人)过滤输出

这迫使我手动选择文件夹,我只想将其设置为脚本的参数

如何将特定文件夹作为参数传递


提前感谢并致以最良好的问候。

如果我理解正确,您将创建一个传递收件箱名称的函数

function GetSenders
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$True)]
        [string]$Inbox
    )
    Begin
    {
        Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
        $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
        $outlook = new-object -comobject outlook.application
    }
    Process
    {
        "Your Script here - What should happen with the Inbox?"
    }
    End
    {
        Write-Host "Script has Finished"
    }
}
加载此函数时,只需编写
GetSenders-Inbox“InboxName”