IntuneDeviceRemediation

Parameters

Parameter Attribute DataType Description Allowed Values
Description Write String Description of the device health script
DetectionScriptContent Write String The entire content of the detection powershell script
DetectionScriptParameters Write MSFT_MicrosoftGraphdeviceHealthScriptParameter[] List of ComplexType DetectionScriptParameters objects.
DeviceHealthScriptType Write String DeviceHealthScriptType for the script policy. Possible values are: deviceHealthScript, managedInstallerScript. deviceHealthScript, managedInstallerScript
DisplayName Required String Name of the device health script
EnforceSignatureCheck Write Boolean Indicates whether the script signature needs be checked
IsGlobalScript Write Boolean Indicates whether the script is a global script provided by Microsoft
Publisher Write String Name of the device health script publisher
RemediationScriptContent Write String The entire content of the remediation powershell script
RemediationScriptParameters Write MSFT_MicrosoftGraphdeviceHealthScriptParameter[] List of ComplexType RemediationScriptParameters objects.
RoleScopeTagIds Write StringArray[] List of Scope Tag IDs for the device health script
RunAs32Bit Write Boolean Indicate whether PowerShell script(s) should run as 32-bit
RunAsAccount Write String Indicates the type of execution context. Possible values are: system, user. system, user
Id Key String The unique identifier for an entity. Read-only.
Assignments Write MSFT_IntuneDeviceRemediationPolicyAssignments[] Represents the assignment to the Intune policy.
Ensure Write String Present ensures the policy exists, absent ensures it is removed. Present, Absent
Credential Write PSCredential Credentials of the 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.
AccessTokens Write StringArray[] Access token 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)

MSFT_IntuneDeviceRemediationRunSchedule

Parameters

Parameter Attribute DataType Description Allowed Values
dataType Write String The type of the schedule. #microsoft.graph.deviceHealthScriptRunOnceSchedule, #microsoft.graph.deviceHealthScriptHourlySchedule, #microsoft.graph.deviceHealthScriptDailySchedule
Date Write String The date when to run the schedule. Only applicable when the odataType is a run once schedule. Format: 2024-01-01
Interval Write UInt32 The interval of the schedule. Must be 1 in case of a run once schedule.
Time Write String The time when to run the schedule. Only applicable when the dataType is not an hourly schedule. Format: 01:00:00
UseUtc Write Boolean If to use UTC as the time source. Only applicable when the dataType is not an hourly schedule.

MSFT_IntuneDeviceRemediationPolicyAssignments

Parameters

Parameter Attribute DataType Description Allowed Values
RunRemediationScript Write Boolean If the remediation script should be run.
RunSchedule Write MSFT_IntuneDeviceRemediationRunSchedule The run schedule of the remediation.
Assignment Write MSFT_DeviceManagementConfigurationPolicyAssignments Represents the assignment of the schedule.

MSFT_MicrosoftGraphDeviceHealthScriptParameter

Parameters

Parameter Attribute DataType Description Allowed Values
ApplyDefaultValueWhenNotAssigned Write Boolean Whether Apply DefaultValue When Not Assigned
Description Write String The description of the param
IsRequired Write Boolean Whether the param is required
Name Write String The name of the param
DefaultValue Write Boolean The default value of boolean param
odataType Write String The type of the entity. #microsoft.graph.deviceHealthScriptBooleanParameter, #microsoft.graph.deviceHealthScriptIntegerParameter, #microsoft.graph.deviceHealthScriptStringParameter

Description

Intune Device Remediation

Important: Global scripts only allow the update of the following properties:

  • Assignments
  • RoleScopeTagIds
  • RunAs32Bit
  • RunAsAccount

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

    • Group.Read.All, DeviceManagementConfiguration.Read.All, DeviceManagementConfiguration.ReadWrite.All

Application permissions

  • Read

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

    • Group.Read.All, DeviceManagementConfiguration.Read.All, DeviceManagementConfiguration.ReadWrite.All

Examples

Example 1

This example creates a new Device Remediation.

