2017-09-04 63 views
0

我正在嘗試獲取用戶列表的許可證狀態。我會根據許可證狀態做一些事情。如何檢索屬性類powershell

e.g許可用戶輸出:

Get-AzureADUser -ObjectId "[email protected]" | 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 "[email protected]" | 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 "[email protected]" | Select-Object -ExpandProperty AssignedLicenses 

DisabledPlans SkuId        
------------- -----        
{}   6fd2c87f-b296-42f0-b197-1e91e994b900 

非授權用戶:

Get-AzureADUser -ObjectId "[email protected]" | Select-Object -ExpandProperty AssignedLicenses 

什麼都不返回

+0

我無法測試該命令,但我會說你首先需要使用Get-AzureADUser -ObjectId「[email protected]」擴展「AssignedLicenses」屬性。選擇對象 - 擴展屬性AssignedLicenses'。 – Manu

+0

@ManuP我已更新我的問題。你可以看到最新的更新部分。 – Arbelac

回答

0

您可以直接訪問SkuID這樣。

(Get-AzureADUser -ObjectId "[email protected]").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將爲空。

從那裏,您可以確定哪些SKU ID與哪些Sku零件名稱(通過許可證,O365高級許可證等來確定這是否爲功率)關聯,方法是將您的SkuIDS與名稱中的$ Skus散列表。