Quản lý giấy phép với mô-đun PowerShell AzureAD V2
Vào ngày 17 tháng 11, phiên bản mới của mô-đun AzureAD PowerShell đã được phát hành vào thư viện. Điều này có thể được tìm thấy ở đây: https://www.powershellgallery.com/packages/AzureAD/2.0.0.30
Trong mô-đun MSOnline cũ có hai lệnh được sử dụng để thay đổi giấy phép được chỉ định cho người dùng. Đầu tiên chúng ta có Set-MsolUserLicene với tham số ObjectID hoặc UserPrincipalName có thể được kết hợp với AddLicens, RemoveLicens và LicenseOptions. Thứ hai, chúng tôi có New-MsolLicenOptions để tạo đối tượng licenseoptions.
Trong mô-đun AzureAD mới vẫn có một lệnh có tên Set-AzureADUserLicene nhưng nó chỉ có hai tham số là ObjectId vàAssignedLicens. Không có lệnh để tạo tùy chọn giấy phép.
Bây giờ, điều này có thể hơi khó hiểu đối với người dùng PowerShell chưa có kinh nghiệm, nhưng đừng lo, chúng ta sẽ đi sâu vào vấn đề này!
Hãy bắt đầu bằng cách xem tài liệu trợ giúp:
Get-Help -Name Set-AzureADUserLicense -Full
Điều này cho chúng ta một gợi ý để sử dụng New-Object để tạo một đối tượng Giấy phép được chỉ định. Hãy thử điều đó!
Trong thử nghiệm của mình, tôi đã sử dụng Get-AzureADSubscribeSku để lấy danh sách các giấy phép có sẵn cho mình và nhận thấy SkuID của POWER_BI_STANDARD là 'a403ebcc-fae0-4ca2-8c8c-7a907fd6c235', thay thế bằng SkuID trong giấy phép của bạn.
$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license
$license.SkuId = 'a403ebcc-fae0-4ca2-8c8c-7a907fd6c235'
Set-AzureADUserLicense -ObjectId [email -AssignedLicenses $licenseĐiều này đưa ra một lỗi cho biết:
Set-AzureADUserLicense : Cannot bind parameter 'AssignedLicenses'. Cannot convert the "class AssignedLicense {
DisabledPlans:
SkuId: a403ebcc-fae0-4ca2-8c8c-7a907fd6c235
}
" value of type "Microsoft.Open.AzureAD.Model.AssignedLicense" to type "Microsoft.Open.AzureAD.Model.AssignedLicenses".
At line:1 char:68
+ ... ureADUserLicense -ObjectId [email -AssignedLicenses $license
+ ~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-AzureADUserLicense], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Open.AzureAD16.PowerShell.SetUserLicensesĐiều này cho chúng ta biết rằng đối tượng được mong đợi bởi tham sốAssignedLicens thực tế không phải là một đối tượng được chỉ định mà là một đối tượng được chỉ định.s. Hãy tạo một trong số đó và xem nó trông như thế nào:
New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses | Get-MemberĐiều này cho chúng ta biết rằng chúng ta có hai thuộc tính, AddLicens và RemoveLicens. AddLicens là danh sách các đối tượng được chỉ định, đây là nơi đối tượng của chúng ta đi tới. Hãy thử lại lần nữa:
$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license.SkuId = 'a403ebcc-fae0-4ca2-8c8c-7a907fd6c235'
$AssignedLicenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$AssignedLicenses.AddLicenses = $license
Set-AzureADUserLicense -ObjectId [email -AssignedLicenses $AssignedLicensesĐiều này dường như đang hoạt động! Người dùng của tôi hiện có giấy phép PowerBI Standard. Nhưng tôi cũng đã có giấy phép PowerBI Pro từ trước, hãy xem liệu chúng tôi có thể cập nhật mã để xóa mã đó không. Lưu ý rằng thuộc tính RemoveLicens trên đối tượng được chỉ định ở trên là danh sách các chuỗi. Giấy phép PowerBI Pro của tôi có SkuID là 'f8a1db68-be16-40ed-86d5-cb42ce701560'.
$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$license.SkuId = 'a403ebcc-fae0-4ca2-8c8c-7a907fd6c235'
$AssignedLicenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$AssignedLicenses.AddLicenses = $license
$AssignedLicenses.RemoveLicenses = 'f8a1db68-be16-40ed-86d5-cb42ce701560'
Set-AzureADUserLicense -ObjectId [email -AssignedLicenses $AssignedLicensesHoạt động như một sự quyến rũ! Và giấy phép Office 365 E1 của tôi đã được cấp từ đầu vẫn còn đó và chưa hề bị động đến. Bằng cách sử dụng Get-Help và Get-Member, giờ đây chúng tôi đã tìm ra cách sử dụng Set-AzureADUserLicene trong Mô-đun AzureAD PowerShell mới và chúng tôi đã tìm hiểu được một số điều:
- Tham số được chỉ định có một đối tượng thuộc loại icrosoft.Open.AzureAD.Model.AssignedLicens
- Đối tượng này có hai thuộc tính, AddLicens và RemoveLicens
- AddLicens lấy danh sách các đối tượng Microsoft.Open.AzureAD.Model.AssignedLince.
- RemoveLicens lấy danh sách các chuỗi chứa SkuIds
- Các giấy phép đã được chỉ định không phải là một phần của AddLicens hoặc RemoveLicens sẽ không bị ảnh hưởng
