IntuneDeviceCompliancePolicyWindows10

Parameters

Parameter Attribute DataType Description Allowed Values
DisplayName Key String Display name of the Windows 10 device compliance policy.
Description Write String Description of the Windows 10 device compliance policy.
Assignments Write MSFT_DeviceManagementConfigurationPolicyAssignments[] Represents the assignment to the Intune policy.
PasswordRequired Write Boolean PasswordRequired of the Windows 10 device compliance policy.
PasswordBlockSimple Write Boolean PasswordBlockSimple of the Windows 10 device compliance policy.
PasswordRequiredToUnlockFromIdle Write Boolean PasswordRequiredToUnlockFromIdle of the Windows 10 device compliance policy.
PasswordMinutesOfInactivityBeforeLock Write UInt32 PasswordMinutesOfInactivityBeforeLock of the Windows 10 device compliance policy.
PasswordExpirationDays Write UInt32 PasswordExpirationDays of the Windows 10 device compliance policy.
PasswordMinimumLength Write UInt32 PasswordMinimumLength of the Windows 10 device compliance policy.
PasswordMinimumCharacterSetCount Write UInt32 PasswordMinimumCharacterSetCount of the Windows 10 device compliance policy.
PasswordRequiredType Write String PasswordRequiredType of the Windows 10 device compliance policy. DeviceDefault, Alphanumeric, Numeric
PasswordPreviousPasswordBlockCount Write UInt32 PasswordPreviousPasswordBlockCount of the Windows 10 device compliance policy.
RequireHealthyDeviceReport Write Boolean RequireHealthyDeviceReport of the Windows 10 device compliance policy.
OsMinimumVersion Write String OsMinimumVersion of the Windows 10 device compliance policy.
OsMaximumVersion Write String OsMaximumVersion of the Windows 10 device compliance policy.
MobileOsMinimumVersion Write String MobileOsMinimumVersion of the Windows 10 device compliance policy.
MobileOsMaximumVersion Write String MobileOsMaximumVersion of the Windows 10 device compliance policy.
EarlyLaunchAntiMalwareDriverEnabled Write Boolean EarlyLaunchAntiMalwareDriverEnabled of the Windows 10 device compliance policy.
BitLockerEnabled Write Boolean BitLockerEnabled of the Windows 10 device compliance policy.
SecureBootEnabled Write Boolean SecureBootEnabled of the Windows 10 device compliance policy.
CodeIntegrityEnabled Write Boolean CodeIntegrityEnabled of the Windows 10 device compliance policy.
StorageRequireEncryption Write Boolean StorageRequireEncryption of the Windows 10 device compliance policy.
ActiveFirewallRequired Write Boolean ActiveFirewallRequired of the Windows 10 device compliance policy.
DefenderEnabled Write Boolean DefenderEnabled of the Windows 10 device compliance policy.
DefenderVersion Write String DefenderVersion of the Windows 10 device compliance policy.
SignatureOutOfDate Write Boolean SignatureOutOfDate of the Windows 10 device compliance policy.
RTPEnabled Write Boolean RTPEnabled of the Windows 10 device compliance policy.
AntivirusRequired Write Boolean AntivirusRequired of the Windows 10 device compliance policy.
AntiSpywareRequired Write Boolean AntiSpywareRequired of the Windows 10 device compliance policy.
DeviceThreatProtectionEnabled Write Boolean DeviceThreatProtectionEnabled of the Windows 10 device compliance policy.
DeviceThreatProtectionRequiredSecurityLevel Write String DeviceThreatProtectionRequiredSecurityLevel of the Windows 10 device compliance policy. Unavailable, Secured, Low, Medium, High, NotSet
ConfigurationManagerComplianceRequired Write Boolean ConfigurationManagerComplianceRequired of the Windows 10 device compliance policy.
TPMRequired Write Boolean TPMRequired of the Windows 10 device compliance policy.
DeviceCompliancePolicyScript Write String DeviceCompliancePolicyScript of the Windows 10 device compliance policy.
ValidOperatingSystemBuildRanges Write StringArray[] ValidOperatingSystemBuildRanges of the Windows 10 device compliance policy.
Ensure Write String Present ensures the policy exists, absent ensures it is removed. Present, Absent
Credential Write PSCredential Credentials of the Intune Admin
ApplicationId Write String Id of the Azure Active Directory application to authenticate with.
TenantId Write String Id of the Azure Active Directory tenant used for authentication.
ApplicationSecret Write PSCredential Secret of the Azure Active Directory tenant used for authentication.
CertificateThumbprint Write String Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.
ManagedIdentity Write Boolean Managed ID being used for authentication.

