2017-09-04 2 views
1

J'essaie de trouver tous les utilisateurs auxquels un type de licence spécifique a été affecté. Essentiellement, je tente de convertir mes commandes du module Azure v1 en commandes du module Azure v2. comment obtenir le même résultat que les commandes du module Azure v1?Azure Active Directory V2 PowerShell - Recherche de tous les utilisateurs sous licence d'Office 365

Azure V1:

$OutputFile = "C:\Export\O365LicensedADEnabledUsers.csv" 
$T1 = @() 
$O365Users = Get-MsolUser -All 
ForEach ($O365User in $O365Users) 
{ 
    $ADuser = Get-ADUser -Filter { UserPrincipalName -eq $O365User.UserPrincipalName } -Properties whenCreated, Department, Company, Enabled 
    If (($ADUser.Enabled -eq $true) -and ($O365User.isLicensed -eq $true)) 
    { 
     $T1 += New-Object psobject -Property @{ 
      CollectDate = $(Get-Date); 
      ADUserUPN = $($ADUser.UserPrincipalName); 
      O365UserUPN = $($O365User.UserPrincipalName); 
      ADUserCreated = $($ADUser.whenCreated); 
      ADUserDepartment = $($ADUser.Department); 
      ADUserCompany = $($ADUser.Company); 
      ADUserEnabled = $($ADUser.Enabled); 
      O365Licensed = $($O365User.isLicensed) 
     } 
    } 
} 
$T1 = $T1 | Sort-Object -Property ADUserCreated 
$T1 | Format-Table 
$T1 | Export-Csv -Path $OutputFile -NoTypeInformation 
Write-Host "Output to $OutputFile" 

Azure V2:

AFAIK, il n'y a pas de propriété isLicensed Azure AD V2 Powershell. Je trouve la propriété AssignedLicenses à la place de ceci. mais je ne suis pas sûr.

$OutputFile = "C:\Export\O365LicensedADEnabledUsers.csv" 
    $T1 = @() 
    $O365Users = Get-AzureADUser -All $true 
    ForEach ($O365User in $O365Users) 
    { 
     $ADuser = Get-ADUser -Filter { UserPrincipalName -eq $O365User.UserPrincipalName } -Properties whenCreated, Department, Company, Enabled 
     If (($ADUser.Enabled -eq $true) -and ($O365User.AssignedLicenses -ne $null)) 
     { 
      $T1 += New-Object psobject -Property @{ 
       CollectDate = $(Get-Date); 
       ADUserUPN = $($ADUser.UserPrincipalName); 
       O365UserUPN = $($O365User.UserPrincipalName); 
       ADUserCreated = $($ADUser.whenCreated); 
       ADUserDepartment = $($ADUser.Department); 
       ADUserCompany = $($ADUser.Company); 
       ADUserEnabled = $($ADUser.Enabled); 
       O365Licensed = $($O365User.AssignedLicenses) 
      } 
     } 
    } 
    $T1 = $T1 | Sort-Object -Property ADUserCreated 
    $T1 | Format-Table 
    $T1 | Export-Csv -Path $OutputFile -NoTypeInformation 
    Write-Host "Output to $OutputFile" 
+0

Vous vouliez probablement dire utiliser 'Get-AzureAdUser' dans le second au lieu de' Get-ADUser'. Il semble que la propriété AssignedLicenses ne sera jamais nulle, donc votre vérification ne fonctionnera pas. Je suppose que vous devez vérifier si elle contient un SKU que vous pensez être valide. [Documentation de l'entité utilisateur] (https://msdn.microsoft.com/fr-fr/library/azure/ad/graph/api/entity-and-complex-type-reference#user-entity), [documentation AssignedLicense] (https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/entity-and-complex-type-reference#assignedlicense-type) – juunas

+0

Vous pouvez obtenir les SKU souscrites d'un locataire avec ' Get-AzureAdSubscribedSku'. Ensuite, d'une manière ou d'une autre, déterminez lesquels d'entre eux sont valides pour votre cas d'utilisation, puis vérifiez que l'utilisateur en possède un. – juunas

+0

Merci pour votre réponse. pouvez-vous me donner un exemple de script? – Arbelac

Répondre

1

Une autre façon facile de vérifier si les licences utilisateur est via Azure AD V2 PowerShell est de vérifier le nombre de AssignedLicenses au lieu de vérifier si elle est nulle.

Cette propriété est un tableau et en tant que juunas mentionné, cette propriété n'est pas annulable. Vous pouvez consulter le code ci-dessous pour modifier le morceau de code:

If (($ADUser.Enabled -eq $true) -and ($O365User.AssignedLicenses.Count -ne 0)) 
+0

Je suppose que je vais utiliser 'si (($ ADUser.Enabled -eq $ true) -et ($ O365User.AssignedLicenses.Count -eq 0))' pour les utilisateurs non-licenciés ainsi. Ai-je raison? – Arbelac

+0

Oui, vous avez raison. –