Powershell 获得备用许可证

Posted

技术标签:

【中文标题】Powershell 获得备用许可证【英文标题】:Powershell get spare licenses 【发布时间】:2022-01-21 12:58:17 【问题描述】:

我正在尝试从Get-MsolAccountSku 命令获取可用的备用许可证数量。

这是代码(下面的输出)

$Licenses = Get-MsolAccountSku
$spare = Foreach ($License in $licenses)

  ($License.ActiveUnits - $License.ConsumedUnits)   


Get-MsolAccountSku | Select-Object -Property AccountSkuId,ActiveUnits,ConsumedUnits,@L=’SpareLicenses’;E=$spare

我想在输出右侧添加一列,列出ForEach 循环中的减法可用的许可证数量。

ActiveUnits ConsumedUnits
----------- -------------
         30            26
       1601             1
         30            29
         25             0
          5             3
          1             0
      12550         12465
    1000000         12461
      12550         12466
      12555         12468
         31            19
      12550         12464

【问题讨论】:

【参考方案1】:

不需要您的$spare 对象,只需更新 Select 以进行计算...

Get-MsolAccountSku | 
Select-Object -Property AccountSkuId,ActiveUnits,ConsumedUnits,
@L=’SpareLicenses’;E=$_.ActiveUnits - $_.ConsumedUnits

【讨论】:

【参考方案2】:

来自about Calculated Properties:

计算的属性由包含指定新属性名称的键值对、计算值的表达式和可选格式信息的哈希表定义。

expression - 用于计算新属性值的脚本块

按照您的代码,您应该为脚本块更改 foreach 循环:

$Licenses = Get-MsolAccountSku
$spare =  $_.ActiveUnits - $_.ConsumedUnits 

# $_ - References to each object being passed through the pipeline
# See about Automatic Variables for more information

Get-MsolAccountSku |
Select-Object -Property AccountSkuId,ActiveUnits,ConsumedUnits,@
    Name = 'SpareLicenses'
    Expression = $spare

【讨论】:

以上是关于Powershell 获得备用许可证的主要内容,如果未能解决你的问题,请参考以下文章

powershell 来自https://stackoverflow.com/questions/31051103/how-to-export-a-class-in-powershell-v5-mod

PowerShe 使用证书签名 ll脚本

text 查找备用数据流Powershell

使用 Powershell 的备用拆分 CSV 列 [关闭]

如何在 PowerShell 中输出内容

ansible管理windows集群