MSFT_DeviceManagementConfigurationPolicyAssignments

Parameters

Parameter Attribute DataType Description Allowed Values
dataType Write String The type of the target assignment. #microsoft.graph.groupAssignmentTarget, #microsoft.graph.allLicensedUsersAssignmentTarget, #microsoft.graph.allDevicesAssignmentTarget, #microsoft.graph.exclusionGroupAssignmentTarget, #microsoft.graph.configurationManagerCollectionAssignmentTarget
deviceAndAppManagementAssignmentFilterType Write String The type of filter of the target assignment i.e. Exclude or Include. Possible values are:none, include, exclude. none, include, exclude
deviceAndAppManagementAssignmentFilterId Write String The Id of the filter for the target assignment.
groupId Write String The group Id that is the target of the assignment.
groupDisplayName Write String The group Display Name that is the target of the assignment.
collectionId Write String The collection Id that is the target of the assignment.(ConfigMgr)

Description

This resource configures the settings of Windows 10 compliance policies in your cloud-based organization.

Parameters

Device Health

Windows Health Attestation Service evaluation rules

  • Require BitLocker: Windows BitLocker Drive Encryption encrypts all data stored on the Windows operating system volume. BitLocker uses the Trusted Platform Module (TPM) to help protect the Windows operating system and user data. It also helps confirm that a computer isn't tampered with, even if its left unattended, lost, or stolen. If the computer is equipped with a compatible TPM, BitLocker uses the TPM to lock the encryption keys that protect the data. As a result, the keys can't be accessed until the TPM verifies the state of the computer.
  • Not configured (default) - This setting isn't evaluated for compliance or non-compliance.
  • Require - The device can protect data that's stored on the drive from unauthorized access when the system is off, or hibernates.

Device HealthAttestation CSP - BitLockerStatus

  • Require Secure Boot to be enabled on the device:
  • Not configured (default) - This setting isn't evaluated for compliance or non-compliance.
  • Require - The system is forced to boot to a factory trusted state. The core components that are used to boot the machine must have correct cryptographic signatures that are trusted by the organization that manufactured the device. The UEFI firmware verifies the signature before it lets the machine start. If any files are tampered with, which breaks their signature, the system doesn't boot.

Device Properties

Operating System Version

To discover build versions for all Windows 10 Feature Updates and Cumulative Updates (to be used in some of the fields below), see Windows 10 release information. Be sure to include the 10.0. prefix before the build numbers, as the following examples illustrate.

  • Minimum OS version: Enter the minimum allowed version in the major.minor.build.revision number format. To get the correct value, open a command prompt, and type ver. The ver command returns the version in the following format:

Microsoft Windows [Version 10.0.17134.1]

When a device has an earlier version than the OS version you enter, it's reported as noncompliant. A link with information on how to upgrade is shown. The end user can choose to upgrade their device. After they upgrade, they can access company resources.

  • Maximum OS version: Enter the maximum allowed version, in the major.minor.build.revision number format. To get the correct value, open a command prompt, and type ver. The ver command returns the version in the following format:

Microsoft Windows [Version 10.0.17134.1]

When a device is using an OS version later than the version entered, access to organization resources is blocked. The end user is asked to contact their IT administrator. The device can't access organization resources until the rule is changed to allow the OS version.

  • Minimum OS required for mobile devices: Enter the minimum allowed version, in the major.minor.build number format.

When a device has an earlier version that the OS version you enter, it's reported as noncompliant. A link with information on how to upgrade is shown. The end user can choose to upgrade their device. After they upgrade, they can access company resources.

  • Maximum OS required for mobile devices: Enter the maximum allowed version, in the major.minor.build number.

