Exchange 2010 无法通过命令行添加安全组

Exchange 2010 无法通过命令行添加安全组

您好,我创建了一个通用安全组。向此安全组添加了用户。在 Exchange 中,添加一个新的通讯组并选择此新安全组作为目标组。在将该组启用为“启用电子邮件的安全组”后,我尝试使用以下命令将该人的日历权限分配给该组:

add-MailboxFolderPermission -Identity USERID:\Calendar -User Sercuritygroupname -AccessRights Owner

然而它一遍又一遍地用红色写着

“无法执行该操作,因为找不到‘USERID:\Calendar’。

我只是用我的一个邮箱别名或 AD 用户名替换了 USERID,但两者都不被接受..或者它真的不喜欢后面的日历?

可能出了什么问题?有什么想法吗?

答案1

Exchange 日历子文件夹的本地化拼写

因此,该问题似乎与脚本中的硬编码有关,username:calendar因为用户邮箱中日历的本地化名称的拼写与您使用的拼写不同。

username:calendar因此,拼写的拼写可能不是username:kalendarusername:agenda取决于语言本地化。

下面是一些获取日历子文件夹拼写的方法,无需真正了解对象的本地化拼写;您可以将结果插入到相应的命令中,或者潜在地构建命令以根据以下内容动态获取它:可分辨文件夹 ID, ETC。

获取邮箱日历文件夹

Get-MailboxCalendarFolder -Identity <MailboxFolderIdParameter> [-DomainController <Fqdn>]

详细说明

获取邮箱日历文件夹cmdlet 检索指定日历文件夹的信息。此信息包括日历文件夹名称、文件夹当前是否已发布或共享、已发布的日历天数的开始和结束范围、已发布的日历的详细程度、已发布的日历的 URL 是否可以在 Web 上搜索以及已发布的日历的 URL。

来源


Powershell 获取默认日历名称

一种无需检查区域或语言属性即可获取默认日历文件夹名称的方法。

Get-mailbox | Get-MailboxFolderStatistics -FolderScope calendar | sort-object Name | ft Identity,Name

如果用户在邮箱中有多个日历,那么我就会得到多个对象。您必须遍历所有日历,或者使用“where-object”进行过滤,以获取默认日历。

$calname = Get-MailboxFolderStatistics -Identity $username  -FolderScope calendar | where-object {$_.FolderType -eq "Calendar"}
$calandar= $username + ":\" + $calname.Name.toString()

来源


查找日历文件夹的名称

在设置用户的日历文件夹权限以允许(或禁止)他们查看彼此的空闲/忙碌状态时,您可能会遇到这样的问题:用户已将文件夹名称本地化,而您不知道该文件夹名称在他/她的语言中的含义。更糟糕的是,您正在脚本中执行此操作,而这只是使用标签 username:\Calendar

这里的解决方案是不使用硬编码名称,而是而是检测文件夹的名称并在脚本(或命令行)中使用它。为了使这变得非常简单,您可以使用这段 PowerShell 代码:

$path = $user.Identity + ":\" + (Get-MailboxFolderStatistics $user.Identity | Where-Object { $_.Foldertype -eq "Calendar" } | Select-Object -First 1).Name

Set-MailboxFolderPermission -Identity $path -User Default -AccessRights LimitedDetails

第一行将在 MailboxFolderStatistics 中搜索“日历”类型的文件夹并返回第一个匹配项。

第二行将使用变量$path来设置AccessRights文件夹,而不管其本地化如何。

$user变量可以由 Get-User 或输入文件填充。

来源


更多资源

相关内容