Core/Initialize-RKIntuneCoreState.ps1
|
function Initialize-RKIntuneCoreState { <# .SYNOPSIS Creates the script-scope state the Intune anomaly core reads. A collection calls it first, so each collection starts with empty caches; RKSolutions.psm1 calls it once on load for Enrollment Flows. #> [CmdletBinding()] param() $script:BitLockerSettingPrefix = 'device_vendor_msft_bitlocker_' $script:LapsSettingPrefix = 'device_vendor_msft_laps_policies_' $script:LapsBackupDirectorySetting = 'device_vendor_msft_laps_policies_backupdirectory' $script:AllFilters = @{} $script:AllGroups = @{} $script:ODataToFriendly = @{ '#microsoft.graph.allDevicesAssignmentTarget' = 'All Devices' '#microsoft.graph.allLicensedUsersAssignmentTarget' = 'All Users' '#microsoft.graph.groupAssignmentTarget' = 'Group (Include)' '#microsoft.graph.exclusionGroupAssignmentTarget' = 'Group (Exclude)' } # Admin-center names for compliance rules, keyed by the settingName suffix Graph returns. # Sources: learn.microsoft.com/intune/device-security/compliance/ref-windows-settings # learn.microsoft.com/intune/device-security/compliance/monitor-policy (built-in policy) # Names must not contain ', ' - the Noncompliant tab splits reasons on it. $script:ComplianceSettingFriendlyNames = @{ 'RequireRemainContact' = 'Is active (no compliance check-in within the compliance status validity period)' 'RequireDeviceCompliancePolicyAssigned' = 'Has a compliance policy assigned' 'RequireUserExistence' = 'Enrolled user exists (user deleted or disabled or without an Intune license)' 'BitLockerEnabled' = 'Require BitLocker' 'SecureBootEnabled' = 'Require Secure Boot to be enabled on the device' 'CodeIntegrityEnabled' = 'Require code integrity' 'EarlyLaunchAntiMalwareDriverEnabled' = 'Early launch antimalware driver enabled' 'RequireHealthyDeviceReport' = 'Reported healthy by Device Health Attestation' 'OsMinimumVersion' = 'Minimum OS version' 'OsMaximumVersion' = 'Maximum OS version' 'MobileOsMinimumVersion' = 'Minimum OS required for mobile devices' 'MobileOsMaximumVersion' = 'Maximum OS required for mobile devices' 'ValidOperatingSystemBuildRanges' = 'Valid operating system builds' 'ConfigurationManagerComplianceRequired' = 'Require device compliance from Configuration Manager' 'PasswordRequired' = 'Require a password to unlock mobile devices' 'PasswordBlockSimple' = 'Simple passwords' 'PasswordRequiredType' = 'Password type' 'PasswordMinimumCharacterSetCount' = 'Password complexity' 'PasswordMinimumLength' = 'Minimum password length' 'PasswordMinutesOfInactivityBeforeLock' = 'Maximum minutes of inactivity before password is required' 'PasswordExpirationDays' = 'Password expiration (days)' 'PasswordPreviousPasswordBlockCount' = 'Number of previous passwords to prevent reuse' 'PasswordRequiredToUnlockFromIdle' = 'Require password when device returns from idle state' 'StorageRequireEncryption' = 'Encryption of data storage on a device' 'ActiveFirewallRequired' = 'Firewall (turned off or allowing all inbound traffic)' 'TpmRequired' = 'Trusted Platform Module (TPM)' 'AntivirusRequired' = 'Antivirus (turned off or out of date in Windows Security)' 'AntiSpywareRequired' = 'Antispyware (turned off or out of date in Windows Security)' 'DefenderEnabled' = 'Microsoft Defender Antimalware (service turned off)' 'DefenderVersion' = 'Microsoft Defender Antimalware minimum version' 'SignatureOutOfDate' = 'Microsoft Defender Antimalware security intelligence up-to-date' 'RtpEnabled' = 'Real-time protection (turned off)' 'DeviceThreatProtectionEnabled' = 'Require the device to be at or under the machine risk score' 'DeviceThreatProtectionRequiredSecurityLevel' = 'Require the device to be at or under the machine risk score' } } |