Configuration Example
{
    param(
        [Parameter()]
        [System.String]
        $ApplicationId,

        [Parameter()]
        [System.String]
        $TenantId,

        [Parameter()]
        [System.String]
        $CertificateThumbprint
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneDeviceRemediation 'ConfigureDeviceRemediation'
        {
            Assignments              = @(
                MSFT_IntuneDeviceRemediationPolicyAssignments{
                    RunSchedule = MSFT_IntuneDeviceRemediationRunSchedule{
                        Date = '2024-01-01'
                        Time = '01:00:00'
                        Interval = 1
                        DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule'
                        UseUtc = $False
                    }
                    RunRemediationScript = $False
                    Assignment = MSFT_DeviceManagementConfigurationPolicyAssignments{
                        deviceAndAppManagementAssignmentFilterType = 'none'
                        dataType = '#microsoft.graph.groupAssignmentTarget'
                        groupId = '11111111-1111-1111-1111-111111111111'
                    }
                }
            );
            Description              = 'Description'
            DetectionScriptContent   = "Base64 encoded script content";
            DeviceHealthScriptType   = "deviceHealthScript";
            DisplayName              = "Device remediation";
            EnforceSignatureCheck    = $False;
            Ensure                   = "Present";
            Id                       = '00000000-0000-0000-0000-000000000000'
            Publisher                = "Some Publisher";
            RemediationScriptContent = "Base64 encoded script content";
            RoleScopeTagIds          = @("0");
            RunAs32Bit               = $True;
            RunAsAccount             = "system";
            ApplicationId         = $ApplicationId;
            TenantId              = $TenantId;
            CertificateThumbprint = $CertificateThumbprint;
        }
    }
}

Example 2

This example updates a new Device Remediation.

Configuration Example
{
    param(
        [Parameter()]
        [System.String]
        $ApplicationId,

        [Parameter()]
        [System.String]
        $TenantId,

        [Parameter()]
        [System.String]
        $CertificateThumbprint
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneDeviceRemediation 'ConfigureDeviceRemediation'
        {
            Assignments              = @(
                MSFT_IntuneDeviceRemediationPolicyAssignments{
                    RunSchedule = MSFT_IntuneDeviceRemediationRunSchedule{
                        Date = '2024-01-01'
                        Time = '01:00:00'
                        Interval = 1
                        DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule'
                        UseUtc = $False
                    }
                    RunRemediationScript = $False
                    Assignment = MSFT_DeviceManagementConfigurationPolicyAssignments{
                        deviceAndAppManagementAssignmentFilterType = 'none'
                        dataType = '#microsoft.graph.groupAssignmentTarget'
                        groupId = '11111111-1111-1111-1111-111111111111'
                    }
                }
            );
            Description              = 'Description'
            DetectionScriptContent   = "Base64 encoded script content 2"; # Updated property
            DeviceHealthScriptType   = "deviceHealthScript";
            DisplayName              = "Device remediation";
            EnforceSignatureCheck    = $False;
            Ensure                   = "Present";
            Id                       = '00000000-0000-0000-0000-000000000000'
            Publisher                = "Some Publisher";
            RemediationScriptContent = "Base64 encoded script content 2"; # Updated property
            RoleScopeTagIds          = @("0");
            RunAs32Bit               = $True;
            RunAsAccount             = "system";
            ApplicationId         = $ApplicationId;
            TenantId              = $TenantId;
            CertificateThumbprint = $CertificateThumbprint;
        }
    }
}

Example 3

This example removes a Device Remediation.

Configuration Example
{
    param(
        [Parameter()]
        [System.String]
        $ApplicationId,

        [Parameter()]
        [System.String]
        $TenantId,

        [Parameter()]
        [System.String]
        $CertificateThumbprint
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneDeviceRemediation 'ConfigureDeviceRemediation'
        {
            Id          = '00000000-0000-0000-0000-000000000000'
            DisplayName = 'Device remediation'
            Ensure      = 'Absent'
            ApplicationId         = $ApplicationId;
            TenantId              = $TenantId;
            CertificateThumbprint = $CertificateThumbprint;
        }
    }
}