我正在尝试在本地 Exchange 2016 中将默认日历权限设置为"仅可用性"



newbie在这里,对不起,如果不清楚。

我需要根据AD的组成员资格在2016年的Exchangeyly中将默认日历权限设置为availapery。"我认为"我被交叉了,因为我正在使用广告类从组中检索用户,但是当我尝试使用数组应用交换中的更改时,我会遇到错误:

参数"身份"。无法转换 "@{userprincipalname = johndoe@ourdomain.com}"类型的值 " deserialized.selected.microsoft.activedirectory.management.aduser" to 类型 " microsoft.exchange.configuration.tasks.mailboxfolderidparameter"。

我如何避免/解决PowerShell 5.0中的此错误。

我使用的是Get-ADGroupMember,然后使用Get-AdUser获取UserPrincipalName,然后将所有用户principalname的包装打包成set-mailboxfolderpermission-identity属性中使用的数组。

我从不同的组中获取多个用户,并将它们包装在数组中...

$Array1 = Get-ADGroupMember -Identity "AD Group1" | %{get-aduser $_.SamAccountName | select userPrincipalName} 
$Array2 = Get-ADGroupMember -Identity "AD Group2" | %{get-aduser $_.SamAccountName | select userPrincipalName} 
$upn=array1+array2

在测试过程中,我打印以确保我得到想要的琴弦。

$upn
user1@ourdomain.com
user2@ourdomain.com
user3@ourdomain.com

到目前为止很好。

当我尝试更新帐户时..

Foreach ($employee in $upn) {
    Set-MailboxFolderPermission -AccessRights AvailabilityOnly *-Identity $employee* -User default
}

再次返回错误

参数"身份"。无法转换 "@{userprincipalname = johndoe@ourdomain.com}"类型的值 " deserialized.selected.microsoft.activedirectory.management.aduser" to 类型 " microsoft.exchange.configuration.tasks.mailboxfolderidparameter"。

-Identity参数期望文件夹名称。文件夹名称应该是:。

所以,如果您有John.smith@domain.com的用户,则命令应为:

Set-MailboxFolderPermissions -Identity john.smith@domain.com:Calendar -AccessRights AvailabilityOnly -User Default

为您的示例做这项工作:

ForEach ($employee in $upn) {
    Set-MailboxFolderPermissions -Identity ${employee}:Calendar -AccessRights AvailabilityOnly -User Default
}

*{}不是必需的,但有助于清楚地定义什么是变量。

https://learn.microsoft.com/en-us/powershell/module/exchange/mailboxes/set-mailboxfolderperions?view= exchange-ps

相关内容

  • 没有找到相关文章

最新更新