我正在尝试将Prem上的Exchange 2016中的默认日历权限设置为AvailabilityOnly

时间:2019-05-02 23:17:35

标签: powershell active-directory exchange-server

这里的新手,如果不清楚,请提前抱歉。

我需要基于AD中的组成员身份,将默认日历权限设置为Exchange 2016中的AvailabilityOnly。 “我认为”我很生气,因为我正在使用AD类从组中检索用户,但是当我尝试使用数组以交换形式应用更改时,我总是收到错误消息:

  

参数“身份”。无法转换   类型的“ @ {userPrincipalName=JohnDoe@ourdomain.com}”值   “反序列化.Selected.Microsoft.ActiveDirectory.Management.ADUser”   类型   “ Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter”。

如何避免/避开Powershell 5.0中的此错误。

我正在使用Get-ADGroupMember,然后将UserPrincipalNameGet-AdUser一起使用,然后将所有userprincipalname打包到一个数组中,以在{{1 }}。

我要从不同的组中获得多个用户,并将它们打包成一个数组...

-identity

在测试过程中,我将进行打印以确保获得所需的字符串。

set-mailboxfolderpermission

到目前为止很好。

当我尝试这样更新帐户时......

$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

再次返回错误

  

参数“身份”。无法转换   类型的“ @ {userPrincipalName=JohnDoe@ourdomain.com}”值   “反序列化.Selected.Microsoft.ActiveDirectory.Management.ADUser”   类型   “ Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter”。

1 个答案:

答案 0 :(得分:0)

-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://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/set-mailboxfolderpermission?view=exchange-ps