You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多租户场景下跨语言获取Get-MailBoxFolderPermission权限方案咨询

跨语言邮箱文件夹权限查询实现方案

原有代码失效原因

  • 第一版过滤逻辑存在语法错误:$_.FolderName -eq ":\FolderName" -or ":\Calendar" 中-or后未补全判断条件,PowerShell会直接将字符串:Calendar判定为布尔值$true,导致过滤条件永远成立,完全失去筛选作用。同时FolderName属性仅返回文件夹名称本身,不携带:\\前缀,匹配字符串格式错误。
  • 第二版判断逻辑对属性理解错误:FolderType是Exchange定义的固定枚举值,和本地化的文件夹显示名、路径格式均无关,用路径字符串匹配该属性永远无法命中。

最优解决方案(完全兼容多语言)

不要硬编码文件夹显示名,通过固定的FolderType枚举值匹配目标文件夹,该枚举值不会随租户语言变化,适配所有语言场景:

# 配置需要查询的目标默认文件夹类型,可多个同时查询,枚举值固定不随语言变化
# 常见枚举值:Calendar(日历)、Inbox(收件箱)、SentItems(已发送邮件)、Contacts(联系人)、DeletedItems(已删除邮件)
$targetFolderTypes = @("Calendar")

# 先拉取用户所有文件夹统计,匹配目标类型
$matchedFolders = Get-MailboxFolderStatistics -Identity $userAsked -FolderScope All | Where-Object {
    $_.FolderType -in $targetFolderTypes
}

# 遍历匹配到的文件夹查询权限
foreach ($folder in $matchedFolders) {
    $folderIdentity = "{0}:{1}" -f $userAsked, $folder.FolderPath
    Get-MailboxFolderPermission -Identity $folderIdentity | Select-Object FolderName, User, AccessRights
}

临时兼容方案(仅适配指定两种语言,不推荐)

如果你确实需要按显示名匹配两种固定语言的文件夹,修正后的写法如下:

$permCalendar = Get-MailBoxFolderPermission -Identity $userAsked | Where-Object {
    $_.FolderName -eq "FolderName" -or $_.FolderName -eq "Calendar"
} | Select-Object FolderName, User, AccessRights

内容的提问来源于stack exchange,提问作者Niquuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:48:00