如何在PowerShell中用Get-MgUserMessage筛选未读邮件
解决Get-MgUserMessage筛选未读邮件的Filter参数问题
正确的筛选未读邮件的命令如下:
$result = Get-MgUserMessage -UserId $email -Filter "isRead eq false"
之前写法的问题:
- 误用了PowerShell的比较运算符
-eq,Microsoft Graph的OData筛选语法需要使用eq作为相等比较符 - 给布尔值
false添加了引号,OData中布尔类型值直接写false即可,不需要引号包裹 - 尝试用PowerShell变量替换
$false,但-Filter参数需要传入符合OData规范的字符串,而非PowerShell表达式 - 属性名建议使用Graph API标准的驼峰式
isRead(部分场景下大小写不敏感,但遵循标准更可靠)
如果需要验证结果,可以用你之前的遍历代码确认:
foreach ($item in $result) { $msgId = $item.id $isRead = $item.IsRead Write-Host "msgId=$msgId" Write-Host "isRead=$isRead" }
内容的提问来源于stack exchange,提问作者NealWalters
相关产品推荐
相关产品推荐

