public/maester/intune/Test-MtManagedDeviceCleanupSettings.ps1
|
<# .SYNOPSIS Ensure device clean-up rule is configured .DESCRIPTION The device clean-up rule should be configured .EXAMPLE Test-MtManagedDeviceCleanupSettings Returns true if the device clean-up rule is configured .LINK https://maester.dev/docs/commands/Test-MtManagedDeviceCleanupSettings #> function Test-MtManagedDeviceCleanupSettings { [CmdletBinding()] [OutputType([bool])] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseSingularNouns', '', Justification = 'This test refers to multiple settings.')] param() Write-Verbose 'Testing device clean-up rule configuration' if ((Get-MtLicenseInformation EntraID) -eq 'Free') { Add-MtTestResultDetail -SkippedBecause NotLicensedEntraIDP1 return $null } try { $deviceCleanupSettings = Invoke-MtGraphRequest -RelativeUri 'deviceManagement/managedDeviceCleanupRules' -ApiVersion beta if ((-not $deviceCleanupSettings.deviceInactivityBeforeRetirementInDays) -or ($deviceCleanupSettings.deviceInactivityBeforeRetirementInDays -eq 0)) { $testResultMarkdown = 'No Intune device clean-up rule is configured.' $return = $false } else { $testResultMarkdown = "Well done. At least one Intune device clean-up rule is configured.`n" $testResultMarkdown += "| Name | Platfrom | Days to retire |`n" $testResultMarkdown += "| --- | --- | --- |`n" foreach ($setting in $deviceCleanupSettings) { $testResultMarkdown += "| $($setting.displayName) | $($setting.deviceCleanupRulePlatformType) | $($setting.deviceInactivityBeforeRetirementInDays) |`n" } $return = $true } Add-MtTestResultDetail -Result $testResultMarkdown return $return } catch { Add-MtTestResultDetail -SkippedBecause Error -SkippedError $_ return $null } } |