这里的新手,如果不清楚,请提前抱歉。
我需要基于AD中的组成员身份,将默认日历权限设置为Exchange 2016中的AvailabilityOnly。 “我认为”我很生气,因为我正在使用AD类从组中检索用户,但是当我尝试使用数组以交换形式应用更改时,我总是收到错误消息:
参数“身份”。无法转换 类型的“ @ {userPrincipalName=JohnDoe@ourdomain.com}”值 “反序列化.Selected.Microsoft.ActiveDirectory.Management.ADUser” 类型 “ Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter”。
如何避免/避开Powershell 5.0中的此错误。
我正在使用Get-ADGroupMember
,然后将UserPrincipalName
与Get-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”。
答案 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
}
* {}不是必需的,但有助于明确定义什么是变量。