我正在尝试获取用户列表的许可证状态。我会根据许可证状态做一些事情。
例如许可用户输出:
Get-AzureADUser -ObjectId "Andre@contoso.com" | fl
DeletionTimestamp :
ObjectId :
ObjectType : User
AccountEnabled : True
AssignedLicenses : {class AssignedLicense {
DisabledPlans: System.Collections.Generic.List`1[System.String]
SkuId: 6fd2c87f-b296-42f0-b197-1e91e994b900
}
}
非许可用户输出:
Get-AzureADUser -ObjectId "Andre@contoso.com" | fl
DeletionTimestamp :
ObjectId :
ObjectType : User
AccountEnabled : True
AssignedLicenses : {}
我不知道如何使用AzureAD PowerShell检索它。如何从AssignedLicenses
属性中检索SkuId?
#for licence user
if($AzureADUser.SkuId -eq '6fd2c87f-b296-42f0-b197-1e91e994b900')
{
do something...
}
#for non-licence user
elseif($AzureADUser.AssignedLicenses -eq $null)
{
do something...
}
上次更新:
Get-AzureADUser -ObjectId "Andre@contoso.com" | Select-Object -ExpandProperty AssignedLicenses
DisabledPlans SkuId
------------- -----
{} 6fd2c87f-b296-42f0-b197-1e91e994b900
非许可用户:
Get-AzureADUser -ObjectId "Andre2@contoso.com" | Select-Object -ExpandProperty AssignedLicenses
什么都没有回来
答案 0 :(得分:0)
您可以像这样直接访问SkuID。
(Get-AzureADUser -ObjectId "Andre2@contoso.com").AssignedLicenses.SkuID
如果至少有一个许可证,则问题中显示的Select-Object状态也有效。否则,将无法返回。
对于不返回任何内容的用户,您可以运行以下命令,这将指示分配的许可证数量等于0.
(Get-AzureADUser -ObjectId "Andre2.contoso.com").AssignedLicenses.count
您还可以使用以下方式获取所有用户及其许可证:
$SKus = Get-AzureAdSubscribedSku | Select SkuPartNumber,SkuID
$Users = Get-AzureADUser -All $true
$Users | Select {$_.UserPrincipalName,$_.AssignedLicenses.SkuID}
这将列出您的所有用户和分配的许可。没有任何许可证的AD用户的AssignedLicenses SKU ID将为null。
从那里,您可以通过将SkuIDS与$中的名称相关联来确定哪些SKU ID与哪个Sku部件名称相关联(以确定这是否是通过许可证的电力,O365高级许可证等等)。 Skus哈希表。