使用Powershell在Office 365邮箱中列出电子邮件

使用Powershell在Office 365邮箱中列出电子邮件,powershell,Powershell,在下面的Powershell脚本中,我需要查看共享邮箱中的收件箱/邮件mobileprint@abcdef.com。但是脚本会返回管理员帐户中的收件箱/邮件-admin@abcdef.com 管理员帐户可以访问共享邮箱,并且应该向脚本提供访问sharedmailbox的凭据 [Reflection.Assembly]::LoadFile("C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServ

在下面的Powershell脚本中,我需要查看共享邮箱中的收件箱/邮件
mobileprint@abcdef.com
。但是脚本会返回管理员帐户中的收件箱/邮件-
admin@abcdef.com

管理员帐户可以访问共享邮箱,并且应该向脚本提供访问sharedmailbox的凭据

[Reflection.Assembly]::LoadFile("C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll")
$s = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService
$AdminName = "admin@abcdef.com"
$Pass = Get-Content "cred_.txt" | ConvertTo-SecureString
$s.Credentials = New-Object Net.NetworkCredential($AdminName , $Pass)
$s.AutodiscoverUrl("mobileprint@abcdef.com", {$true})
$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($s,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
$inbox

我建议你退房

关于使用EWS访问文件夹,它有一些非常好的解释

您感兴趣的部分就是这里的这一点:

要访问EWS中的邮箱文件夹,您需要知道文件夹的EWSId,此规则的一个例外是“收件箱”、“联系人”、“日历”等知名文件夹。使用这些知名文件夹,您可以告诉EWS您希望在哪个邮箱中使用哪个文件夹,而不需要知道该文件夹的EWSId

例如,要访问共享邮箱中的收件箱,请使用FolderId重载定义要访问的FolderId,然后绑定到该文件夹:

$folderid=new-objectMicrosoft.Exchange.WebServices.Data.folderid([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::收件箱,$MailboxName)

$Inbox=[Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$folderid)


谢谢你,亨里克。我终于明白了。我不得不用模拟台词来让它工作。这有帮助

[Reflection.Assembly]::加载文件(“C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll”)
$s=新对象Microsoft.Exchange.WebServices.Data.ExchangeService
$Mailbox=”mobileprint@abcdef.com"
$AdminName=”admin@abcdef.com"
$Pass=获取内容“cred_uuxt”|转换为SecureString
$s.Credentials=新对象Net.NetworkCredential($AdminName,$Pass)
$s.AutodiscoverUrl($AdminName,{$true})
$s.ImpersonatedUserId=新对象Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectionIDType]::SmtpAddress,$Mailbox)
$InboxFolder=新对象Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::收件箱,$ImpersonatedMailboxName)
$Inbox=[Microsoft.Exchange.WebServices.Data.Folder]::绑定($s,$InboxFolder)
$inbox