我正在尝试使用Azure CLI自动检测当前用户的oid,以便对我的应用程序数据执行查询。如果我使用命令account show
,我会得到这个:
azure account show
info: Executing command account show
data: Name : Visual Studio Enterprise
data: ID : 12345678-1234-1234-1234-123456789012
data: State : Enabled
data: Tenant ID : abcdef12-abcd-1234-abcd-1234abcd1234
data: Is Default : true
data: Environment : AzureCloud
data: Has Certificate : No
data: Has Access Token : Yes
data: User name : peter.parker@outlook.com
data:
info: account show command OK
看看peter.parker@outlook.com
。现在,如果我使用命令ad user list
,我会得到这个:
azure ad user list
info: Executing command ad user list
\data: Object Id: 9123abcd-ffee-dafa-d0fa-abacfede1234
data: Principal Name: peter_parker_outlook.com#EXT#@peter_parkeroutlook.onmicrosoft.com
data: Display Name: Peter Parker
data: E-Mail:
data:
+
info: ad user list command OK
主要名称为peter_parker_outlook.com#EXT#@peter_parkeroutlook.onmicrosoft.com
。它不匹配。
有关如何获取当前用户的对象ID的任何想法?
答案 0 :(得分:2)
您可以通过powershell cmdlet获取当前用户的对象ID。
$msolcred = Get-Credential
Connect-MsolService -Credential $msolcred
$user = Get-MsolUser -UserPrincipalName peter.parker@outlook.com
($user).ObjectId
请注意,在运行上述powershell之前,您需要先从Microsoft下载中心安装Microsoft Online Services Sign-In Assistant for IT Professionals RTW。然后安装Azure Active Directory Module for Windows PowerShell (64-bit version),然后单击“运行”以运行安装程序包。
检查https://msdn.microsoft.com/en-us/library/azure/b7727a57-b002-4d84-a20c-3192b1d6b1b4#BKMK_ManageUsers以获取指导。
答案 1 :(得分:0)
我相信你不能。您正在考虑的Microsoft帐户身份验证是"消费者"一个,并且与Azure AD无关(至少是外部)。为了能够执行您要执行的操作,我认为,您可以尝试将计算机加入域或使用AAD凭据而不是Microsoft帐户对Azure进行身份验证。我强烈怀疑在您的问题中,您无法获得您所指的用户的OID(如果该帐户存在于MS帐户并且外部可用)。
因此,请尝试仅为您的情况使用AAD用户,而不是Microsoft帐户。