Я пытаюсь удалить назначенные роли для группы пользователей из файла CSV:
$Users = Import-Csv 'C:\Users.csv' | select -ExpandProperty SignInName
Затем я хотел получить все идентификаторы объектов этих пользователей, поэтому я запустил следующее:
foreach ($user in $Users)
{
$Users = (Get-AzureRmADUser -UserPrincipalName $User).Id
}
К сожалению, он получает только идентификатор 1 пользователя, а не всех пользователей в таблице.
Наконец, когда я пытаюсь удалить назначение роли для сгенерированного результата, используя следующий командлет:
Remove-AzureRmRoleAssignment -ObjectId $Users -RoleDefinitionName "*Owner*"
Я получаю следующую ошибку:
Remove-AzureRmRoleAssignment: предоставленная информация не сопоставляется с назначением роли
Пожалуйста, сообщите, почему я получаю только одного пользователя после цикла, а также, почему я получаю эту ошибку.
UPDATE
Чтобы скрипт мог удалять пользователей из разных подписок, я немного изменил скрипт
$Users = Import-Csv 'C:\Users.csv' | select -ExpandProperty SignInName
$Subs = (Import-Csv 'C:\Users.csv').SubscriptionId
foreach ($sub in $Subs)
{
Select-AzureRmSubscription -Subscription $sub
foreach ($user in $Users)
{
$OID = (Get-AzureRmADUser -UserPrincipalName $User).Id
Remove-AzureRmRoleAssignment -ObjectId $OID.Guid -RoleDefinitionName Owner -Scope /subscriptions/$sub -Verbose
}
}
К сожалению, я получаю следующую ошибку:
Remove-AzureRmRoleAssignment: предоставленная информация не сопоставляется с назначением роли.