internal/defender/Get-MdeSettingValue.ps1
|
function Get-MdeSettingValue { <# .SYNOPSIS Extracts setting values from Graph API configuration policy responses .DESCRIPTION Parses setting objects from Microsoft Graph API configuration policy responses and extracts the appropriate value based on the compliance check type. .PARAMETER Setting The setting object from Graph API .PARAMETER ComplianceCheck The type of compliance check: Boolean, Range, Enum, MinimumLevel, MinimumValue, NotRequired, Manual .EXAMPLE Get-MdeSettingValue -Setting $settingObj -ComplianceCheck "Boolean" Returns the extracted value (e.g., "_1" for enabled). #> [CmdletBinding()] [OutputType([string])] param( [Parameter(Mandatory = $true)] $Setting, [Parameter(Mandatory = $true)] [ValidateSet("Boolean", "Range", "Enum", "MinimumLevel", "MinimumValue", "NotRequired", "Manual")] [string]$ComplianceCheck ) switch ($ComplianceCheck) { "Boolean" { $choiceValue = $Setting.settingInstance.choiceSettingValue.value if ($choiceValue -match "_(\d+)$") { return "_$($matches[1])" } return $null } "Range" { return $Setting.settingInstance.simpleSettingValue.value } "Enum" { $choiceValue = $Setting.settingInstance.choiceSettingValue.value if ($choiceValue -match "_(\d+)$") { return "_$($matches[1])" } return $choiceValue } "MinimumLevel" { $choiceValue = $Setting.settingInstance.choiceSettingValue.value if ($choiceValue -match "_(\d+)$") { return "_$($matches[1])" } return $choiceValue } "MinimumValue" { return $Setting.settingInstance.simpleSettingValue.value } "NotRequired" { return "NotRequired" } "Manual" { return "ManualVerificationRequired" } } } |