When a device is using an OS version later than the version entered, access to organization resources is blocked. The end user is asked to contact their IT administrator. The device can't access organization resources until the rule is changed to allow the OS version.

  • Valid operating system builds: Specify a list of minimum and maximum operating system builds. Valid operating system builds provides additional flexibility when compared against minimum and maximum OS versions. Consider a scenario where minimum OS version is set to 10.0.18362.xxx (Windows 10 1903) and maximum OS version is set to 10.0.18363.xxx (Windows 10 1909). This configuration can allow a Windows 10 1903 device that doesn't have recent cumulative updates installed to be identified as compliant. Minimum and maximum OS versions might be suitable if you have standardized on a single Windows 10 release, but might not address your requirements if you need to use multiple builds, each with specific patch levels. In such a case, consider leveraging valid operating system builds instead, which allows multiple builds to be specified as per the following example.

Example: The following table is an example of a range for the acceptable operating systems versions for different Windows 10 releases. In this example, three different Feature Updates have been allowed (1809, 1909 and 2004). Specifically, only those versions of Windows and which have applied cumulative updates from June to September 2020 will be considered to be compliant. This is sample data only. The table includes a first column that includes any text you want to describe the entry, followed by the minimum and maximum OS version for that entry. The second and third columns must adhere to valid OS build versions in the major.minor.build.revision number format. After you define one or more entries, you can Export the list as a comma-separated values (CSV) file.

Description Minimum OS version Maximum OS version
Win 10 2004 (Jun-Sept 2020) 10.0.19041.329 10.0.19041.508
Win 10 1909 (Jun-Sept 2020) 10.0.18363.900 10.0.18363.1110
Win 10 1809 (Jun-Sept 2020) 10.0.17763.1282 10.0.17763.1490

Configuration Manager Compliance

Applies only to co-managed devices running Windows 10 and later. Intune-only devices return a not available status.

  • Require device compliance from Configuration Manager:
  • Not configured (default) - Intune doesn't check for any of the Configuration Manager settings for compliance.
  • Require - Require all settings (configuration items) in Configuration Manager to be compliant.

System Security

Password

  • Require a password to unlock mobile devices:
  • Not configured (default) - This setting isn't evaluated for compliance or non-compliance.
  • Require - Users must enter a password before they can access their device.

  • Simple passwords:

  • Not configured (default) - Users can create simple passwords, such as 1234 or 1111.
  • Block - Users can't create simple passwords, such as 1234 or 1111.

  • Password type: Choose the type of password or PIN required. Your options:

  • Device (default) - Require a password, numeric PIN, or alphanumeric PIN
  • Numeric - Require a password or numeric PIN
  • Alphanumeric - Require a password, or alphanumeric PIN. When set to Alphanumeric, the following settings are available:

  • Password complexity: Your options:

    • Require digits and lowercase letters (default)
    • Require digits, lowercase letters, and uppercase letters
    • Require digits, lowercase letters, uppercase letters, and special characters
  • Minimum password length: Enter the minimum number of digits or characters that the password must have.

  • Maximum minutes of inactivity before password is required: Enter the idle time before the user must reenter their password.

  • Password expiration (days): Enter the number of days before the password expires, and they must create a new one, from 1-730.

  • Number of previous passwords to prevent reuse: Enter the number of previously used passwords that can't be used.

  • Require password when device returns from idle state (Mobile and Holographic):

    • Not configured (default)
    • Require - Require device users to enter the password every time the device returns from an idle state.

Important When the password requirement is changed on a Windows desktop, users are impacted the next time they sign in, as that's when the device goes from idle to active. Users with passwords that meet the requirement are still prompted to change their passwords.

Encryption

  • Encryption of data storage on a device: This setting applies to all drives on a device.
  • Not configured (default)
  • Require - Use Require to encrypt data storage on your devices.

Note The Encryption of data storage on a device setting generically checks for the presence of encryption on the device, more specifically at the OS drive level. Currently, Intune supports only the encryption check with BitLocker. For a more robust encryption setting, consider using Require BitLocker, which leverages Windows Device Health Attestation to validate Bitlocker status at the TPM level.

Device Security

  • Firewall:
  • Not configured (default) - Intune doesn't control the Microsoft Defender Firewall, nor change existing settings.
  • Require - Turn on the Microsoft Defender Firewall, and prevent users from turning it off.

