Private/Get-TokenActivationLicense.ps1
|
function Get-TokenActivationLicense { [OutputType([CimInstance])] [CmdletBinding()] param( [Parameter(Mandatory)] [Microsoft.Management.Infrastructure.CimSession]$CimSession, [Guid]$ILID, [uint32]$ILVID ) $properties = (Get-SppContract).TokenActivationLicenseProperties $query = "SELECT $($properties -join ', ') FROM SoftwareLicensingTokenActivationLicense" $hasIlid = $PSBoundParameters.ContainsKey('ILID') $hasIlvid = $PSBoundParameters.ContainsKey('ILVID') if ($hasIlid -xor $hasIlvid) { throw 'ILID and ILVID must be specified together.' } if ($hasIlid) { $query += " WHERE ILID = '$($ILID.ToString())' AND ILVID = $ILVID" } $licenses = @(Get-CimInstance -CimSession $CimSession -Query $query -ErrorAction Stop) if ($hasIlid) { if ($licenses.Count -eq 0) { return @() } if ($licenses.Count -ne 1) { throw "Multiple token activation issuance licenses matched ILID $ILID and ILVID $ILVID." } return $licenses[0] } return $licenses | Sort-Object ILID, ILVID, ID } |