如何使用-在PowerShell中使用Get-MgUserMessage进行过滤以仅获取未读消息(isRead=False)

jtoj6r0c  于 2023-06-29  发布在  Shell
关注(0)|答案(1)|浏览(107)
Write-Host "msgId=$msgId"

我想得到一个未读邮件的列表。我可以获得电子邮件列表,但不清楚如何添加-Filter参数。
我尝试了以下每一种方法:

$result = Get-MgUserMessage -UserId $email -Filter "IsRead=False"
$result = Get-MgUserMessage -UserId $email -Filter "IsRead=false"
$result = Get-MgUserMessage -UserId $email -Filter "IsRead='false'"
$result = Get-MgUserMessage -UserId $email -Filter "IsRead=$false"
$result = Get-MgUserMessage -UserId $email -Filter "IsRead -eq $false"

我也尝试了“isRead”而不是“IsRead”在上面的每一个。他们可能会有很多排列组合,但这里没有例子:https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.mail/get-mgusermessage?view=graph-powershell-1.0它只是说传递一个字符串。
以上所有尝试均返回:

Get-MgUserMessage : Invalid filter clause

我可以查看IsRead属性,但我的目标是只获取未读的电子邮件。

foreach ($item in $result) 
  {
     $msgId  = $item.id 
     $isRead = $item.IsRead
     Write-Host "msgId=$msgId"
     Write-Host "isRead=$isRead"
  }
von4xj4u

von4xj4u1#

显然这是有效的,不知道它在哪里记录:

$result = Get-MgUserMessage -UserId $email -Filter "IsRead eq false"

从这里得到这个想法:https://theposhwolf.com/howtos/Get-MgUser-Invalid-Filter-Clause/他说了和Get-Msg相同的过滤器(https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-1.0-本页有几个例子)。
我继续挖掘,这里有两页记录:

  1. https://learn.microsoft.com/en-us/graph/query-parameters
  2. https://learn.microsoft.com/en-us/graph/filter-query-parameter
    该页面中的示例,还有更多功能记录在那里:

相关问题