Note If the device immediately syncs after a reboot, or immediately syncs waking from sleep, then this setting may report as an Error. This scenario might not affect the overall device compliance status. To re-evaluate the compliance status, manually sync the device.

  • Trusted Platform Module (TPM):
  • Not configured (default) - Intune doesn't check the device for a TPM chip version.
  • Require - Intune checks the TPM chip version for compliance. The device is compliant if the TPM chip version is greater than 0 (zero). The device isn't compliant if there isn't a TPM version on the device.

  • Antivirus:

  • Not configured (default) - Intune doesn't check for any antivirus solutions installed on the device.
  • Require - Check compliance using antivirus solutions that are registered with Windows Security Center, such as Symantec and Microsoft Defender.

  • Antispyware:

  • Not configured (default) - Intune doesn't check for any antispyware solutions installed on the device.
  • Require - Check compliance using antispyware solutions that are registered with Windows Security Center, such as Symantec and Microsoft Defender.

Defender

The following compliance settings are supported with Windows 10 Desktop.

  • Microsoft Defender Antimalware:
  • Not configured (default) - Intune doesn't control the service, nor change existing settings.
  • Require - Turn on the Microsoft Defender anti-malware service, and prevent users from turning it off.

  • Microsoft Defender Antimalware minimum version: Enter the minimum allowed version of Microsoft Defender anti-malware service. For example, enter 4.11.0.0. When left blank, any version of the Microsoft Defender anti-malware service can be used.

By (default), no version is configured.

  • Microsoft Defender Antimalware security intelligence up-to-date: Controls the Windows Security virus and threat protection updates on the devices.
  • Not configured (default) - Intune doesn't enforce any requirements.
  • Require - Force the Microsoft Defender security intelligence be up-to-date.

  • Real-time protection:

  • Not configured ((default)) - Intune doesn't control this feature, nor change existing settings.
  • Require - Turn on real-time protection, which scans for malware, spyware, and other unwanted software.

Microsoft Defender for Endpoint

Microsoft Defender for Endpoint rules

For additional information on Microsoft Defender for Endpoint integration in conditional access scenarios, see Configure Conditional Access in Microsoft Defender for Endpoint.

  • Require the device to be at or under the machine risk score: Use this setting to take the risk assessment from your defense threat services as a condition for compliance. Choose the maximum allowed threat level:
  • Not configured ((default))
  • Clear -This option is the most secure, as the device can't have any threats. If the device is detected as having any level of threats, it's evaluated as non-compliant.
  • Low - The device is evaluated as compliant if only low-level threats are present. Anything higher puts the device in a non-compliant status.
  • Medium - The device is evaluated as compliant if existing threats on the device are low or medium level. If the device is detected to have high-level threats, it's determined to be non-compliant.
  • High - This option is the least secure, and allows all threat levels. It may be useful if you're using this solution only for reporting purposes.

Windows Holographic for Business

Windows Holographic for Business uses the Windows 10 and later platform. Windows Holographic for Business supports the following setting:

System Security > Encryption > Encryption of data storage on device. To verify device encryption on the Microsoft HoloLens, see Verify device encryption.

Surface Hub

Surface Hub uses the Windows 10 and later platform. Surface Hubs are supported for both compliance and Conditional Access. To enable these features on Surface Hubs, we recommend you enable Windows 10 automatic enrollment in Intune (requires Azure Active Directory (Azure AD)), and target the Surface Hub devices as device groups. Surface Hubs are required to be Azure AD joined for compliance and Conditional Access to work.

For guidance, see set up enrollment for Windows devices.

Special consideration for Surface Hubs running Windows 10 Team OS: Surface Hubs that run Windows 10 Team OS do not support the Microsoft Defender for Endpoint and Password compliance policies at this time. Therefore, for Surface Hubs that run Windows 10 Team OS set the following two settings to their (default) of Not configured: * In the category Password, set Require a password to unlock mobile devices to the (default) of Not configured. * In the category Microsoft Defender for Endpoint, set Require the device to be at or under the machine risk score to the (default) of Not configured.

Permissions

Microsoft Graph

To authenticate with the Microsoft Graph API, this resource required the following permissions:

Delegated permissions

  • Read

    • Group.Read.All, DeviceManagementConfiguration.Read.All
  • Update

    • DeviceManagementConfiguration.ReadWrite.All

Application permissions

  • Read

    • Group.Read.All, DeviceManagementConfiguration.Read.All
  • Update

    • DeviceManagementConfiguration.ReadWrite.All

Examples

Example 1

This example creates a new Device Comliance Policy for Windows.

