Powershell:根据可用许可证在 E3、E1 之间进行选择

Posted

技术标签:

【中文标题】Powershell:根据可用许可证在 E3、E1 之间进行选择【英文标题】:Choose between E3, E1 based on available licenses 【发布时间】:2022-01-02 04:22:12 【问题描述】:

我正在寻找一种根据许可证的可用性向用户添加 E3 或 E1 许可证的方法。

例如:如果没有 E3 许可证,则添加一个 E1 许可证

我做什么,我在 2 行上使用“Set-MsolUserLicense”命令。如果第一行给出了类似的错误,则不再可用。然后它转到第二行并执行第二行。

如果第一行没有错误,然后转到第二行,然后给出错误,则已添加许可证。

这就是我的方式:)

有什么想法吗? :)

工作, M

【问题讨论】:

【参考方案1】:

基于上述共享要求,我们编写了以下 powershell 脚本,将检查当前可用的许可证单元,并相应地为用户分配适当的许可证 e3 或 e1。

Connect-MsolService

$userlist='user1@microsoft.com','user2@microsoft.com'

foreach($users in $userlist)
$e3= Get-MsolAccountSku | Where AccountSkuId -Contains microsoft:ENTERPRISEPACK 
$e1= Get-MsolAccountSku | Where AccountSkuId -Contains microsoft:STANDARDPACK

if( $e3.ConsumedUnits -le $e3.ActiveUnits)
    Write-Host "Need to append e3"
    Set-MsolUserLicense -AddLicenses $e3.AccountSkuId  -UserPrincipalName $users
    
    elseif( $e1.ConsumedUnits -le $e1.ActiveUnits)

    Write-Host "Need to append e1"
    Set-MsolUserLicense -AddLicenses $e3.AccountSkuId  -UserPrincipalName $users
    
    else
    Write-host "No active E1 or E3 Linceses available  for the current tenant"
    


有关Product names and service plan identifiers for licensing的更多信息,您可以参考此文档

【讨论】:

顶!!谢谢! :) 嗨,Oki 会的! :) Ps:将其更改为“-lt”并进行一些调整后,代码可以完美运行! :)

以上是关于Powershell:根据可用许可证在 E3、E1 之间进行选择的主要内容,如果未能解决你的问题,请参考以下文章

Powershell 获得备用许可证

至强E3-1200 系列部分参数

sql

nvl函数

博客作业01-抽象数据类型

NVL函数