Как программно получить всех участников подписки Azure

Я пытаюсь получить всех участников (соадминистраторов) подписки Azure и их идентификаторы электронной почты. Я являюсь глобальным администратором в этой подписке, поэтому доступ не является проблемой. Я ищу любой командлет PowerShell или любой API, который может предоставить эту информацию.

Я попытался запустить следующее, но он дает мне только мою информацию, но не дает других учетных записей, которые также являются соадминистраторами в моей подписке.

Get-AzureSubscription -Id "22222aaa-2a22-2a22-a2aa-2a0525c574c3" | Учетные записи Select-Object

Любые указатели или ссылки будут действительно полезны.


person Aman Sharma    schedule 23.02.2016    source источник


Ответы (2)


После довольно уместного указателя от @BenV фактический ответ довольно прост.

С подпиской, которая вас интересует в качестве текущей подписки, вы можете использовать

Get-AzureRmRoleAssignment -IncludeClassicAdministrators

Это даст вам такой список -

RoleAssignmentId   : 
Scope              : /subscriptions/{subscriptionid}
DisplayName        : {emailaddress}
SignInName         : {emailaddress}
RoleDefinitionName : ServiceAdministrator;AccountAdministrator
RoleDefinitionId   : 
ObjectId           : 00000000-0000-0000-0000-000000000000
ObjectType         : User
RoleAssignmentId   : 
Scope              : /subscriptions/{subscriptionid}
DisplayName        : {emailaddress}
SignInName         : {emailaddress}
RoleDefinitionName : CoAdministrator
RoleDefinitionId   : 
ObjectId           : 00000000-0000-0000-0000-000000000000
ObjectType         : User

Что должно быть тем, что вы ищете

person Michael B    schedule 23.02.2016
comment
Администратор компании - это роль каталога, которая не совпадает с соадминистратором конкретной подписки. - person BenV; 24.02.2016
comment
@BenV Ты прав! Я найду правильный ответ ... (или удалю этот) - person Michael B; 24.02.2016
comment
Привет, Майкл! Упомянутый вами подход будет работать с новым порталом Azure на базе ARM, но мне нужно было сделать это для соадминистраторов классического портала Azure на базе ASM. - person Aman Sharma; 24.02.2016
comment
@AmanSharma, в то время как командлет является командлетом Rm, он фактически запрашивает ту же подписку, что и командлет none Rm, параметр includeclassicadmins запрашивает администраторов модели Asm - попробуйте и сравните результаты с тем, что у вас есть на классическом портале. - person Michael B; 24.02.2016
comment
@MichaelB Вы правы. Я внес следующие изменения в ваш командлет и получил данные. Но я не уверен, почему он не перечисляет всех пользователей. Get-AzureRmRoleAssignment -IncludeClassicAdministrators | где {$ _. ObjectType -eq 'User'} - person Aman Sharma; 25.02.2016

Я получил ответ на форумах msdn по этому поводу. Мне нужно было использовать модули Azure AD PowerShell, а затем подключиться с помощью одного пользователя Azure AD. Пользователь учетной записи Microsoft работать не будет. Точный командлет для выборки пользователей - «Get-MsolUser».

См. Ссылку: https://social.msdn.microsoft.com/Forums/azure/en-US/29dfb413-e15e-4078-a292-394902667ed2/programmatically-fetching-all-members-of-an-azure-subscription?forum=WindowsAzureAD&prof=required

person Aman Sharma    schedule 24.02.2016