Configuration Example
{
    param(
        [Parameter(Mandatory = $true)]
        [PSCredential]
        $Credscredential
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneDeviceCompliancePolicyWindows10 'ConfigureDeviceCompliancePolicyWindows10'
        {
            DisplayName                                 = 'Windows 10 DSC Policy'
            Description                                 = 'Test policy'
            PasswordRequired                            = $False
            PasswordBlockSimple                         = $False
            PasswordRequiredToUnlockFromIdle            = $True
            PasswordMinutesOfInactivityBeforeLock       = 15
            PasswordExpirationDays                      = 365
            PasswordMinimumLength                       = 6
            PasswordPreviousPasswordBlockCount          = 13
            PasswordMinimumCharacterSetCount            = 1
            PasswordRequiredType                        = 'Devicedefault'
            RequireHealthyDeviceReport                  = $True
            OsMinimumVersion                            = 10
            OsMaximumVersion                            = 10.19
            MobileOsMinimumVersion                      = 10
            MobileOsMaximumVersion                      = 10.19
            EarlyLaunchAntiMalwareDriverEnabled         = $False
            BitLockerEnabled                            = $False
            SecureBootEnabled                           = $True
            CodeIntegrityEnabled                        = $True
            StorageRequireEncryption                    = $True
            ActiveFirewallRequired                      = $True
            DefenderEnabled                             = $True
            DefenderVersion                             = ''
            SignatureOutOfDate                          = $True
            RtpEnabled                                  = $True
            AntivirusRequired                           = $True
            AntiSpywareRequired                         = $True
            DeviceThreatProtectionEnabled               = $True
            DeviceThreatProtectionRequiredSecurityLevel = 'Medium'
            ConfigurationManagerComplianceRequired      = $False
            TPMRequired                                 = $False
            deviceCompliancePolicyScript                = $null
            ValidOperatingSystemBuildRanges             = @()
            Ensure                                      = 'Present'
            Credential                                  = $Credscredential
        }
    }
}

Example 2

This example creates a new Device Comliance Policy for Windows.

Configuration Example
{
    param(
        [Parameter(Mandatory = $true)]
        [PSCredential]
        $Credscredential
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneDeviceCompliancePolicyWindows10 'ConfigureDeviceCompliancePolicyWindows10'
        {
            DisplayName                                 = 'Windows 10 DSC Policy'
            Description                                 = 'Test policy'
            PasswordRequired                            = $False
            PasswordBlockSimple                         = $False
            PasswordRequiredToUnlockFromIdle            = $True
            PasswordMinutesOfInactivityBeforeLock       = 15
            PasswordExpirationDays                      = 365
            PasswordMinimumLength                       = 8 # Updated Property
            PasswordPreviousPasswordBlockCount          = 13
            PasswordMinimumCharacterSetCount            = 1
            PasswordRequiredType                        = 'Devicedefault'
            RequireHealthyDeviceReport                  = $True
            OsMinimumVersion                            = 10
            OsMaximumVersion                            = 10.19
            MobileOsMinimumVersion                      = 10
            MobileOsMaximumVersion                      = 10.19
            EarlyLaunchAntiMalwareDriverEnabled         = $False
            BitLockerEnabled                            = $False
            SecureBootEnabled                           = $True
            CodeIntegrityEnabled                        = $True
            StorageRequireEncryption                    = $True
            ActiveFirewallRequired                      = $True
            DefenderEnabled                             = $True
            DefenderVersion                             = ''
            SignatureOutOfDate                          = $True
            RtpEnabled                                  = $True
            AntivirusRequired                           = $True
            AntiSpywareRequired                         = $True
            DeviceThreatProtectionEnabled               = $True
            DeviceThreatProtectionRequiredSecurityLevel = 'Medium'
            ConfigurationManagerComplianceRequired      = $False
            TPMRequired                                 = $False
            deviceCompliancePolicyScript                = $null
            ValidOperatingSystemBuildRanges             = @()
            Ensure                                      = 'Present'
            Credential                                  = $Credscredential
        }
    }
}

Example 3

This example creates a new Device Comliance Policy for Windows.

Configuration Example
{
    param(
        [Parameter(Mandatory = $true)]
        [PSCredential]
        $Credscredential
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneDeviceCompliancePolicyWindows10 'ConfigureDeviceCompliancePolicyWindows10'
        {
            DisplayName                                 = 'Windows 10 DSC Policy'
            Ensure                                      = 'Absent'
            Credential                                  = $Credscredential
        }
    }
}