Set-EntraUserLicense

Dodaje lub usuwa licencje usługi online Microsoft z listą przypisanych licencji dla użytkownika.

Składnia

Default (domyślnie)

Set-EntraUserLicense

    -UserId <String>
    -AssignedLicenses <AssignedLicenses>
    [<CommonParameters>]

Opis

Obiekt Set-EntraUserLicense dodaje lub usuwa licencje dla usługi online Microsoft do listy przypisanych licencji dla użytkownika.

W przypadku scenariuszy delegowanych użytkownik wywołujący musi mieć co najmniej jedną z następujących ról Microsoft Entra.

  • Autorzy katalogów
  • Administrator licencji
  • Administrator użytkowników

Uwaga: Przed przypisaniem licencji przypisz użytkownikowi lokalizację użycia przy użyciu: Set-EntraUser -ObjectId user@contoso.com -UsageLocation '<two-letter-country-code e.g. GB/US>'.

Przykłady

Przykład 1. Dodawanie licencji do użytkownika na podstawie użytkownika szablonu

Connect-Entra -Scopes 'User.ReadWrite.All'
$licensedUser = Get-EntraUser -UserId 'TemplateUser@contoso.com'
$targetUser = Get-EntraUser -UserId 'SawyerM@contoso.com'
$sourceUserLicenses = $licensedUser.AssignedLicenses
$licensesToAssign = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
foreach ($license in $sourceUserLicenses) {
    $assignedLicense = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
    $assignedLicense.SkuId = $license.SkuId
    $licensesToAssign.AddLicenses = $assignedLicense
    Set-EntraUserLicense -UserId $targetUser.Id -AssignedLicenses $licensesToAssign
}
Name                           Value
----                           -----
externalUserStateChangeDateTi…
businessPhones                 {8976546787}
postalCode                     444601
createdDateTime                06-11-2023 04:48:19
surname                        KTETSs
jobTitle                       Manager
employeeType
otherMails                     {SawyerM@contoso.com}
isResourceAccount
usageLocation                  DE
legalAgeGroupClassification    Adult
id                             cccccccc-2222-3333-4444-dddddddddddd
isLicenseReconciliationNeeded  False

W tym przykładzie pokazano, jak przypisać licencję do użytkownika na podstawie użytkownika szablonu.

  • -UserId parametr określa identyfikator obiektu użytkownika (jako UserPrincipalName lub ObjectId).
  • -AssignedLicenses parametr określa listę licencji do przypisania lub usunięcia.

Przykład 2. Dodawanie licencji do użytkownika przez skopiowanie licencji z innego użytkownika

Connect-Entra -Scopes 'User.ReadWrite.All'
$licensedUser = Get-EntraUser -UserId 'AdeleV@contoso.com'
$user = Get-EntraUser -UserId 'SawyerM@contoso.com'
$license1 = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license1.SkuId = $licensedUser.AssignedLicenses.SkuId[0]
$license2 = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license2.SkuId = $licensedUser.AssignedLicenses.SkuId[1]
$addLicensesArray = @()
$addLicensesArray += $license1
$addLicensesArray += $license2
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$licenses.AddLicenses = $addLicensesArray
Set-EntraUserLicense -UserId $user.Id -AssignedLicenses $licenses
Name                           Value
----                           -----
externalUserStateChangeDateTi…
businessPhones                 {8976546787}
postalCode                     444601
createdDateTime                06-11-2023 04:48:19
surname                        KTETSs
jobTitle                       Manager
employeeType
otherMails                     {SawyerM@contoso.com}
isResourceAccount
usageLocation                  DE
legalAgeGroupClassification    Adult
id                             cccccccc-2222-3333-4444-dddddddddddd
isLicenseReconciliationNeeded  False

W tym przykładzie pokazano, jak przypisać licencję do użytkownika, kopiując licencję od innego użytkownika.

  • -UserId parametr określa identyfikator obiektu użytkownika (jako UserPrincipalName lub ObjectId).
  • -AssignedLicenses parametr określa listę licencji do przypisania lub usunięcia.

Przykład 3. Usuwanie przypisanej licencji użytkownika

Connect-Entra -Scopes 'User.ReadWrite.All'
$userPrincipalName = 'SawyerM@Mcontoso.com'
$user = Get-EntraUser -UserId $userPrincipalName
$skuId = (Get-EntraUserLicenseDetail -UserId $userPrincipalName).SkuId
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$licenses.RemoveLicenses = $skuId
Set-EntraUserLicense -UserId $user.Id -AssignedLicenses $licenses
Name                           Value
----                           -----
displayName                    SawyerM
id                             cccccccc-2222-3333-4444-dddddddddddd
jobTitle
surname                        M
mail
userPrincipalName              SawyerM@contoso.com
mobilePhone
preferredLanguage
@odata.context                 https://graph.microsoft.com/v1.0/$metadata#users/$entity
businessPhones                 {}
officeLocation
givenName                      Sawyer

W tym przykładzie pokazano, jak usunąć licencję użytkownika, pobierając szczegóły użytkownika.

  • -UserId parametr określa identyfikator obiektu użytkownika (jako UserPrincipalName lub ObjectId).
  • -AssignedLicenses parametr określa listę licencji do przypisania lub usunięcia.

Przykład 4. Zbiorcze przypisywanie licencji do wielu użytkowników

Connect-Entra -Scopes 'Organization.ReadWrite.All'
# Retrieve the SkuId for the desired license plans
$skuId1 = (Get-EntraSubscribedSku | Where-Object { $_.SkuPartNumber -eq 'AAD_PREMIUM_P2' }).SkuId
$skuId2 = (Get-EntraSubscribedSku | Where-Object { $_.SkuPartNumber -eq 'EMS' }).SkuId
# Define the user to whom the licenses will be assigned
$users = ('AljosaH@Contoso.com', 'PalameeC@Contoso.com')
# You can, alternatively, import users from a csv file. For this example, the CSV should have a column named 'user'
$users = Import-Csv -Path "C:\path\to\your\users.csv" | Select-Object -ExpandProperty user
# Create license assignment objects
$license1 = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license1.SkuId = $skuId1
$license2 = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license2.SkuId = $skuId2
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$licenses.AddLicenses = $license1, $license2
# Assign the licenses to each user
foreach ($user in $users$users) {
    Set-EntraUserLicense -UserId $user -AssignedLicenses $licenses
}

Parametry

-AssignedLicenses

Określa listę licencji do przypisania lub usunięcia.

Właściwości parametru

Typ:AssignedLicenses
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-UserId

Określa identyfikator użytkownika (jako UserPrincipalName lub ObjectId) w Microsoft Entra ID.

Właściwości parametru

Typ:System.String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Identyfikator Obiektu, nazwa UPN, Identity, NazwaGłównaUżytkownika

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.