使用Powershell检索Office 365 Exchange隔离发件人和收件人

使用Powershell检索Office 365 Exchange隔离发件人和收件人,powershell,exchange-server,Powershell,Exchange Server,我一直在尝试使用Powershell从Office 365 Exchange检索基本信息,但似乎无法在一个命令中获得所需的全部信息 如果我使用: Get-QuarantineMessage -SenderAddress send@domain1.tld -RecipientAddress receive@domain2.tld | Select-Object Identity,SenderAddress,RecipientAddress,Subject,QuarantineTypes,Direc

我一直在尝试使用Powershell从Office 365 Exchange检索基本信息,但似乎无法在一个命令中获得所需的全部信息

如果我使用:

Get-QuarantineMessage -SenderAddress send@domain1.tld -RecipientAddress receive@domain2.tld | Select-Object Identity,SenderAddress,RecipientAddress,Subject,QuarantineTypes,Direction,Expires
我得到了我想要的一切,除了收件人地址:

Identity         : eafc9e23-8c21-7a40-2d92-41a9a402abe5\e62c7c5b-7da4-2b79-        
e5f4-b902fc927429
SenderAddress    : send@domain1.tld
RecipientAddress : {}
Subject          : Downtown Events
QuarantineTypes  : Spam
Direction        : Inbound
Expires          : 5/3/2019 1:00:00 PM
我必须在for循环中使用相同的命令两次才能获得它:

(Get-QuarantineMessage -SenderAddress send@domain1.tld -RecipientAddress receive@domain2.tld).Identity | ForEach-Object {Get-QuarantineMessage -Identity $_ | Select-Object Identity,SenderAddress,RecipientAddress,Subject,QuarantineTypes,Direction,Expires} 

Identity         : eafc9e23-8c21-7a40-2d92-41a9a402abe5\e62c7c5b-7da4-2b79-e5f4-b902fc927429
SenderAddress    : send@domain1.tld
RecipientAddress : {receive@domain2.tld}
Subject          : Downtown Events
QuarantineTypes  : Spam
Direction        : Inbound
Expires          : 5/3/2019 1:00:00 PM

我觉得必须有一种更好/更优雅的方法来实现这一点,然后再运行两次相同的命令。

我自己无法测试这一点,但在我看来,您已经拥有了
接收方地址,并且正在调用中使用它

这样,您就可以避免两次调用同一命令:

$recipient = 'receive@domain2.tld'
Get-QuarantineMessage -SenderAddress send@domain1.tld -RecipientAddress $recipient | 
    Select-Object Identity,SenderAddress,
                  @{Name = 'RecipientAddress'; Expression = {$recipient}},
                  Subject,QuarantineTypes,Direction,Expires

我自己无法测试这一点,但在我看来,您已经有了
收件人地址
,并且正在通话中使用它

这样,您就可以避免两次调用同一命令:

$recipient = 'receive@domain2.tld'
Get-QuarantineMessage -SenderAddress send@domain1.tld -RecipientAddress $recipient | 
    Select-Object Identity,SenderAddress,
                  @{Name = 'RecipientAddress'; Expression = {$recipient}},
                  Subject,QuarantineTypes,Direction,Expires

谢谢,效果很好。尽管你能解释一下@{}部分是如何工作的吗?@yito,
@{}
部分被称为a。使用哈希表的语法,您可以创建从其他属性或变量派生的属性,并为它们指定您选择的名称。在
Expression={}
部分中,您可以为它提供所需的任何值。如果你觉得我的答案解决了你的问题,请考虑通过点击来接受答案。✓ 在左边。这将有助于其他有类似问题的人更容易地发现它,并为我增加额外的动力,这将为我的代表增添动力。;)谢谢,效果很好。尽管你能解释一下@{}部分是如何工作的吗?@yito,
@{}
部分被称为a。使用哈希表的语法,您可以创建从其他属性或变量派生的属性,并为它们指定您选择的名称。在
Expression={}
部分中,您可以为它提供所需的任何值。如果你觉得我的答案解决了你的问题,请考虑通过点击来接受答案。✓ 在左边。这将有助于其他有类似问题的人更容易地发现它,并为我增加额外的动力,这将为我的代表增添动力。;)