Мне поручено написать короткий сценарий Powershell для работы, где я беру группу почтовых ящиков и модифицирую разрешения для списка пользователей, которые все часть одной группы. Я использую Get-ADGroupMember, чтобы получить список пользователей и сохранить его в массиве, а затем передать этот массив командлету Add-MailboxFolderPermission. Однако после запуска сценария я получаю следующее сообщение об ошибке для каждого пользователя в массиве:Powershell: преобразовать вывод Get-ADGroupMember в правильный тип для параметра Add-MailboxFolderPermission -User
Cannot process argument transformation on paramter 'User'. Cannot convert the "@<Name="somename">" value of type "Deserialized.Selected.Microsoft.ActiveDirectory.Management.ADPrincipal" to type "Microsoft.Exchange.Management.StoreTasks.MailboxFolderUserIDParameter"
Что я понимаю, означает «Sorry несовместимых типов». Есть ли у кого-нибудь советы о том, как я могу преобразовать объекты, возвращенные из первого командлета, для передачи ко второму командлету? Это первый бит powershell, который я должен был написать ... Я продолжу читать в то же время. Спасибо за любой ответ. Ниже мой код.
#Prepare to connect to exchange server
. "C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1"
#Connect to local exchange server
Connect-ExchangeServer -auto
$rooms = @("box1",
"box2",
"box3",
"box4",
"box5")
$users = @(Get-ADGroupMember somegroup| Select Name)
foreach ($room in $rooms) {
foreach ($user in $users) {
Add-MailBoxFolderPermission -Identity $room`:\calendar -User $user -AccessRights Author
}
}