Public/Get-KritTcmMonitor.ps1
|
function Get-KritTcmMonitor { <# .SYNOPSIS List or read TCM configuration monitors. #> [CmdletBinding()] param( [Parameter(ValueFromPipelineByPropertyName)][Alias('Id')][string]$MonitorId, [string]$Filter, [int]$Top, [switch]$IncludeBaseline ) process { $uri = if ($MonitorId) { "https://graph.microsoft.com/v1.0/admin/configurationManagement/configurationMonitors/$MonitorId" } else { 'https://graph.microsoft.com/v1.0/admin/configurationManagement/configurationMonitors' } $query = [System.Collections.Generic.List[string]]::new() if ($Filter) { $query.Add("`$filter=$([uri]::EscapeDataString($Filter))") } if ($Top -gt 0) { $query.Add("`$top=$Top") } if ($IncludeBaseline) { $query.Add("`$expand=baseline") } if ($query.Count -gt 0) { $uri = '{0}?{1}' -f $uri, ($query -join '&') } $response = Invoke-MgGraphRequest -Method GET -Uri $uri -ErrorAction Stop if ($MonitorId) { return [pscustomobject]@{ Id = $response.id DisplayName = $response.displayName Description = $response.description Status = $response.status Mode = $response.mode Created = $response.createdDateTime Modified = $response.lastModifiedDateTime RawResponse = $response } } @($response.value | ForEach-Object { [pscustomobject]@{ Id = $_.id DisplayName = $_.displayName Description = $_.description Status = $_.status Mode = $_.mode Created = $_.createdDateTime Modified = $_.lastModifiedDateTime RawResponse = $_ } }) } } |