Новичок здесь, заранее извините, если это неясно.
Мне нужно установить разрешения календаря по умолчанию для AvailabilityOnly в Exchange 2016, основываясь на членстве в группах в AD.«Я думаю», я получаю перекос, потому что я использую класс AD для извлечения пользователей из группы, но когда я пытаюсь использовать массив для применения изменений в обмен, я продолжаю получать сообщение об ошибке:
параметр «Идентичность».Не удалось преобразовать значение «@ {userPrincipalName=JohnDoe@ourdomain.com}» типа «Deserialized.Selected.Microsoft.ActiveDirectory.Management.ADUser» в тип «Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter".
Как мне избежать / обойти эту ошибку в Powershell 5.0.
Я использую Get-ADGroupMember
, затем получаю UserPrincipalName
с Get-AdUser
, затем упаковываю все userprincipalname в массив, который будет использоваться в свойстве -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
во время тестирования я печатаю, чтобы убедиться, что получаю строкихочу.
$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» в тип «Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter".