From b40e4fe163f310c0d24b1f5306cec44fb8241a31 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 20 Mar 2024 11:52:09 +0000 Subject: [PATCH 001/273] Use Update-DeviceConfigurationPolicyAssignment instead --- ...IntuneDeviceCompliancePolicyWindows10.psm1 | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index ca8a3c3d06..fce2d3177b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -506,16 +506,10 @@ function Set-TargetResource -AdditionalProperties $AdditionalProperties ` -ScheduledActionsForRule $scheduledActionsForRule - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCAssignmentsAsHashtable -CIMAssignment $Assignment - - } - Update-M365DSCDeviceManagementPolicyAssignments -DeviceManagementPolicyId $policy.id ` + $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` -Targets $assignmentsHash ` - -Repository deviceCompliancePolicies - + -Repository 'deviceManagement/deviceCompliancePolicies' } elseif ($Ensure -eq 'Present' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') { @@ -534,15 +528,10 @@ function Set-TargetResource -Description $Description ` -DeviceCompliancePolicyId $configDevicePolicy.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCAssignmentsAsHashtable -CIMAssignment $Assignment - - } - Update-M365DSCDeviceManagementPolicyAssignments -DeviceManagementPolicyId $configDevicePolicy.id ` + $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` -Targets $assignmentsHash ` - -Repository deviceCompliancePolicies + -Repository 'deviceManagement/deviceCompliancePolicies' } elseif ($Ensure -eq 'Absent' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') { From f82912e447b0ad90aaea1246c27eb0cb4d0dfbfa Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 20 Mar 2024 11:52:56 +0000 Subject: [PATCH 002/273] These functions are not required anymore --- ...IntuneDeviceCompliancePolicyWindows10.psm1 | 124 ------------------ 1 file changed, 124 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index fce2d3177b..c9808a27ec 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -1028,127 +1028,3 @@ function Get-M365DSCAssignmentsAsHashtable } return $CIMAssignmentAsHash } -function Get-M365DSCDeviceManagementPolicyAssignments -{ - [CmdletBinding()] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementPolicyId, - - [Parameter()] - [ValidateSet('deviceCompliancePolicies', 'intents', 'configurationPolicies')] - [System.String] - $Repository = 'configurationPolicies' - ) - try - { - $deviceManagementPolicyAssignments = @() - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/$Repository/$DeviceManagementPolicyId/assignments" - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop - foreach ($result in $results.value.target) - { - $deviceManagementPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - - while ($results.'@odata.nextLink') - { - $Uri = $results.'@odata.nextLink' - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop - foreach ($result in $results.value.target) - { - $deviceManagementPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - } - return $deviceManagementPolicyAssignments - } - catch - { - New-M365DSCLogEntry -Message 'Error retrieving data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -function Update-M365DSCDeviceManagementPolicyAssignments -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementPolicyId, - - [Parameter()] - [Array] - $Targets, - - [Parameter()] - [ValidateSet('deviceCompliancePolicies', 'intents', 'configurationPolicies')] - [System.String] - $Repository = 'configurationPolicies' - ) - - try - { - $deviceManagementPolicyAssignments = @() - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/$Repository/$DeviceManagementPolicyId/assign" - - foreach ($target in $targets) - { - $formattedTarget = @{'@odata.type' = $target.dataType } - if ($target.groupId) - { - $formattedTarget.Add('groupId', $target.groupId) - } - if ($target.collectionId) - { - $formattedTarget.Add('collectionId', $target.collectionId) - } - if ($target.deviceAndAppManagementAssignmentFilterType) - { - $formattedTarget.Add('deviceAndAppManagementAssignmentFilterType', $target.deviceAndAppManagementAssignmentFilterType) - } - if ($target.deviceAndAppManagementAssignmentFilterId) - { - $formattedTarget.Add('deviceAndAppManagementAssignmentFilterId', $target.deviceAndAppManagementAssignmentFilterId) - } - $deviceManagementPolicyAssignments += @{'target' = $formattedTarget } - } - $body = @{'assignments' = $deviceManagementPolicyAssignments } | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -Export-ModuleMember -Function *-TargetResource, * From 2c0facc311a1c740704c34d57f0c58d51d2d8105 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Fri, 10 May 2024 09:59:16 +0100 Subject: [PATCH 003/273] Change permission to cope with getOmaSettingPlainTextValue --- .../settings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/settings.json index 4f57251847..59369d197b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/settings.json +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/settings.json @@ -9,7 +9,7 @@ "name": "Group.Read.All" }, { - "name": "DeviceManagementConfiguration.Read.All" + "name": "DeviceManagementConfiguration.ReadWrite.All" } ], "update": [ @@ -24,7 +24,7 @@ "name": "Group.Read.All" }, { - "name": "DeviceManagementConfiguration.Read.All" + "name": "DeviceManagementConfiguration.ReadWrite.All" } ], "update": [ From ddf5d53590108e2fdcae8ce3820e5d92ce66e3e9 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Fri, 10 May 2024 10:37:49 +0100 Subject: [PATCH 004/273] Update CHANGELOG.md --- CHANGELOG.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9088b8b25e..184e94586f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,11 +9,15 @@ FIXES [#4283](https://github.com/microsoft/Microsoft365DSC/issues/4283) * IntuneDeviceConfigurationCustomPolicyWindows10 * Fixed an issue where the payload of xml files was not encoded as base64. + * Change app and delegated permissions for reading to + DeviceManagementConfiguration.ReadWrite.All to cope with + getOmaSettingPlainTextValue which is only working if RW is granted + FIXES [#4412](https://github.com/microsoft/Microsoft365DSC/issues/4412) * IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10 - * Fixed a creation and update issue when the exported policy contains a + * Fixed a creation and update issue when the exported policy contains a onboarding blob and the tenant is connected to Defender for Endpoint Service. * M365DSCUtil - * Fixed an issue where one could not pass empty arrays to the + * Fixed an issue where one could not pass empty arrays to the `Compare-PSCustomObjectArrays` function. * DEPENDENCIES * Updated Microsoft.Graph to version 2.18.0. @@ -36,7 +40,7 @@ * Fixed an issue where the update policy setting was not handled properly. * IntuneDeviceConfigurationWiredNetworkPolicyWindows10 * Added functionality for specifying the certificates with a display name since their - ids in the blueprint might be from a different source tenant. + ids in the blueprint might be from a different source tenant. FIXES [#4582](https://github.com/microsoft/Microsoft365DSC/issues/4582) * MISC * Added support for AccessTokens in EXO resources. From 56638473e80e70ab6641becceba23ccf39b3fc69 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Fri, 10 May 2024 12:57:56 +0100 Subject: [PATCH 005/273] Fix QA tests --- Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 b/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 index 7a21fd4b45..0dcca6a880 100644 --- a/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 +++ b/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 @@ -84,6 +84,13 @@ Describe -Name 'Successfully validate all used permissions in Settings.json file ) } + if ($settings.ResourceName -eq 'IntuneDeviceConfigurationCustomPolicyWindows10') + { + $allowedPermissions = @( + 'DeviceManagementConfiguration.ReadWrite.All' + ) + } + foreach ($permission in $settings.permissions.graph.application.read) { $ObjectGuid = [System.Guid]::empty From 4e3428a3fad89962ff8dfd136e0f21556a4b193b Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Fri, 10 May 2024 13:11:51 +0100 Subject: [PATCH 006/273] Fix --- ...IntuneDeviceCompliancePolicyWindows10.psm1 | 136 +----------------- 1 file changed, 6 insertions(+), 130 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index 8fc780fe8b..5add8ab630 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -540,15 +540,13 @@ function Set-TargetResource -Description $Description ` -DeviceCompliancePolicyId $configDevicePolicy.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) + if ($Assignments.Count -gt 0) { - $assignmentsHash += Get-M365DSCAssignmentsAsHashtable -CIMAssignment $Assignment - + $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/deviceCompliancePolicies' } - Update-M365DSCDeviceManagementPolicyAssignments -DeviceManagementPolicyId $configDevicePolicy.id ` - -Targets $assignmentsHash ` - -Repository deviceCompliancePolicies } elseif ($Ensure -eq 'Absent' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') { @@ -1048,127 +1046,5 @@ function Get-M365DSCAssignmentsAsHashtable } return $CIMAssignmentAsHash } -function Get-M365DSCDeviceManagementPolicyAssignments -{ - [CmdletBinding()] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementPolicyId, - - [Parameter()] - [ValidateSet('deviceCompliancePolicies', 'intents', 'configurationPolicies')] - [System.String] - $Repository = 'configurationPolicies' - ) - try - { - $deviceManagementPolicyAssignments = @() - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/$Repository/$DeviceManagementPolicyId/assignments" - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop - foreach ($result in $results.value.target) - { - $deviceManagementPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - - while ($results.'@odata.nextLink') - { - $Uri = $results.'@odata.nextLink' - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop - foreach ($result in $results.value.target) - { - $deviceManagementPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - } - return $deviceManagementPolicyAssignments - } - catch - { - New-M365DSCLogEntry -Message 'Error retrieving data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -function Update-M365DSCDeviceManagementPolicyAssignments -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementPolicyId, - - [Parameter()] - [Array] - $Targets, - - [Parameter()] - [ValidateSet('deviceCompliancePolicies', 'intents', 'configurationPolicies')] - [System.String] - $Repository = 'configurationPolicies' - ) - - try - { - $deviceManagementPolicyAssignments = @() - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/$Repository/$DeviceManagementPolicyId/assign" - - foreach ($target in $targets) - { - $formattedTarget = @{'@odata.type' = $target.dataType } - if ($target.groupId) - { - $formattedTarget.Add('groupId', $target.groupId) - } - if ($target.collectionId) - { - $formattedTarget.Add('collectionId', $target.collectionId) - } - if ($target.deviceAndAppManagementAssignmentFilterType) - { - $formattedTarget.Add('deviceAndAppManagementAssignmentFilterType', $target.deviceAndAppManagementAssignmentFilterType) - } - if ($target.deviceAndAppManagementAssignmentFilterId) - { - $formattedTarget.Add('deviceAndAppManagementAssignmentFilterId', $target.deviceAndAppManagementAssignmentFilterId) - } - $deviceManagementPolicyAssignments += @{'target' = $formattedTarget } - } - $body = @{'assignments' = $deviceManagementPolicyAssignments } | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} -Export-ModuleMember -Function *-TargetResource, * +Export-ModuleMember -Function *-TargetResource From 50f4b4fed2db33fb79f5a6955082ae158b146aee Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 7 Jun 2024 03:35:20 +0200 Subject: [PATCH 007/273] Update settings catalog property comparison and fetch --- .../Modules/M365DSCDRGUtil.psm1 | 209 +++++------------- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 11 +- 2 files changed, 70 insertions(+), 150 deletions(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 412350e301..df57d1bd6a 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -906,8 +906,6 @@ function Get-SettingCatalogSettingValue return $complexValue } - - function Get-SettingCatalogPolicySettingsFromTemplate { [CmdletBinding()] @@ -1006,128 +1004,6 @@ function Get-SettingCatalogPolicySettingsFromTemplate return $settings } -function New-IntuneSettingCatalogPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - - [Parameter(Mandatory = $true)] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - ) - - try - { - $Uri = '/beta/deviceManagement/configurationPolicies' - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -function Update-IntuneSettingCatalogPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = $true)] - [System.String] - $DeviceConfigurationPolicyId, - - [Parameter()] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - ) - - try - { - $Uri = "/beta/deviceManagement/configurationPolicies/$DeviceConfigurationPolicyId" - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'technologies' = $Technologies - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} function ConvertFrom-IntunePolicyAssignment { [CmdletBinding()] @@ -1320,6 +1196,7 @@ function Compare-M365DSCIntunePolicyAssignment return $testResult } + function Update-DeviceConfigurationPolicyAssignment { [CmdletBinding()] @@ -1523,7 +1400,6 @@ function Get-IntuneSettingCatalogPolicySetting } $settingName = $settingInstanceTemplate.SettingDefinitionId.split('_') | Select-Object -Last 1 $settingType = $settingInstanceTemplate.AdditionalProperties.'@odata.type'.Replace('InstanceTemplate', 'Instance') - $settingInstance.Add('settingDefinitionId', $settingInstanceTemplate.settingDefinitionId) $settingInstance.Add('@odata.type', $settingType) if (-not [string]::IsNullOrEmpty($settingInstanceTemplate.settingInstanceTemplateId)) { @@ -1546,9 +1422,14 @@ function Get-IntuneSettingCatalogPolicySetting -SettingValueName $settingValueName ` -SettingValueType $settingValueType ` -SettingValueTemplateId $settingValueTemplateId + if ($settingValue.Count -gt 0) { $settingInstance += [Hashtable]$settingValue + if ($settingInstance.Keys -notcontains 'settingDefinitionId') + { + $settingInstance.Add('settingDefinitionId', $settingInstanceTemplate.settingDefinitionId) + } $settingInstances += @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' 'settingInstance' = $settingInstance @@ -1625,11 +1506,14 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue -SettingName $childSettingName ` -SettingType $childDefinition.AdditionalProperties.'@odata.type' ` -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType ` + -SettingValueType $childSettingValueType if ($null -ne $childSettingValue) { - $childSettingValue.Add('settingDefinitionId', $childDefinition.Id) + if ($childSettingValue.Keys -notcontains 'settingDefinitionId') + { + $childSettingValue.Add('settingDefinitionId', $childDefinition.Id) + } $childSettingValue.Add('@odata.type', $childSettingType) $groupSettingCollectionValueChildren += $childSettingValue } @@ -1655,7 +1539,7 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue $childSettingType = $childDefinition.AdditionalProperties.'@odata.type'.Replace('Definition', 'Instance') $childSettingValueName = $childSettingType.Replace('#microsoft.graph.deviceManagementConfiguration', '').Replace('Instance', 'Value') $childSettingValueType = "#microsoft.graph.deviceManagementConfiguration$($childSettingValueName)" - $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.length - 1 ) + $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.Length - 1 ) $childSettingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` -DSCParams $DSCParams ` -SettingDefinition $childDefinition ` @@ -1663,30 +1547,44 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue -SettingName $childSettingName ` -SettingType $childDefinition.AdditionalProperties.'@odata.type' ` -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType ` + -SettingValueType $childSettingValueType if ($childSettingValue.Keys.Count -gt 0) { - $childSettingValue.Add('settingDefinitionId', $childDefinition.Id) - $childSettingValue.Add('@odata.type', $childSettingValueType) + if ($childSettingValue.Keys -notcontains 'settingDefinitionId') + { + $childSettingValue.Add('settingDefinitionId', $childDefinition.Id) + } + $childSettingValue.Add('@odata.type', $childSettingType) $choiceSettingValueChildren += $childSettingValue } } if ($choiceSettingDefinitionChildren.Count -gt 0) { $choiceSettingValue.Add('children', $choiceSettingValueChildren) + } else { + $choiceSettingValue.Add('children', @()) } - if ($null -ne $DSCParams[$SettingName]) + + $paramKey = $null + $paramKey = $DSCParams.Keys | Where-Object { $_ -eq $SettingName } + if ($null -eq $paramKey) { - $value = "$($SettingDefinition.Id)_$($DSCParams[$SettingName])" + $paramKey = $SettingName + } + + if ($null -ne $DSCParams[$paramKey]) + { + $value = "$($SettingDefinition.Id)_$($DSCParams[$paramKey])" $choiceSettingValue.Add('value', $value) - $choiceSettingValue.Add('@odata.type', $SettingType.Replace('Instance', 'Value')) - if (-Not [string]::IsNullOrEmpty($SettingValueTemplateId)) + $odataType = $SettingType.Replace('Definition', 'Value').Replace('Instance', 'Value') + $choiceSettingValue.Add('@odata.type', $odataType) + if (-not [string]::IsNullOrEmpty($SettingValueTemplateId)) { $choiceSettingValue.Add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) } } - if ($choiceSettingValue.Keys.Count -gt 0) + if ($choiceSettingValue.Children.Count -gt 0 -or $null -ne $choiceSettingValue.value) { $settingValuesToReturn.Add('choiceSettingValue', $choiceSettingValue) } @@ -1713,7 +1611,7 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue $matchCombined = $true } } - + if (-not $matchCombined) { # Parent was not combined, look for the id @@ -1737,11 +1635,11 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue { $settingValueCollection += @{ value = $v - '@odata.type' = $settingValueType + '@odata.type' = $SettingValueType } } if ($settingValueCollection.Count -gt 0) { - $settingValuesToReturn.Add($settingValueName, $settingValueCollection) + $settingValuesToReturn.Add($SettingValueName, $settingValueCollection) } } Default @@ -1767,7 +1665,7 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue $matchCombined = $true } } - + if (-not $matchCombined) { # Parent was not combined, look for the id @@ -1776,12 +1674,24 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue { $global:excludedDefinitionIds += $_.Id $matchesId = $true + $SettingDefinition = $_ } } } } if (($name.Count -eq 1 -and $SettingName -eq $key) -or $matchCombined -or $matchesId) { + if ($SettingValueType -like "*Simple*") + { + if ($DSCParams[$key] -is [System.String]) + { + $SettingValueType = "#microsoft.graph.deviceManagementConfigurationStringSettingValue" + } + elseif ($DSCParams[$key] -is [System.Int32]) + { + $SettingValueType = "#microsoft.graph.deviceManagementConfigurationIntegerSettingValue" + } + } if ($SettingValueType -like "*Simple*" -or $SettingValueType -in @("#microsoft.graph.deviceManagementConfigurationIntegerSettingValue", "#microsoft.graph.deviceManagementConfigurationStringSettingValue")) { $value = $DSCParams[$key] @@ -1800,17 +1710,18 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue } $settingValue = @{} - if (-Not [string]::IsNullOrEmpty($settingValueType)) + if (-not [string]::IsNullOrEmpty($SettingValueType)) { - $settingValue.Add('@odata.type', $settingValueType) + $settingValue.Add('@odata.type', $SettingValueType) } - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) + if (-not [string]::IsNullOrEmpty($settingValueTemplateId)) { $settingValue.Add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) } $settingValue.Add('value', $value) - $settingValuesToReturn.Add($settingValueName, $settingValue) + $settingValuesToReturn.Add($SettingValueName, $settingValue) + $settingValuesToReturn.Add('settingDefinitionId', $SettingDefinition.Id) } } return $settingValuesToReturn @@ -1861,10 +1772,10 @@ function Export-IntuneSettingCatalogPolicySettings $addToParameters = $true $settingDefinition = $SettingDefinitions | Where-Object -FilterScript { $_.Id -eq $SettingInstance.settingDefinitionId } - $settingName = $settingDefinition | Select-Object -ExpandProperty Name - + $settingName = $settingDefinition.Name + # Check if the name is unique - $settingMatches = $SettingDefinitions | Where-Object -FilterScript { $_.Name -eq $settingName } + $settingMatches = @($SettingDefinitions | Where-Object -FilterScript { $_.Name -eq $settingName }) if ($settingMatches.Count -gt 1) { if ($settingDefinition.AdditionalProperties.dependentOn.parentSettingId.Count -gt 0) @@ -1888,7 +1799,7 @@ function Export-IntuneSettingCatalogPolicySettings $settingName = $($parentSetting.Name) + "_" + $settingName } # If the combination of parent setting and setting name is still not unique, grab the last part of the setting id - else + else { $parentSettingIdProperty = $parentSetting.Id.Split('_')[-1] $parentSettingIdWithoutProperty = $parentSetting.Id.Replace("_$parentSettingIdProperty", "") @@ -2007,4 +1918,4 @@ function Update-IntuneDeviceConfigurationPolicy return $null } -} \ No newline at end of file +} diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index c87282c1d5..a29b8317c8 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -649,7 +649,16 @@ function Test-M365DSCParameterState if ($CheckDesiredValue) { - $desiredType = $DesiredValues.$_.GetType() + $desiredValue = $DesiredValues.$_ + if ($null -eq $desiredValue) + { + $desiredType = $CurrentValues.$_.GetType() + } + else + { + $desiredType = $DesiredValues.$_.GetType() + } + $fieldName = $_ if ($desiredType.IsArray -eq $true) { From 06918f3ee2a5db8e424e41cb9f67a0579c599a4f Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 7 Jun 2024 03:35:42 +0200 Subject: [PATCH 008/273] Migrate Intune LAPS policy to new Settings Catalog Cmdlets --- CHANGELOG.md | 9 + ...alAdministratorPasswordSolutionPolicy.psm1 | 792 ++++-------------- ...nistratorPasswordSolutionPolicy.schema.mof | 4 +- ...inistratorPasswordSolutionPolicy.Tests.ps1 | 192 +++-- 4 files changed, 291 insertions(+), 706 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 734102a4d7..f5c4cf873c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy + * Migrate to new settings catalog cmdlets +* M365DSCDRGUtil + * Fixes an issue with the settings catalog property generation +* M365DSCUtil + * Fixes an issue where the comparison with null-valued desired value throws an error + # 1.24.605.1 * AADAuthenticationFlowPolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index 12d2a7fbf2..c312d913ef 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -32,7 +32,8 @@ function Get-TargetResource $PasswordAgeDays, [Parameter()] - [System.Boolean] + [ValidateSet('true', 'false')] + [System.String] $PasswordExpirationProtectionEnabled, [Parameter()] @@ -41,7 +42,8 @@ function Get-TargetResource $AdEncryptedPasswordHistorySize, [Parameter()] - [System.Boolean] + [ValidateSet('true', 'false')] + [System.String] $AdPasswordEncryptionEnabled, [Parameter()] @@ -110,141 +112,73 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Checking for the Intune Account Protection LAPS Policy {$DisplayName}" + try + { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters ` - -ErrorAction Stop + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters ` + -ErrorAction Stop - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies - #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' - $CommandName = $MyInvocation.MyCommand - $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` - -CommandName $CommandName ` - -Parameters $PSBoundParameters - Add-M365DSCTelemetryEvent -Data $data - #endregion + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion - $nullResult = $PSBoundParameters - $nullResult.Ensure = 'Absent' + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' - try - { - #Retrieve policy general settings - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ExpandProperty settings -ErrorAction SilentlyContinue + $templateReferenceId = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1' + + # Retrieve policy general settings + $policy = $null + $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction SilentlyContinue if ($null -eq $policy) { - Write-Verbose -Message "No Account Protection LAPS Policy {id: '$Identity'} was found" - $policyTemplateID = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1' - $filter = "name eq '$DisplayName' and templateReference/TemplateId eq '$policyTemplateID'" - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -Filter $filter -ErrorAction SilentlyContinue + Write-Verbose -Message "No Account Protection LAPS Policy with Id {$Identity} was found" - if(([array]$policy).count -gt 1) + if (-not [System.String]::IsNullOrEmpty($DisplayName)) { - throw "A policy with a duplicated displayName {'$DisplayName'} was found - Ensure displayName is unique" + $policy = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName' and templateReference/TemplateId eq '$templateReferenceId'" ` + -ErrorAction SilentlyContinue } - - if ($null -eq $policy) - { - Write-Verbose -Message "No Account Protection LAPS Policy {displayName: '$DisplayName'} was found" - return $nullResult - } - - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $policy.Id -ExpandProperty settings -ErrorAction SilentlyContinue } + if ($null -eq $policy) + { + Write-Verbose -Message "No Account Protection LAPS Policy with Name {$DisplayName} was found" + return $nullResult + } $Identity = $policy.Id + Write-Verbose "Found Account Protection LAPS Policy with Id {$Identity} and Name {$($policy.Name)}" - Write-Verbose -Message "Found Account Protection LAPS Policy {$($policy.id):$($policy.Name)}" - [array]$settings = $policy.settings + [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` + -DeviceManagementConfigurationPolicyId $Identity ` + -ExpandProperty 'settingDefinitions' ` + -ErrorAction Stop $returnHashtable = @{} $returnHashtable.Add('Identity', $Identity) - $returnHashtable.Add('DisplayName', $policy.name) - $returnHashtable.Add('Description', $policy.description) - - foreach ($setting in $settings.SettingInstance) - { - $addToParameters = $true - $settingName = $setting.settingDefinitionId.Split('_') | Select-Object -Last 1 - $replaceUri = $setting.settingDefinitionId.Replace($settingName, '') + $returnHashtable.Add('DisplayName', $policy.Name) + $returnHashtable.Add('Description', $policy.Description) - $settingType = $setting.AdditionalProperties.'@odata.type' - $settingValueName = $settingType.replace('#microsoft.graph.deviceManagementConfiguration', '').replace('Instance', 'Value') - $settingValueName = $settingValueName.Substring(0, 1).ToLower() + $settingValueName.Substring(1, $settingValueName.length - 1 ) + $returnHashtable = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $returnHashtable - switch ($settingType) - { - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' - { - $settingValue = $setting.AdditionalProperties.simpleSettingValue.value - } - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - { - $settingValue = $setting.AdditionalProperties.choiceSettingValue.value.split('_') | Select-Object -Last 1 - } - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.groupSettingCollectionValue.children) - { - $settingName = $value.settingDefinitionId.split('_') | Select-Object -Last 1 - $settingValue = $value.choiceSettingValue.value.split('_') | Select-Object -Last 1 - $returnHashtable.Add($settingName, $settingValue) - $addToParameters = $false - } - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.simpleSettingCollectionValue.value) - { - $values += $value - } - $settingValue = $values - } - Default - { - $settingValue = $setting.value - } - } - - foreach ($childSetting in $setting.AdditionalProperties.$settingValueName.children) - { - $childSettingName = $childSetting.settingDefinitionId.Replace($replaceUri, '') - $childSettingType = $childSetting.'@odata.type'.Replace('#microsoft.graph.deviceManagementConfiguration', '').Replace('Instance', 'Value') - $childSettingType = $childSettingType.Substring(0, 1).ToLower() + $childSettingType.Substring(1, $childSettingType.length - 1 ) - $childSettingValue = $childSetting.$childSettingType.value - - if ($childSettingType -eq 'choiceSettingValue') - { - $childSettingValue = $childSettingValue.split('_') | Select-Object -Last 1 - } - $returnHashtable.Add($childSettingName, $childSettingValue) - } - - if ($addToParameters) - { - $returnHashtable.Add($settingName, $settingValue) - } - - } - $returnAssignments = @() - $graphAssignments = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id - if ($graphAssignments.count -gt 0) + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id + $assignmentResult = @() + if ($assignmentsValues.Count -gt 0) { - $returnAssignments += ConvertFrom-IntunePolicyAssignment ` - -IncludeDeviceFilter:$true ` - -Assignments ($graphAssignments) + $assignmentResult += ConvertFrom-IntunePolicyAssignment -IncludeDeviceFilter $true -Assignments $assignmentsValues } - $returnHashtable.Add('Assignments', $returnAssignments) - - - Write-Verbose -Message "Found Account Protection LAPS Policy {$($policy.name)}" + $returnHashtable.Add('Assignments', $assignmentResult) $returnHashtable.Add('Ensure', 'Present') $returnHashtable.Add('Credential', $Credential) @@ -303,7 +237,8 @@ function Set-TargetResource $PasswordAgeDays, [Parameter()] - [System.Boolean] + [ValidateSet('true', 'false')] + [System.String] $PasswordExpirationProtectionEnabled, [Parameter()] @@ -312,7 +247,8 @@ function Set-TargetResource $AdEncryptedPasswordHistorySize, [Parameter()] - [System.Boolean] + [ValidateSet('true', 'false')] + [System.String] $AdPasswordEncryptionEnabled, [Parameter()] @@ -394,14 +330,8 @@ function Set-TargetResource #endregion $currentPolicy = Get-TargetResource @PSBoundParameters - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null - $PSBoundParameters.Remove('ManagedIdentity') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters $templateReferenceId = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1' $platforms = 'windows10' @@ -410,49 +340,66 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') { Write-Verbose -Message "Creating new Account Protection LAPS Policy {$DisplayName}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null $settings = Get-IntuneSettingCatalogPolicySetting ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` -TemplateId $templateReferenceId $createParameters = @{ Name = $DisplayName Description = $Description - TemplateReference = @{templateId = $templateReferenceId } + TemplateReference = @{ templateId = $templateReferenceId } Platforms = $platforms Technologies = $technologies Settings = $settings } - $newPolicy = New-MgBetaDeviceManagementConfigurationPolicy -bodyParameter $createParameters + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters + $assignmentsHash = @() + foreach ($assignment in $Assignments) + { + $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment + } - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments - Update-DeviceConfigurationPolicyAssignment ` - -DeviceConfigurationPolicyId $newPolicy.Id ` - -Targets $assignmentsHash + if ($policy.Id) + { + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + } } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Present') { Write-Verbose -Message "Updating existing Account Protection LAPS Policy {$($currentPolicy.DisplayName)}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null #format settings from PSBoundParameters for update $settings = Get-IntuneSettingCatalogPolicySetting ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` -TemplateId $templateReferenceId - Update-DeviceManagementConfigurationPolicy ` - -DeviceManagementConfigurationPolicyId $currentPolicy.Identity ` - -DisplayName $DisplayName ` + Update-IntuneDeviceConfigurationPolicy ` + -DeviceConfigurationPolicyId $currentPolicy.Identity ` + -Name $DisplayName ` -Description $Description ` - -TemplateReference $templateReferenceId ` + -TemplateReferenceId $templateReferenceId ` -Platforms $platforms ` -Technologies $technologies ` -Settings $settings #region update policy assignments - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = @() + foreach ($assignment in $Assignments) + { + $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + } Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` - -Targets $assignmentsHash + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' #endregion } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') @@ -496,7 +443,8 @@ function Test-TargetResource $PasswordAgeDays, [Parameter()] - [System.Boolean] + [ValidateSet('true', 'false')] + [System.String] $PasswordExpirationProtectionEnabled, [Parameter()] @@ -505,7 +453,8 @@ function Test-TargetResource $AdEncryptedPasswordHistorySize, [Parameter()] - [System.Boolean] + [ValidateSet('true', 'false')] + [System.String] $AdPasswordEncryptionEnabled, [Parameter()] @@ -588,41 +537,76 @@ function Test-TargetResource Write-Verbose -Message "Testing configuration of Account Protection LAPS Policy {$DisplayName}" $CurrentValues = Get-TargetResource @PSBoundParameters - if (-not (Test-M365DSCAuthenticationParameter -BoundParameters $CurrentValues)) - { - Write-Verbose "An error occured in Get-TargetResource, the policy {$displayName} will not be processed" - throw "An error occured in Get-TargetResource, the policy {$displayName} will not be processed. Refer to the event viewer logs for more information." + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } } - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - $ValuesToCheck = ([hashtable]$PSBoundParameters).clone() - $ValuesToCheck.Remove('Identity') | Out-Null - - $testResult = $true if ($CurrentValues.Ensure -ne $Ensure) { Write-Verbose -Message "Test-TargetResource returned $false" return $false } + $testResult = $true #Compare Cim instances - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $PSBoundParameters.Assignments - $target = $CurrentValues.Assignments - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - $ValuesToCheck.Remove('Assignments') | Out-Null + foreach ($key in $PSBoundParameters.Keys) + { + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') + { + $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source + + if ($key -eq "Assignments") + { + $testResult = Compare-M365DSCIntunePolicyAssignment ` + -Source $source ` + -Target $target + } + else + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + } + + if (-not $testResult) + { + break + } + + $ValuesToCheck.Remove($key) | Out-Null + } + } + + $ValuesToCheck.Remove('Identity') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" if ($testResult) { - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` -ValuesToCheck $ValuesToCheck.Keys } - Write-Verbose -Message "Test-TargetResource returned $TestResult" + Write-Verbose -Message "Test-TargetResource returned $testResult" - return $TestResult + return $testResult } function Export-TargetResource @@ -703,7 +687,7 @@ function Export-TargetResource Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ - Identity = $policy.id + Identity = $policy.Id DisplayName = $policy.Name Ensure = 'Present' Credential = $Credential @@ -711,53 +695,44 @@ function Export-TargetResource TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } $Results = Get-TargetResource @params - if (-not (Test-M365DSCAuthenticationParameter -BoundParameters $Results)) - { - Write-Verbose "An error occured in Get-TargetResource, the policy {$($params.displayName)} will not be processed" - throw "An error occured in Get-TargetResource, the policy {$($params.displayName)} will not be processed. Refer to the event viewer logs for more information." - } - if ($Results.Ensure -eq 'Present') - { - $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` - -Results $Results + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results - if ($Results.Assignments) + if ($Results.Assignments) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments + if ($complexTypeStringResult) { - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) ` - -CIMInstanceName IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments - if ($complexTypeStringResult) - { - $Results.Assignments = $complexTypeStringResult - } - else - { - $Results.Remove('Assignments') | Out-Null - } + $Results.Assignments = $complexTypeStringResult } - - $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` - -ConnectionMode $ConnectionMode ` - -ModulePath $PSScriptRoot ` - -Results $Results ` - -Credential $Credential - - if ($Results.Assignments) + else { - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$true + $Results.Remove('Assignments') | Out-Null } + } - $dscContent += $currentDSCBlock - Save-M365DSCPartialExport -Content $currentDSCBlock ` - -FileName $Global:PartialExportFileName + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential - Write-Host $Global:M365DSCEmojiGreenCheckMark - $i++ + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$true } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + + Write-Host $Global:M365DSCEmojiGreenCheckMark + $i++ } return $dscContent } @@ -784,433 +759,4 @@ function Export-TargetResource } } -function Get-IntuneSettingCatalogPolicySetting -{ - [CmdletBinding()] - [OutputType([System.Array])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - [Parameter(Mandatory = 'true')] - [System.String] - $TemplateId - ) - - $DSCParams.Remove('Identity') | Out-Null - $DSCParams.Remove('DisplayName') | Out-Null - $DSCParams.Remove('Description') | Out-Null - - #Prepare setting definitions mapping - $settingDefinitions = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $TemplateId -ExpandProperty settingDefinitions - $settingInstances = @() - foreach ($settingDefinition in $settingDefinitions.SettingInstanceTemplate) - { - - $settingInstance = @{} - $settingName = $settingDefinition.SettingDefinitionId.split('_') | Select-Object -Last 1 - $settingType = $settingDefinition.AdditionalProperties.'@odata.type'.replace('InstanceTemplate', 'Instance') - $settingInstance.Add('settingDefinitionId', $settingDefinition.settingDefinitionId) - $settingInstance.Add('@odata.type', $settingType) - if (-Not [string]::IsNullOrEmpty($settingDefinition.settingInstanceTemplateId)) - { - $settingInstance.Add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $settingDefinition.settingInstanceTemplateId }) - } - $settingValueName = $settingType.replace('#microsoft.graph.deviceManagementConfiguration', '').replace('Instance', 'Value') - $settingValueName = $settingValueName.Substring(0, 1).ToLower() + $settingValueName.Substring(1, $settingValueName.length - 1 ) - $settingValueType = $settingDefinition.AdditionalProperties."$($settingValueName)Template".'@odata.type' - if ($null -ne $settingValueType) - { - $settingValueType = $settingValueType.replace('ValueTemplate', 'Value') - } - $settingValueTemplateId = $settingDefinition.AdditionalProperties."$($settingValueName)Template".settingValueTemplateId - $settingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` - -DSCParams $DSCParams ` - -SettingDefinition $settingDefinition ` - -SettingName $settingName ` - -SettingType $settingType ` - -SettingValueName $settingValueName ` - -SettingValueType $settingValueType ` - -SettingValueTemplateId $settingValueTemplateId - - if ($null -ne $settingValue) { - - if ($settingType -ne '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance') - { - $settingValue.$settingValueName.Add('children', @()) - - foreach ($childSettingDefinition in ($settingDefinitions.SettingDefinitions | Where-Object { $_.RootDefinitionId -eq $settingInstance.settingDefinitionId })) - { - if ($childSettingDefinition.Id -eq $settingDefinition.SettingDefinitionId) - { - # We have already covered that setting through the settingInstanceTemplate - Continue - } - - $key = $DSCParams.Keys | Where-Object { $_.ToLower() -eq $settingName } - $dscValue = $DSCParams[$key] - - if ($childSettingDefinition.AdditionalProperties.dependentOn.dependentOn -ne ($settingDefinition.SettingDefinitionId + '_' + $dscValue)) - { - if ($childSettingDefinition.AdditionalProperties.options.dependentOn.dependentOn -notContains ($settingDefinition.SettingDefinitionId + '_' + $dscValue)) - { - # This setting is not dependent on the current setting value - Continue - } - } - $childSettingUri = ($childSettingDefinition.BaseUri + $childSettingDefinition.OffsetUri).Replace('/', '_').Replace('._', '').ToLower() - $replaceUri = $childSettingUri.Replace($childSettingUri.Split('_')[-1], '') - - $childSettingInstance = @{} - $childSettingName = $childSettingDefinition.Id.Replace($replaceUri, '') - $childSettingType = $childSettingDefinition.AdditionalProperties.'@odata.type'.replace('Definition', 'Instance') - $childSettingInstance.Add('settingDefinitionId', $childSettingDefinition.Id) - $childSettingInstance.Add('@odata.type', $childSettingType) - $childSettingValueName = $childSettingType.replace('#microsoft.graph.deviceManagementConfiguration', '').replace('Instance', 'Value') - $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.length - 1 ) - if ($null -ne $childSettingDefinition.AdditionalProperties.valueDefinition) - { - $childSettingValueType = $childSettingDefinition.AdditionalProperties.valueDefinition.'@odata.type'.Replace('ValueDefinition', 'Value') - } - else - { - $childSettingValueType = $childSettingType.Replace('Instance', 'Value') - } - $childSettingValue = Get-IntuneSettingCatalogPolicySettingDefinitionValue ` - -DSCParams $DSCParams ` - -SettingDefinition $childSettingDefinition ` - -SettingName $childSettingName ` - -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType ` - - if ($null -ne $childSettingValue) - { - $childSettingInstance += ($childSettingValue) - $settingValue.$settingValueName.children += $childSettingInstance - } - } - } - - $settingInstance += ($settingValue) - $settingInstances += @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' - 'settingInstance' = $settingInstance - } - } else { - Continue - } - } - - return $settingInstances -} - -function Get-IntuneSettingCatalogPolicySettingInstanceValue -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $SettingDefinition, - - [Parameter()] - [System.String] - $SettingType, - - [Parameter()] - [System.String] - $SettingName, - - [Parameter()] - [System.String] - $SettingValueName, - - [Parameter()] - [System.String] - $SettingValueType, - - [Parameter()] - [System.String] - $SettingValueTemplateId - ) - - $settingValueReturn = @{} - switch ($settingType) - { - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $groupSettingCollectionValue = @{} - $groupSettingCollectionValueChildren = @() - - $groupSettingCollectionDefinitionChildren = $SettingDefinition.AdditionalProperties.groupSettingCollectionValueTemplate.children - foreach ($childDefinition in $groupSettingCollectionDefinitionChildren) - { - $childSettingName = $childDefinition.settingDefinitionId.split('_') | Select-Object -Last 1 - $childSettingType = $childDefinition.'@odata.type'.replace('InstanceTemplate', 'Instance') - $childSettingValueName = $childSettingType.replace('#microsoft.graph.deviceManagementConfiguration', '').replace('Instance', 'Value') - $childSettingValueType = "#microsoft.graph.deviceManagementConfiguration$($childSettingValueName)" - $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.length - 1 ) - $childSettingValueTemplateId = $childDefinition.$childSettingValueName.settingValueTemplateId - $childSettingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` - -DSCParams $DSCParams ` - -SettingDefinition $childDefinition ` - -SettingName $childSettingName ` - -SettingType $childDefinition.'@odata.type' ` - -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType ` - -SettingValueTemplateId $childSettingValueTemplateId - - if ($null -ne $childSettingValue) - { - $childSettingValue.add('settingDefinitionId', $childDefinition.settingDefinitionId) - $childSettingValue.add('@odata.type', $childSettingType ) - $groupSettingCollectionValueChildren += $childSettingValue - } - } - $groupSettingCollectionValue.add('children', $groupSettingCollectionValueChildren) - $settingValueReturn.Add('groupSettingCollectionValue', @($groupSettingCollectionValue)) - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ( $key in $DSCParams.Keys) - { - if ($settingName -eq ($key.ToLower())) - { - $values = $DSCParams[$key] - break - } - } - $settingValueCollection = @() - foreach ($v in $values) - { - $settingValueCollection += @{ - value = $v - '@odata.type' = $settingValueType - } - } - $settingValueReturn.Add($settingValueName, $settingValueCollection) - } - Default - { - $value = $null - foreach ( $key in $DSCParams.Keys) - { - if ($settingName -eq ($key.ToLower())) - { - if ($settingValueType -eq '#microsoft.graph.deviceManagementConfigurationBooleanSettingValue') - { - $value = [bool]::Parse($DSCParams[$key]) - } - elseif ($settingValueType -eq '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue') - { - $value = [int]::Parse($DSCParams[$key]) - } - elseif ($settingValueType -eq '#microsoft.graph.deviceManagementConfigurationStringSettingValue') - { - $value = $DSCParams[$key] - } - else { - $value = "$($SettingDefinition.settingDefinitionId)_$($DSCParams[$key])" - } - break - } - } - $settingValue = @{} - - if (-not [string]::IsNullOrEmpty($settingValueType)) - { - $settingValue.Add('@odata.type', $settingValueType) - } - if (-not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $settingValue.Add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) - } - - if ($null -eq $value) - { - # Use the default value if exists - $value = $SettingDefinition.$SettingValueName.defaultValue - if ($null -eq $value) - { - return $null - } - } - $settingValue.Add('value', $value) - $settingValueReturn.Add($settingValueName, $settingValue) - } - } - return $settingValueReturn -} - -function Get-IntuneSettingCatalogPolicySettingDefinitionValue -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $SettingDefinition, - - [Parameter()] - [System.String] - $SettingName, - - [Parameter()] - [System.String] - $SettingValueName, - - [Parameter()] - [System.String] - $SettingValueType - ) - - $settingValueReturn = @{} - $key = $DSCParams.Keys | Where-Object { $_.ToLower() -eq $SettingName } - if ($null -ne $key) - { - $value = $DSCParams[$key] - } - else - { - # Use default value if exists - if ($null -ne $SettingDefinition.AdditionalProperties.defaultValue) - { - $value = $SettingDefinition.AdditionalProperties.defaultValue.value - } - elseif ($null -ne $SettingDefinition.AdditionalProperties.defaultOptionId) - { - $value = $SettingDefinition.AdditionalProperties.defaultOptionId - } - } - - $settingValue = @{} - if (-Not [string]::IsNullOrEmpty($settingValueType)) - { - $settingValue.add('@odata.type', $settingValueType) - } - if ($null -eq $value) - { - return $null - } - $settingValue.add('value', $value) - $settingValueReturn.Add($settingValueName, $settingValue) - - return $settingValueReturn -} - -function Update-DeviceManagementConfigurationPolicy -{ - [CmdletBinding()] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementConfigurationPolicyId, - - [Parameter(Mandatory = 'true')] - [System.String] - $DisplayName, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.Array] - $Settings - ) - - $templateReference = @{ - 'templateId' = $TemplateReferenceId - } - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/ConfigurationPolicies/$DeviceManagementConfigurationPolicyId" - $policy = [ordered]@{ - 'name' = $DisplayName - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = $templateReference - 'settings' = $Settings - } - Invoke-MgGraphRequest -Method PUT ` - -Uri $Uri ` - -ContentType 'application/json' ` - -Body ($policy | ConvertTo-Json -Depth 20) 4> out-null -} - -function Get-DeviceManagementConfigurationPolicyAssignment -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementConfigurationPolicyId - ) - - try - { - $configurationPolicyAssignments = @() - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceManagementConfigurationPolicyId/assignments" - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> out-null - foreach ($result in $results.value.target) - { - $configurationPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - - while ($results.'@odata.nextLink') - { - $Uri = $results.'@odata.nextLink' - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> out-null - foreach ($result in $results.value.target) - { - $configurationPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - } - return $configurationPolicyAssignments - } - catch - { - New-M365DSCLogEntry -Message 'Error retrieving data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof index 4a8235bf89..0c7a470ab6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof @@ -19,9 +19,9 @@ class MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy : OMI [Write, Description("Configures which directory the local admin account password is backed up to. 0 - Disabled, 1 - Azure AD, 2 - AD"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] UInt32 BackupDirectory; [Write, Description("Configures the maximum password age of the managed local administrator account for Azure AD. Minimum - 7, Maximum - 365")] UInt32 PasswordAgeDays_AAD; [Write, Description("Configures the maximum password age of the managed local administrator account for Active Directory. Minimum - 1, Maximum - 365")] UInt32 PasswordAgeDays; - [Write, Description("Configures additional enforcement of maximum password age for the managed local administrator account.")] Boolean PasswordExpirationProtectionEnabled; + [Write, Description("Configures additional enforcement of maximum password age for the managed local administrator account."), ValueMap{"true", "false"}, Values{"true", "false"}] String PasswordExpirationProtectionEnabled; [Write, Description("Configures how many previous encrypted passwords will be remembered in Active Directory. Minimum - 0, Maximum - 12")] UInt32 AdEncryptedPasswordHistorySize; - [Write, Description("Configures whether the password is encrypted before being stored in Active Directory.")] Boolean AdPasswordEncryptionEnabled; + [Write, Description("Configures whether the password is encrypted before being stored in Active Directory."), ValueMap{"true", "false"}, Values{"true", "false"}] String AdPasswordEncryptionEnabled; [Write, Description("Configures the name or SID of a user or group that can decrypt the password stored in Active Directory.")] String AdPasswordEncryptionPrincipal; [Write, Description("Configures the name of the managed local administrator account.")] String AdministratorAccountName; [Write, Description("Configures the password complexity of the managed local administrator account. 1 - Large letters, 2 - Large + small letters, 3 - Large + small letters + numbers, 4 - Large + small letters + numbers + special characters"), ValueMap{"1", "2", "3", "4"}, Values{"1", "2", "3", "4"}] UInt32 PasswordComplexity; diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 index 8a5bc91381..db58ed7c91 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 @@ -44,35 +44,29 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -MockWith { } - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyTemplate -MockWith { - return @{ - TemplateId = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1' - } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { + } + + Mock -CommandName Get-IntuneSettingCatalogPolicySetting -MockWith { } - Mock -CommandName Get-DeviceManagementConfigurationPolicyAssignment -MockWith { + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return ,@() + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { return @(@{ dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' collectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' }) } + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { } - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -MockWith { - return @({ - Id = '1' - SettingDefinitions = @( - Id = 'device_vendor_msft_laps_policies_backupdirectory' - ) - SettingInstanceTemplate = @{ - settingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' - settingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstanceTemplate' - } - } - }) - } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { return @(@{ Id = '12345-12345-12345-12345-12345' @@ -95,7 +89,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } $Script:exportedInstances =$null $Script:ExportMode = $false - } # Test contexts @@ -157,29 +150,36 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' Description = 'My Test Description' Name = 'My Test' - Settings = @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_laps_policies_backupdirectory' + Name = 'BackupDirectory' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - choiceSettingValue = @{ - children = @() - value = "device_vendor_msft_laps_policies_backupdirectory_1" - } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + children = @() + value = "device_vendor_msft_laps_policies_backupdirectory_1" } } - AdditionalProperties = $null } + AdditionalProperties = $null } } - - Mock -CommandName Update-DeviceManagementConfigurationPolicy -MockWith { - } } It 'Should return Present from the Get method' { @@ -192,7 +192,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should update the instance from the Set method' { Set-TargetResource @testParams - Should -Invoke -CommandName Update-DeviceManagementConfigurationPolicy -Exactly 1 + Should -Invoke -CommandName Update-IntuneDeviceConfigurationPolicy -Exactly 1 } } @@ -219,24 +219,34 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' Description = 'My Test Description' Name = 'My Test' - Settings = @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_laps_policies_backupdirectory' + Name = 'BackupDirectory' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - choiceSettingValue = @{ - children = @() - value = "device_vendor_msft_laps_policies_backupdirectory_1" - } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + children = @() + value = "device_vendor_msft_laps_policies_backupdirectory_1" } } - AdditionalProperties = $null } + AdditionalProperties = $null } } } @@ -267,24 +277,34 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' Description = 'My Test Description' Name = 'My Test' - Settings = @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_laps_policies_backupdirectory' + Name = 'BackupDirectory' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - choiceSettingValue = @{ - children = @() - value = "device_vendor_msft_laps_policies_backupdirectory_1" - } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + children = @() + value = "device_vendor_msft_laps_policies_backupdirectory_1" } } - AdditionalProperties = $null } + AdditionalProperties = $null } } } @@ -319,24 +339,34 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { TemplateReference = @{ TemplateId = 'adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1' } - Settings = @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_laps_policies_backupdirectory' + Name = 'BackupDirectory' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - choiceSettingValue = @{ - children = @() - value = "device_vendor_msft_laps_policies_backupdirectory_1" - } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_laps_policies_backupdirectory' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'a3270f64-e493-499d-8900-90290f61ed8a' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + children = @() + value = "device_vendor_msft_laps_policies_backupdirectory_1" } } - AdditionalProperties = $null } + AdditionalProperties = $null } } } From cbaa7f02a7023aa971f7a3745182803a76ee1a7e Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 7 Jun 2024 16:00:53 +0200 Subject: [PATCH 009/273] Migrate Intune Exploit Protection policy to new Settings Catalog Cmdlets --- CHANGELOG.md | 3 + ...otectionPolicyWindows10SettingCatalog.psm1 | 741 ++++-------------- ...onPolicyWindows10SettingCatalog.schema.mof | Bin 7254 -> 7254 bytes .../Modules/M365DSCDRGUtil.psm1 | 4 +- ...ionPolicyWindows10SettingCatalog.Tests.ps1 | 246 ++---- 5 files changed, 228 insertions(+), 766 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14f6cdc227..1d66fb8c04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,11 @@ * IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy * Migrate to new settings catalog cmdlets. +* IntuneExploitProtectionPolicyWindows10SettingCatalog + * Migrate to new settings catalog cmdlets. * M365DSCDRGUtil * Fixes an issue with the settings catalog property generation. + * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 index e938f172a0..3d2049d9d8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 @@ -21,6 +21,7 @@ function Get-TargetResource $ExploitProtectionSettings, [Parameter()] + [ValidateSet('0', '1')] [System.String] $DisallowExploitProtectionOverride, @@ -62,111 +63,75 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Checking for the Intune Endpoint Protection Policy {$DisplayName}" + try + { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters ` - -ErrorAction Stop + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters ` + -ErrorAction Stop - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies - #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' - $CommandName = $MyInvocation.MyCommand - $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` - -CommandName $CommandName ` - -Parameters $PSBoundParameters - Add-M365DSCTelemetryEvent -Data $data - #endregion + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion - $nullResult = $PSBoundParameters - $nullResult.Ensure = 'Absent' + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' - $templateReferenceId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' + $templateReferenceId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' - try - { #Retrieve policy general settings - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction silentlyContinue + $policy = $null + $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction SilentlyContinue if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Attack Surface Protection rules Policy {$Identity} was found" - $policy = Get-MgBetaDeviceManagementConfigurationPolicy | Where-Object -FilterScript { $_.Name -eq "$DisplayName" -and $_.templateReference.TemplateId -eq "$templateReferenceId" } -ErrorAction silentlyContinue + Write-Verbose -Message "No Exploit Protection Policy for Windows10 Setting Catalog {$Identity} was found" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $policy = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName' and templateReference/TemplateId eq '$templateReferenceId'" ` + -ErrorAction SilentlyContinue + } } if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Attack Surface Protection rules Policy {$DisplayName} was found" + Write-Verbose -Message "No Exploit Protection Policy for Windows10 Setting Catalog {$DisplayName} was found" return $nullResult } - #Retrieve policy specific settings + $Identity = $policy.Id + Write-Verbose "Found Exploit Protection Policy for Windows10 Setting Catalog with Id {$Identity} and Name {$DisplayName}" + + # Retrieve policy specific settings [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` - -DeviceManagementConfigurationPolicyId $policy.Id ` + -DeviceManagementConfigurationPolicyId $Identity ` + -ExpandProperty 'settingDefinitions' ` -ErrorAction Stop $returnHashtable = @{} - $returnHashtable.Add('Identity', $policy.Id) - $returnHashtable.Add('DisplayName', $policy.name) - $returnHashtable.Add('Description', $policy.description) - - foreach ($setting in $settings.settingInstance) - { - $addToParameters = $true - $settingName = $setting.settingDefinitionId.Split('_') | Select-Object -Last 1 - - switch ($setting.AdditionalProperties.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.simpleSettingCollectionValue) - { - $values += Get-DeviceManagementConfigurationSettingInstanceValue -Setting $value - } - $settingValue = $values - } + $returnHashtable.Add('Identity', $Identity) + $returnHashtable.Add('DisplayName', $policy.Name) + $returnHashtable.Add('Description', $policy.Description) - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.groupSettingCollectionValue.children) - { - $settingName = $value.settingDefinitionId.split('_') | Select-Object -Last 1 - $settingValue = Get-DeviceManagementConfigurationSettingInstanceValue -Setting $value - $returnHashtable.Add($settingName, $settingValue) - $addToParameters = $false - } - } - Default - { - $settingValue = Get-DeviceManagementConfigurationSettingInstanceValue -Setting $setting - } - } - if ($addToParameters) - { - $returnHashtable.Add($settingName, $settingValue) - } + $returnHashtable = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $returnHashtable - } - $returnAssignments = @() - $returnAssignments += Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id $assignmentResult = @() - foreach ($assignmentEntry in $returnAssignments) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult = ConvertFrom-IntunePolicyAssignment -Assignments $assignmentsValues -IncludeDeviceFilter $true } $returnHashtable.Add('Assignments', $assignmentResult) - Write-Verbose -Message "Found Endpoint Protection Policy {$($policy.name)}" - $returnHashtable.Add('Ensure', 'Present') $returnHashtable.Add('Credential', $Credential) $returnHashtable.Add('ApplicationId', $ApplicationId) @@ -212,6 +177,7 @@ function Set-TargetResource $ExploitProtectionSettings, [Parameter()] + [ValidateSet('0', '1')] [System.String] $DisallowExploitProtectionOverride, @@ -269,14 +235,7 @@ function Set-TargetResource #endregion $currentPolicy = Get-TargetResource @PSBoundParameters - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null - $PSBoundParameters.Remove('ManagedIdentity') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters $templateReferenceId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' $platforms = 'windows10' @@ -284,50 +243,48 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') { - - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Identity') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - Write-Verbose -Message "Creating new Endpoint Protection Policy {$DisplayName}" - - $settings = Format-M365DSCIntuneSettingCatalogPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId - - $policy = New-IntuneDeviceConfigurationPolicy ` - -Name $DisplayName ` - -Description $Description ` - -Platforms $platforms ` - -TemplateReferenceId $templateReferenceId ` - -Technologies $technologies ` - -Settings $settings + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReference = @{templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters #region Assignments $assignmentsHash = @() foreach ($assignment in $Assignments) { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment } - if ($policy.id) + + if ($policy.Id) { - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` - -Targets $assignmentsHash + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' } #endregion } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Present') { Write-Verbose -Message "Updating existing Endpoint Protection Policy {$($currentPolicy.DisplayName)}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - $PSBoundParameters.Remove('Identity') | Out-Null - - $settings = Format-M365DSCIntuneSettingCatalogPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId Update-IntuneDeviceConfigurationPolicy ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` @@ -342,10 +299,12 @@ function Set-TargetResource $assignmentsHash = @() foreach ($assignment in $Assignments) { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment } - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` - -Targets $assignmentsHash + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentPolicy.Identity ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' #endregion } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') @@ -378,6 +337,7 @@ function Test-TargetResource $ExploitProtectionSettings, [Parameter()] + [ValidateSet('0', '1')] [System.String] $DisallowExploitProtectionOverride, @@ -433,79 +393,85 @@ function Test-TargetResource Write-Verbose -Message "Testing configuration of Endpoint Protection Policy {$DisplayName}" $CurrentValues = Get-TargetResource @PSBoundParameters - - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - - $ValuesToCheck = $PSBoundParameters - $ValuesToCheck.Remove('Identity') | Out-Null + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } + } if ($CurrentValues.Ensure -ne $Ensure) { - Write-Verbose -Message 'The policy was not found' + Write-Verbose -Message "Test-TargetResource returned $false" return $false } - $testResult = $true - if ([Array]$Assignments.count -ne $CurrentValues.Assignments.count) - { - Write-Verbose -Message "Configuration drift:Number of assignments does not match: Source=$([Array]$Assignments.count) Target=$($CurrentValues.Assignments.count)" - $testResult = $false - } - if ($testResult) + + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) { - foreach ($assignment in $CurrentValues.Assignments) + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { - #GroupId Assignment - if (-not [String]::IsNullOrEmpty($assignment.groupId)) + $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source + + if ($key -eq "Assignments") { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.groupId -eq $assignment.groupId } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: groupId {$($assignment.groupId)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $testResult = Compare-M365DSCIntunePolicyAssignment ` + -Source $source ` + -Target $target } - #AllDevices/AllUsers assignment else { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.dataType -eq $assignment.dataType } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: {$($assignment.dataType)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) } if (-not $testResult) { - $testResult = $false break } + $ValuesToCheck.Remove($key) | Out-Null } + } + $ValuesToCheck.Remove('Identity') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + # Ignore line breaks and carriage returns + if ($testResult -and $ValuesToCheck.Contains('ExploitProtectionSettings')) + { + $desired = ($ExploitProtectionSettings -replace "`r","") -replace "`n","" + $current = ($CurrentValues.ExploitProtectionSettings -replace "`r","") -replace "`n","" + $testResult = $desired -eq $current + $ValuesToCheck.Remove('ExploitProtectionSettings') | Out-Null } - $ValuesToCheck.Remove('Assignments') | Out-Null + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" if ($testResult) { - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` -ValuesToCheck $ValuesToCheck.Keys } + Write-Verbose -Message "Test-TargetResource returned $testResult" - Write-Verbose -Message "Test-TargetResource returned $TestResult" - - return $TestResult + return $testResult } function Export-TargetResource @@ -568,8 +534,10 @@ function Export-TargetResource try { $policyTemplateID = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' - [array]$allPolicies = Get-MgBetaDeviceManagementConfigurationPolicy -Filter $Filter -All:$true -ErrorAction Stop - $policies = $allPolicies | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateId } + [array]$policies = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter $Filter ` + -All:$true ` + -ErrorAction Stop | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateId } if ($policies.Length -eq 0) { @@ -592,53 +560,44 @@ function Export-TargetResource TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } $Results = Get-TargetResource @params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results - if ($Results.Ensure -eq 'Present') + if ($Results.Assignments) { - $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` - -Results $Results - - if ($Results.Assignments) + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) { - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments - if ($complexTypeStringResult) - { - $Results.Assignments = $complexTypeStringResult - } - else - { - $Results.Remove('Assignments') | Out-Null - } + $Results.Assignments = $complexTypeStringResult } - - $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` - -ConnectionMode $ConnectionMode ` - -ModulePath $PSScriptRoot ` - -Results $Results ` - -Credential $Credential - - if ($Results.Assignments) + else { - $isCIMArray = $false - if ($Results.Assignments.getType().Fullname -like '*[[\]]') - { - $isCIMArray = $true - } - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$isCIMArray + $Results.Remove('Assignments') | Out-Null } + } - $dscContent += $currentDSCBlock - Save-M365DSCPartialExport -Content $currentDSCBlock ` - -FileName $Global:PartialExportFileName + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential - Write-Host $Global:M365DSCEmojiGreenCheckMark - $i++ + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + + Write-Host $Global:M365DSCEmojiGreenCheckMark + $i++ } return $dscContent } @@ -664,390 +623,4 @@ function Export-TargetResource } } -function Get-DeviceManagementConfigurationSettingInstanceValue -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - $Setting - ) - - switch ($setting.AdditionalProperties.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - { - $settingValue = $setting.AdditionalProperties.choiceSettingValue.value.split('_') | Select-Object -Last 1 - - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' - { - $settingValue = $setting.AdditionalProperties.simpleSettingValue.value - } - Default - { - $settingValue = $setting.AdditionalProperties.value - } - } - return $settingValue -} - -function Format-M365DSCParamsToSettingInstance -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $TemplateSetting, - - [Parameter()] - [System.Boolean] - $IncludeSettingInstanceTemplateId = $true, - - [Parameter()] - [System.Boolean] - $IncludeSettingValueTemplateId = $true - ) - - $DSCParams.Remove('Verbose') | Out-Null - $results = @() - - foreach ($param in $DSCParams.Keys) - { - $settingInstance = [ordered]@{} - $settingInstance.add('settingDefinitionId', $templateSetting.settingDefinitionId) - if ($IncludeSettingInstanceTemplateId -and -Not [string]::IsNullOrEmpty($templateSetting.settingInstanceTemplateId)) - { - $settingInstance.add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $templateSetting.settingInstanceTemplateId }) - } - - $odataType = $templateSetting.AdditionalProperties.'@odata.type' - if ([string]::IsNullOrEmpty($odataType)) - { - $odataType = $templateSetting.'@odata.type' - } - $settingInstance.add('@odata.type', $odataType.replace('Template', '')) - - switch ($odataType) - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstanceTemplate' - { - $choiceSettingValue = [ordered]@{} - $choiceSettingValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue') - $choiceSettingValue.add('children', @()) - $settingValueTemplateId = $templateSetting.AdditionalProperties.choiceSettingValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $choiceSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $choiceSettingValue.add('value', "$($templateSetting.settingDefinitionId)`_$($DSCParams.$param)") - $settingInstance.add('choiceSettingValue', $choiceSettingValue) - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstanceTemplate' - { - $simpleSettingCollectionValues = @() - - foreach ($value in $DSCParams.$param) - { - $simpleSettingCollectionValue = @{} - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $settingValueDataType = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.'@odata.type'.replace('Template', '') - $simpleSettingCollectionValue.add('@odata.type', $settingValueDataType) - $simpleSettingCollectionValue.add('value', $value) - $simpleSettingCollectionValues += $simpleSettingCollectionValue - } - $settingInstance.add('simpleSettingCollectionValue', $simpleSettingCollectionValues) - - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstanceTemplate' - { - $simpleSettingValue = @{} - $SettingValueType = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.'@odata.type' - if (-Not [string]::IsNullOrEmpty($SettingValueType)) - { - $simpleSettingValue.add('@odata.type', $SettingValueType.replace('Template', '')) - } - $simpleSettingValue.add('value', $DSCParams.$param) - - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) - } - - $settingInstance.add('simpleSettingValue', $simpleSettingValue) - $results += $settingInstance - } - } - } - - if ($results.count -eq 1) - { - return $results[0] - } - return $results -} - -function Format-M365DSCIntuneSettingCatalogPolicySettings -{ - [CmdletBinding()] - [OutputType([System.Array])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter(Mandatory = 'true')] - [System.String] - $templateReferenceId - ) - - $DSCParams.Remove('Identity') | Out-Null - $DSCParams.Remove('DisplayName') | Out-Null - $DSCParams.Remove('Description') | Out-Null - - $settings = @() - - $templateSettings = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $templateReferenceId - - #write-verbose -Message ( $DSCParams|out-string) - - $simpleSettings = @() - $simpleSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -ne '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - foreach ($templateSetting in $simpleSettings) - { - $setting = @{} - $settingKey = $DSCParams.keys | Where-Object -FilterScript { $templateSetting.settingDefinitionId -like "*$($_)" } - if ((-not [String]::IsNullOrEmpty($settingKey)) -and $DSCParams."$settingKey") - { - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $myFormattedSetting = Format-M365DSCParamsToSettingInstance -DSCParams @{$settingKey = $DSCParams."$settingKey" } ` - -TemplateSetting $templateSetting - - $setting.add('settingInstance', $myFormattedSetting) - $settings += $setting - $DSCParams.Remove($settingKey) | Out-Null - - } - } - - $groupCollectionTemplateSettings = @() - $groupCollectionTemplateSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - - foreach ($groupCollectionTemplateSetting in $groupCollectionTemplateSettings) - { - $setting = @{} - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $settingInstance = [ordered]@{} - $settingInstance.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance') - $settingInstance.add('settingDefinitionId', $groupCollectionTemplateSetting.settingDefinitionId) - $settingInstance.add('settingInstanceTemplateReference', @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference' - 'settingInstanceTemplateId' = $groupCollectionTemplateSetting.settingInstanceTemplateId - }) - $groupSettingCollectionValues = @() - $groupSettingCollectionValueChildren = @() - $groupSettingCollectionValue = @{} - $groupSettingCollectionValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingValue') - - $settingValueTemplateId = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $groupSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - - foreach ($key in $DSCParams.keys) - { - $templateValue = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.children | Where-Object ` - -FilterScript { $_.settingDefinitionId -like "*$key" } - if ($templateValue) - { - $groupSettingCollectionValueChild = Format-M365DSCParamsToSettingInstance ` - -DSCParams @{$key = $DSCParams."$key" } ` - -TemplateSetting $templateValue - - $groupSettingCollectionValueChildren += $groupSettingCollectionValueChild - } - } - - $groupSettingCollectionValue.add('children', $groupSettingCollectionValueChildren) - $groupSettingCollectionValues += $groupSettingCollectionValue - $settingInstance.add('groupSettingCollectionValue', $groupSettingCollectionValues) - - $setting.add('settingInstance', $settingInstance) - - if ($setting.settingInstance.groupSettingCollectionValue.children.count -gt 0) - { - $settings += $setting - } - } - - return $settings -} - -function New-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param ( - - [Parameter(Mandatory = 'true')] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - - ) - try - { - $Uri = 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } - - -} -function Update-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceConfigurationPolicyId, - - [Parameter()] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - - ) - try - { - $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceConfigurationPolicyId" - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'technologies' = $Technologies - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } - - -} - -function Get-M365DSCAdditionalProperties -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $Properties - ) - - $results = @{'@odata.type' = '#microsoft.graph.agreement' } - foreach ($property in $properties.Keys) - { - if ($property -ne 'Verbose') - { - $propertyName = $property[0].ToString().ToLower() + $property.Substring(1, $property.Length - 1) - $propertyValue = $properties.$property - $results.Add($propertyName, $propertyValue) - } - } - return $results -} - -Export-ModuleMember -Function *-TargetResource +Export-ModuleMember -Function *-TargetResource \ No newline at end of file diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.schema.mof index 5c55dbfd241b27f296e9463946c6da0d667c178f..2f66975c93769233bb59d5ff9163eb0a179642d8 100644 GIT binary patch delta 32 mcmca+am`{wnb72Sylk9_3^_oU&rm*jqJT1^|K^oKYdHbJg9_XL delta 50 zcmca+am`{wnUH)6LncEpLn1>C5au(KGo&(9Fcg5 Date: Wed, 12 Jun 2024 16:33:11 +0200 Subject: [PATCH 010/273] Migrate Intune ASR Policies to new settings catalog cmdlets and add new parameters --- CHANGELOG.md | 4 + ...alAdministratorPasswordSolutionPolicy.psm1 | 2 +- ...SettingCatalogASRRulesPolicyWindows10.psm1 | 897 +++++++----------- ...gCatalogASRRulesPolicyWindows10.schema.mof | Bin 18082 -> 23296 bytes .../Modules/M365DSCDRGUtil.psm1 | 58 +- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 7 +- ...inistratorPasswordSolutionPolicy.Tests.ps1 | 1 + ...ngCatalogASRRulesPolicyWindows10.Tests.ps1 | 848 +++++++---------- 8 files changed, 773 insertions(+), 1044 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d66fb8c04..33cd1c6b76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,15 @@ * IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy * Migrate to new settings catalog cmdlets. +* IntuneSettingCatalogASRRulesPolicyWindows10 + * Migrate to new settings catalog cmdlets. * IntuneExploitProtectionPolicyWindows10SettingCatalog * Migrate to new settings catalog cmdlets. * M365DSCDRGUtil * Fixes an issue with the settings catalog property generation. * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. + * Fixes issues with values of type `groupSettingCollection` and `choiceSetting` + when creating the settings catalog policy settings body. * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index c312d913ef..e0ec73c7be 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -672,7 +672,7 @@ function Export-TargetResource [array]$policies = Get-MgBetaDeviceManagementConfigurationPolicy ` -All:$true ` -Filter $Filter ` - -ErrorAction Stop | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateID } ` + -ErrorAction Stop | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateID } if ($policies.Length -eq 0) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 index e1b7d65c72..6f94a9526f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 @@ -23,63 +23,102 @@ function Get-TargetResource [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] - $AttackSurfaceReductionRules, + $BlockAbuseOfExploitedVulnerableSignedDrivers, [Parameter()] - [ValidateSet('off', 'block', 'audit', 'warn')] - [System.String] - $BlockAbuseOfExploitedVulnerableSignedDrivers, + [System.String[]] + $BlockAbuseOfExploitedVulnerableSignedDrivers_ASROnlyPerRuleExclusions, [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockAdobeReaderFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockAdobeReaderFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockAllOfficeApplicationsFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockAllOfficeApplicationsFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem, + [Parameter()] + [System.String[]] + $BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutableContentFromEmailClientAndWebmail, + [Parameter()] + [System.String[]] + $BlockExecutableContentFromEmailClientAndWebmail_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion, + [Parameter()] + [System.String[]] + $BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutionOfPotentiallyObfuscatedScripts, + [Parameter()] + [System.String[]] + $BlockExecutionOfPotentiallyObfuscatedScripts_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent, + [Parameter()] + [System.String[]] + $BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeApplicationsFromCreatingExecutableContent, + [Parameter()] + [System.String[]] + $BlockOfficeApplicationsFromCreatingExecutableContent_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses, + [Parameter()] + [System.String[]] + $BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeCommunicationAppFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockOfficeCommunicationAppFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] @@ -90,36 +129,64 @@ function Get-TargetResource [System.String] $BlockProcessCreationsFromPSExecAndWMICommands, + [Parameter()] + [System.String[]] + $BlockProcessCreationsFromPSExecAndWMICommands_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockRebootingMachineInSafeMode, + [Parameter()] + [System.String[]] + $BlockRebootingMachineInSafeMode_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockUntrustedUnsignedProcessesThatRunFromUSB, + [Parameter()] + [System.String[]] + $BlockUntrustedUnsignedProcessesThatRunFromUSB_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockUseOfCopiedOrImpersonatedSystemTools, + [Parameter()] + [System.String[]] + $BlockUseOfCopiedOrImpersonatedSystemTools_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockWebShellCreationForServers, + [Parameter()] + [System.String[]] + $BlockWebshellCreationForServers_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockWin32APICallsFromOfficeMacros, + [Parameter()] + [System.String[]] + $BlockWin32APICallsFromOfficeMacros_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $UseAdvancedProtectionAgainstRansomware, + [Parameter()] + [System.String[]] + $UseAdvancedProtectionAgainstRansomware_ASROnlyPerRuleExclusions, + [Parameter()] [System.String[]] $ControlledFolderAccessProtectedFolders, @@ -171,113 +238,75 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Checking for the Intune Endpoint Protection Attack Surface Protection rules Policy {$DisplayName}" + try + { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters ` - -ErrorAction Stop + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters ` + -ErrorAction Stop - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies - #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' - $CommandName = $MyInvocation.MyCommand - $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` - -CommandName $CommandName ` - -Parameters $PSBoundParameters - Add-M365DSCTelemetryEvent -Data $data - #endregion + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion - $nullResult = $PSBoundParameters - $nullResult.Ensure = 'Absent' + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' - $templateReferenceId = 'e8c053d6-9f95-42b1-a7f1-ebfd71c67a4b_1' + $templateReferenceId = 'e8c053d6-9f95-42b1-a7f1-ebfd71c67a4b_1' - try - { #Retrieve policy general settings - try - { - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction Stop - } - catch - { - $policy = $null - } + $policy = $null + $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction SilentlyContinue if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Attack Surface Protection rules Policy {$Identity} was found" - $policy = Get-MgBetaDeviceManagementConfigurationPolicy | Where-Object -FilterScript { $_.Name -eq "$DisplayName" -and $_.templateReference.TemplateId -eq "$templateReferenceId" } + Write-Verbose -Message "No Endpoint Protection Attack Surface Reduction Rules Policy {$Identity} was found" - if ($policy.Count -gt 1) + if (-not [System.String]::IsNullOrEmpty($DisplayName)) { - throw "Multiple Endpoint Protection Attack Surface Protection rules Policies with DisplayName '{$DisplayName}' were found!" + $policy = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName' and templateReference/TemplateId eq '$templateReferenceId'" ` + -ErrorAction SilentlyContinue } } if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Attack Surface Protection rules Policy {$DisplayName} was found" + Write-Verbose -Message "No Endpoint Protection Attack Surface Reduction Rules Policy {$DisplayName} was found" return $nullResult } - + $Identity = $policy.Id + Write-Verbose -Message "Found Endpoint Protection Attack Surface Reduction Rules Policy with Id {$Identity} and Name {$DisplayName)}." #Retrieve policy specific settings [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` - -DeviceManagementConfigurationPolicyId $policy.Id ` + -DeviceManagementConfigurationPolicyId $Identity ` + -ExpandProperty 'settingDefinitions' ` -ErrorAction Stop $returnHashtable = @{} - $returnHashtable.Add('Identity', $policy.Id) + $returnHashtable.Add('Identity', $Identity) $returnHashtable.Add('DisplayName', $policy.name) $returnHashtable.Add('Description', $policy.description) - foreach ($setting in $settings.SettingInstance) - { - switch ($setting.AdditionalProperties.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - foreach ($settingInstance in $setting.AdditionalProperties.groupSettingCollectionValue.children) - { - $settingName = $settingInstance.settingDefinitionId.split('_') | Select-Object -Last 1 - [String]$settingValue = $settingInstance.choiceSettingValue.value.split('_') | Select-Object -Last 1 - $returnHashtable.Add($settingName, $settingValue) - } - } - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - { - $settingName = $setting.settingDefinitionId.split('_') | Select-Object -Last 1 - [String]$settingValue = $setting.AdditionalProperties.choiceSettingValue.value.split('_') | Select-Object -Last 1 - $returnHashtable.Add($settingName, $settingValue) - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $settingName = $setting.settingDefinitionId.split('_') | Select-Object -Last 1 - [Array]$settingValue = $setting.AdditionalProperties.simpleSettingCollectionValue.value - $returnHashtable.Add($settingName, $settingValue) - } - Default - { - } - } - } + $returnHashtable = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $returnHashtable - $returnAssignments = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id - if ($returnAssignments.Count -gt 0) + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Identity + $assignmentResult = @() + if ($assignmentsValues.Count -gt 0) { - $assignmentResult = ConvertFrom-IntunePolicyAssignment -Assignments $returnAssignments - } - else - { - $assignmentResult = @() + $assignmentResult += ConvertFrom-IntunePolicyAssignment -Assignments $assignmentsValues -IncludeDeviceFilter $true } $returnHashtable.Add('Assignments', $assignmentResult) - Write-Verbose -Message "Found Endpoint Protection Attack Surface Protection rules Policy {$($policy.name)}" - $returnHashtable.Add('Ensure', 'Present') $returnHashtable.Add('Credential', $Credential) $returnHashtable.Add('ApplicationId', $ApplicationId) @@ -325,63 +354,102 @@ function Set-TargetResource [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] - $AttackSurfaceReductionRules, + $BlockAbuseOfExploitedVulnerableSignedDrivers, [Parameter()] - [ValidateSet('off', 'block', 'audit', 'warn')] - [System.String] - $BlockAbuseOfExploitedVulnerableSignedDrivers, + [System.String[]] + $BlockAbuseOfExploitedVulnerableSignedDrivers_ASROnlyPerRuleExclusions, [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockAdobeReaderFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockAdobeReaderFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockAllOfficeApplicationsFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockAllOfficeApplicationsFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem, + [Parameter()] + [System.String[]] + $BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutableContentFromEmailClientAndWebmail, + [Parameter()] + [System.String[]] + $BlockExecutableContentFromEmailClientAndWebmail_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion, + [Parameter()] + [System.String[]] + $BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutionOfPotentiallyObfuscatedScripts, + [Parameter()] + [System.String[]] + $BlockExecutionOfPotentiallyObfuscatedScripts_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent, + [Parameter()] + [System.String[]] + $BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeApplicationsFromCreatingExecutableContent, + [Parameter()] + [System.String[]] + $BlockOfficeApplicationsFromCreatingExecutableContent_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses, + [Parameter()] + [System.String[]] + $BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeCommunicationAppFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockOfficeCommunicationAppFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] @@ -390,38 +458,66 @@ function Set-TargetResource [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] - $BlockRebootingMachineInSafeMode, + $BlockProcessCreationsFromPSExecAndWMICommands, + + [Parameter()] + [System.String[]] + $BlockProcessCreationsFromPSExecAndWMICommands_ASROnlyPerRuleExclusions, [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] - $BlockProcessCreationsFromPSExecAndWMICommands, + $BlockRebootingMachineInSafeMode, + + [Parameter()] + [System.String[]] + $BlockRebootingMachineInSafeMode_ASROnlyPerRuleExclusions, [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockUntrustedUnsignedProcessesThatRunFromUSB, + [Parameter()] + [System.String[]] + $BlockUntrustedUnsignedProcessesThatRunFromUSB_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockUseOfCopiedOrImpersonatedSystemTools, + [Parameter()] + [System.String[]] + $BlockUseOfCopiedOrImpersonatedSystemTools_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockWebShellCreationForServers, + [Parameter()] + [System.String[]] + $BlockWebshellCreationForServers_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockWin32APICallsFromOfficeMacros, + [Parameter()] + [System.String[]] + $BlockWin32APICallsFromOfficeMacros_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $UseAdvancedProtectionAgainstRansomware, + [Parameter()] + [System.String[]] + $UseAdvancedProtectionAgainstRansomware_ASROnlyPerRuleExclusions, + [Parameter()] [System.String[]] $ControlledFolderAccessProtectedFolders, @@ -489,80 +585,80 @@ function Set-TargetResource #endregion $currentPolicy = Get-TargetResource @PSBoundParameters - $PSBoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters $templateReferenceId = 'e8c053d6-9f95-42b1-a7f1-ebfd71c67a4b_1' + $platforms = 'windows10' + $technologies = 'mdm,microsoftSense' if ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') { - Write-Verbose -Message "Creating new Endpoint Protection Attack Surface Protection rules Policy {$DisplayName}" - - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - - $settings = Format-M365DSCIntuneSettingCatalogASRRulesPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId - - $policy = New-IntuneDeviceConfigurationPolicy ` - -Name $DisplayName ` - -Description $Description ` - -Platforms 'windows10' ` - -TemplateReferenceId $templateReferenceId ` - -Technologies 'mdm,microsoftSense' ` - -Settings $settings + Write-Verbose -Message "Creating new Endpoint Protection Attack Surface Reduction Rules Policy {$DisplayName}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReference = @{templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } - #region Assignments + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters $assignmentsHash = @() foreach ($assignment in $Assignments) { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment } - if ($policy.id) + + if ($policy.Id) { - $intuneAssignments = [Hashtable[]] (ConvertTo-IntunePolicyAssignment -Assignments $assignmentsHash) - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` - -Targets ([Array]($intuneAssignments.target)) + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' } - #endregion } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Present') { - Write-Verbose -Message "Updating existing Endpoint Protection Attack Surface Protection rules Policy {$DisplayName}" - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null + Write-Verbose -Message "Updating existing Endpoint Protection Attack Surface Reduction Rules Policy {$DisplayName}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null - $settings = Format-M365DSCIntuneSettingCatalogASRRulesPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId - - #write-verbose -message ($settings|convertto-json -Depth 20) + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId Update-IntuneDeviceConfigurationPolicy ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Name $DisplayName ` -Description $Description ` -TemplateReferenceId $templateReferenceId ` - -Platforms 'windows10' ` - -Technologies 'mdm,microsoftSense' ` + -Platforms $platforms ` + -Technologies $technologies ` -Settings $settings #region Assignments $assignmentsHash = @() foreach ($assignment in $Assignments) { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment } - $intuneAssignments = [Hashtable[]] (ConvertTo-IntunePolicyAssignment -Assignments $assignmentsHash) - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` - -Targets ([Array]($intuneAssignments.target)) + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentPolicy.Identity ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' #endregion } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') { - Write-Verbose -Message "Removing Endpoint Protection Attack Surface Protection rules Policy {$DisplayName}" + Write-Verbose -Message "Removing Endpoint Protection Attack Surface Reduction Rules Policy {$DisplayName}" Remove-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $currentPolicy.Identity } } @@ -592,63 +688,102 @@ function Test-TargetResource [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] - $AttackSurfaceReductionRules, + $BlockAbuseOfExploitedVulnerableSignedDrivers, [Parameter()] - [ValidateSet('off', 'block', 'audit', 'warn')] - [System.String] - $BlockAbuseOfExploitedVulnerableSignedDrivers, + [System.String[]] + $BlockAbuseOfExploitedVulnerableSignedDrivers_ASROnlyPerRuleExclusions, [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockAdobeReaderFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockAdobeReaderFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockAllOfficeApplicationsFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockAllOfficeApplicationsFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem, + [Parameter()] + [System.String[]] + $BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutableContentFromEmailClientAndWebmail, + [Parameter()] + [System.String[]] + $BlockExecutableContentFromEmailClientAndWebmail_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion, + [Parameter()] + [System.String[]] + $BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockExecutionOfPotentiallyObfuscatedScripts, + [Parameter()] + [System.String[]] + $BlockExecutionOfPotentiallyObfuscatedScripts_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent, + [Parameter()] + [System.String[]] + $BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeApplicationsFromCreatingExecutableContent, + [Parameter()] + [System.String[]] + $BlockOfficeApplicationsFromCreatingExecutableContent_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses, + [Parameter()] + [System.String[]] + $BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockOfficeCommunicationAppFromCreatingChildProcesses, + [Parameter()] + [System.String[]] + $BlockOfficeCommunicationAppFromCreatingChildProcesses_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] @@ -659,36 +794,64 @@ function Test-TargetResource [System.String] $BlockProcessCreationsFromPSExecAndWMICommands, + [Parameter()] + [System.String[]] + $BlockProcessCreationsFromPSExecAndWMICommands_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockRebootingMachineInSafeMode, + [Parameter()] + [System.String[]] + $BlockRebootingMachineInSafeMode_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockUntrustedUnsignedProcessesThatRunFromUSB, + [Parameter()] + [System.String[]] + $BlockUntrustedUnsignedProcessesThatRunFromUSB_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockUseOfCopiedOrImpersonatedSystemTools, + [Parameter()] + [System.String[]] + $BlockUseOfCopiedOrImpersonatedSystemTools_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockWebShellCreationForServers, + [Parameter()] + [System.String[]] + $BlockWebshellCreationForServers_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $BlockWin32APICallsFromOfficeMacros, + [Parameter()] + [System.String[]] + $BlockWin32APICallsFromOfficeMacros_ASROnlyPerRuleExclusions, + [Parameter()] [ValidateSet('off', 'block', 'audit', 'warn')] [System.String] $UseAdvancedProtectionAgainstRansomware, + [Parameter()] + [System.String[]] + $UseAdvancedProtectionAgainstRansomware_ASROnlyPerRuleExclusions, + [Parameter()] [System.String[]] $ControlledFolderAccessProtectedFolders, @@ -739,6 +902,7 @@ function Test-TargetResource [System.String[]] $AccessTokens ) + #Ensure the proper dependencies are installed in the current environment. Confirm-M365DSCDependencies @@ -750,101 +914,79 @@ function Test-TargetResource -Parameters $PSBoundParameters Add-M365DSCTelemetryEvent -Data $data #endregion - Write-Verbose -Message "Testing configuration of Endpoint Protection Attack Surface Protection rules Policy {$DisplayName}" - $CurrentValues = Get-TargetResource @PSBoundParameters - $ValuesToCheck = ([Hashtable]$PSBoundParameters).clone() - $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck - $ValuesToCheck.Remove('Identity') | Out-Null + Write-Verbose -Message "Testing configuration of Endpoint Protection Attack Surface Reduction Rules Policy {$DisplayName}" - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" + $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } + } if ($CurrentValues.Ensure -ne $Ensure) { - Write-Verbose -Message 'The policy was not found' + Write-Verbose -Message "Test-TargetResource returned $false" return $false } - #region Assignments $testResult = $true - if ((-not $CurrentValues.Assignments) -xor (-not $ValuesToCheck.Assignments)) + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) { - Write-Verbose -Message 'Configuration drift: one the assignment is null' - return $false - } - - if ($CurrentValues.Assignments) - { - if ($CurrentValues.Assignments.count -ne $ValuesToCheck.Assignments.count) - { - Write-Verbose -Message "Configuration drift: Number of assignment has changed - current {$($CurrentValues.Assignments.count)} target {$($ValuesToCheck.Assignments.count)}" - return $false - } - foreach ($assignment in $CurrentValues.Assignments) + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { - #GroupId Assignment - if (-not [String]::IsNullOrEmpty($assignment.groupId)) - { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.groupId -eq $assignment.groupId } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: groupId {$($assignment.groupId)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment - } - #GroupDisplayName Assignment - if (-not [String]::IsNullOrEmpty($assignment.groupDisplayName)) + $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source + + if ($key -eq "Assignments") { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.groupDisplayName -eq $assignment.groupDisplayName } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: groupDisplayName {$($assignment.groupDisplayName)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $testResult = Compare-M365DSCIntunePolicyAssignment ` + -Source $source ` + -Target $target } - #AllDevices/AllUsers assignment else { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.dataType -eq $assignment.dataType } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: {$($assignment.dataType)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) } if (-not $testResult) { - $testResult = $false break } + + $ValuesToCheck.Remove($key) | Out-Null } } - if (-not $testResult) + $ValuesToCheck.Remove('Identity') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + + if ($testResult) { - return $false + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys } - $ValuesToCheck.Remove('Assignments') | Out-Null - #endregion - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` - -Source $($MyInvocation.MyCommand.Source) ` - -DesiredValues $PSBoundParameters ` - -ValuesToCheck $ValuesToCheck.Keys + Write-Verbose -Message "Test-TargetResource returned $testResult" - Write-Verbose -Message "Test-TargetResource returned $TestResult" - #return $false - return $TestResult + return $testResult } function Export-TargetResource @@ -906,10 +1048,13 @@ function Export-TargetResource try { - $policyTemplateID = 'e8c053d6-9f95-42b1-a7f1-ebfd71c67a4b_1' - [array]$policies = Get-MgBetaDeviceManagementConfigurationPolicy -Filter $Filter -All -ErrorAction Stop - - $policies = $policies | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateId } + $policyTemplateId = 'e8c053d6-9f95-42b1-a7f1-ebfd71c67a4b_1' + [array]$policies = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter $Filter ` + -All ` + -ErrorAction Stop | Where-Object -FilterScript { + $_.TemplateReference.TemplateId -eq $policyTemplateId + } if ($policies.Length -eq 0) { @@ -922,9 +1067,8 @@ function Export-TargetResource foreach ($policy in $policies) { Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline - $params = @{ - Identity = $policy.id + Identity = $policy.Id DisplayName = $policy.Name Ensure = 'Present' Credential = $Credential @@ -932,16 +1076,17 @@ function Export-TargetResource TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } $Results = Get-TargetResource @params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results if ($Results.Assignments) { $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments - if ($complexTypeStringResult) { $Results.Assignments = $complexTypeStringResult @@ -951,9 +1096,7 @@ function Export-TargetResource $Results.Remove('Assignments') | Out-Null } } - - $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` - -Results $Results + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` -ConnectionMode $ConnectionMode ` -ModulePath $PSScriptRoot ` @@ -962,12 +1105,7 @@ function Export-TargetResource if ($Results.Assignments) { - $isCIMArray = $false - if ($Results.Assignments.getType().Fullname -like '*[[\]]') - { - $isCIMArray = $true - } - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$isCIMArray + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$true } $dscContent += $currentDSCBlock @@ -1000,333 +1138,4 @@ function Export-TargetResource } } -function Format-M365DSCParamsToSettingInstance -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $TemplateSetting, - - [Parameter()] - [System.Boolean] - $IncludeSettingInstanceTemplateId = $true, - - [Parameter()] - [System.Boolean] - $IncludeSettingValueTemplateId = $true - ) - - $DSCParams.Remove('Verbose') | Out-Null - $results = @() - - foreach ($param in $DSCParams.Keys) - { - $settingInstance = [ordered]@{} - $settingInstance.add('settingDefinitionId', $templateSetting.settingDefinitionId) - if ($IncludeSettingInstanceTemplateId -and -Not [string]::IsNullOrEmpty($templateSetting.settingInstanceTemplateId)) - { - $settingInstance.add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $templateSetting.settingInstanceTemplateId }) - } - - $odataType = $templateSetting.AdditionalProperties.'@odata.type' - if ([string]::IsNullOrEmpty($odataType)) - { - $odataType = $templateSetting.'@odata.type' - } - $settingInstance.add('@odata.type', $odataType.replace('Template', '')) - - switch ($odataType) - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstanceTemplate' - { - $choiceSettingValue = [ordered]@{} - $choiceSettingValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue') - $choiceSettingValue.add('children', @()) - $settingValueTemplateId = $templateSetting.AdditionalProperties.choiceSettingValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $choiceSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $choiceSettingValue.add('value', "$($templateSetting.settingDefinitionId)`_$($DSCParams.$param)") - $settingInstance.add('choiceSettingValue', $choiceSettingValue) - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstanceTemplate' - { - $simpleSettingCollectionValues = @() - - foreach ($value in $DSCParams.$param) - { - $simpleSettingCollectionValue = @{} - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $settingValueDataType = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.'@odata.type'.replace('Template', '') - $simpleSettingCollectionValue.add('@odata.type', $settingValueDataType) - $simpleSettingCollectionValue.add('value', $value) - $simpleSettingCollectionValues += $simpleSettingCollectionValue - } - $settingInstance.add('simpleSettingCollectionValue', $simpleSettingCollectionValues) - - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstanceTemplate' - { - $simpleSettingValue = @{} - $SettingValueType = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.'@odata.type' - if (-Not [string]::IsNullOrEmpty($SettingValueType)) - { - $simpleSettingValue.add('@odata.type', $SettingValueType.replace('Template', '')) - } - $simpleSettingValue.add('value', $DSCParams.$param) - - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) - } - - $settingInstance.add('simpleSettingValue', $simpleSettingValue) - $results += $settingInstance - } - } - } - - if ($results.count -eq 1) - { - return $results[0] - } - - return $results -} - -function Format-M365DSCIntuneSettingCatalogASRRulesPolicySettings -{ - [CmdletBinding()] - [OutputType([System.Array])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter(Mandatory = 'true')] - [System.String] - $templateReferenceId - ) - - $DSCParams.Remove('Identity') | Out-Null - $DSCParams.Remove('DisplayName') | Out-Null - $DSCParams.Remove('Description') | Out-Null - - $settings = @() - - $templateSettings = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $templateReferenceId - - $simpleSettings = @() - $simpleSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -ne '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - foreach ($templateSetting in $simpleSettings) - { - $setting = @{} - $settingKey = $DSCParams.keys | Where-Object -FilterScript { $templateSetting.settingDefinitionId -like "*$($_)" } - if ((-not [String]::IsNullOrEmpty($settingKey)) -and $DSCParams."$settingKey") - { - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $myFormattedSetting = Format-M365DSCParamsToSettingInstance -DSCParams @{$settingKey = $DSCParams."$settingKey" } ` - -TemplateSetting $templateSetting - - $setting.add('settingInstance', $myFormattedSetting) - $settings += $setting - $DSCParams.Remove($settingKey) | Out-Null - } - } - - #Prepare attacksurfacereductionrules groupCollectionTemplateSettings - $groupCollectionTemplateSettings = @() - $groupCollectionTemplateSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - - foreach ($groupCollectionTemplateSetting in $groupCollectionTemplateSettings) - { - $setting = @{} - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $settingInstance = [ordered]@{} - $settingInstance.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance') - $settingInstance.add('settingDefinitionId', $groupCollectionTemplateSetting.settingDefinitionId) - $settingInstance.add('settingInstanceTemplateReference', @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference' - 'settingInstanceTemplateId' = $groupCollectionTemplateSetting.settingInstanceTemplateId - }) - $groupSettingCollectionValues = @() - $groupSettingCollectionValueChildren = @() - $groupSettingCollectionValue = @{} - $groupSettingCollectionValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingValue') - - $settingValueTemplateId = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $groupSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - - foreach ($key in $DSCParams.keys) - { - $templateValue = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.children | Where-Object ` - -FilterScript { $_.settingDefinitionId -like "*$key" } - if ($templateValue) - { - $groupSettingCollectionValueChild = Format-M365DSCParamsToSettingInstance ` - -DSCParams @{$key = $DSCParams."$key" } ` - -TemplateSetting $templateValue ` - -IncludeSettingValueTemplateId $false ` - -IncludeSettingInstanceTemplateId $false - - $groupSettingCollectionValueChildren += $groupSettingCollectionValueChild - } - } - $groupSettingCollectionValue.add('children', $groupSettingCollectionValueChildren) - $groupSettingCollectionValues += $groupSettingCollectionValue - $settingInstance.add('groupSettingCollectionValue', $groupSettingCollectionValues) - $setting.add('settingInstance', $settingInstance) - - if ($setting.settingInstance.groupSettingCollectionValue.children.count -gt 0) - { - $settings += $setting - } - } - - return $settings -} - -function New-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - - [Parameter(Mandatory = 'true')] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - ) - - try - { - $Uri = 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -function Update-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceConfigurationPolicyId, - - [Parameter()] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - ) - - try - { - $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceConfigurationPolicyId" - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'technologies' = $Technologies - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -Export-ModuleMember -Function *-TargetResource +Export-ModuleMember -Function *-TargetResource \ No newline at end of file diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.schema.mof index 31552f83583e7b8d4619f6af323269d8f8501721..e69860888e93ad67955ca69b2b375f8412076bd9 100644 GIT binary patch delta 2083 zcmZ3~%h<4uaf5}3xg$d`LlA=kgFizaLk>eFkQKm?%1{KPgBVJIBB?-@D?^gNo2B@d>Ik8@hI%0I00Ue;h7wu=tR)A^35L5)MpYhK`IKm@(N;f^YLF`8ourMY#&1BuRZA zSkvSLQK8LIT3;Y0EYRJ6P&>`=5k$!XU6IWfOn4wNAoUs+GnhdZfi?fJS;n||j(r$H zqn2|M#FBGvRR~KmJZoSamd$^>*D!A0;Ag Date: Sat, 15 Jun 2024 02:10:40 +0200 Subject: [PATCH 011/273] Improved assignment export across all Intune resources --- CHANGELOG.md | 7 + .../MSFT_IntuneASRRulesPolicyWindows10.psm1 | 13 +- ...alAdministratorPasswordSolutionPolicy.psm1 | 4 +- ...tectionLocalUserGroupMembershipPolicy.psm1 | 4 +- .../MSFT_IntuneAccountProtectionPolicy.psm1 | 12 +- ...ntivirusPolicyWindows10SettingCatalog.psm1 | 4 +- ...FT_IntuneAppConfigurationDevicePolicy.psm1 | 12 +- .../MSFT_IntuneAppConfigurationPolicy.psm1 | 12 +- ...tuneApplicationControlPolicyWindows10.psm1 | 12 +- ...tionRulesPolicyWindows10ConfigManager.psm1 | 183 ++---------------- ...T_IntuneDeviceCompliancePolicyAndroid.psm1 | 13 +- ...iceCompliancePolicyAndroidDeviceOwner.psm1 | 13 +- ...iceCompliancePolicyAndroidWorkProfile.psm1 | 12 +- ...SFT_IntuneDeviceCompliancePolicyMacOS.psm1 | 12 +- ...IntuneDeviceCompliancePolicyWindows10.psm1 | 4 +- .../MSFT_IntuneDeviceCompliancePolicyiOs.psm1 | 13 +- ...AdministrativeTemplatePolicyWindows10.psm1 | 12 +- ...iceConfigurationCustomPolicyWindows10.psm1 | 12 +- ...rForEndpointOnboardingPolicyWindows10.psm1 | 12 +- ...onDeliveryOptimizationPolicyWindows10.psm1 | 12 +- ...onfigurationDomainJoinPolicyWindows10.psm1 | 12 +- ...figurationEmailProfilePolicyWindows10.psm1 | 12 +- ...tionEndpointProtectionPolicyWindows10.psm1 | 12 +- ...ationFirmwareInterfacePolicyWindows10.psm1 | 26 +-- ...onitoringConfigurationPolicyWindows10.psm1 | 28 +-- ...tionIdentityProtectionPolicyWindows10.psm1 | 28 +-- ...ImportedPfxCertificatePolicyWindows10.psm1 | 26 +-- ...viceConfigurationKioskPolicyWindows10.psm1 | 26 +-- ...urationNetworkBoundaryPolicyWindows10.psm1 | 28 +-- ...urationPkcsCertificatePolicyWindows10.psm1 | 26 +-- ...eviceConfigurationPlatformScriptMacOS.psm1 | 25 +-- ...iceConfigurationPlatformScriptWindows.psm1 | 26 +-- ...ationPolicyAndroidDeviceAdministrator.psm1 | 25 +-- ...ConfigurationPolicyAndroidDeviceOwner.psm1 | 27 +-- ...urationPolicyAndroidOpenSourceProject.psm1 | 25 +-- ...ConfigurationPolicyAndroidWorkProfile.psm1 | 27 +-- ..._IntuneDeviceConfigurationPolicyMacOS.psm1 | 27 +-- ...FT_IntuneDeviceConfigurationPolicyiOS.psm1 | 28 +-- ...urationSCEPCertificatePolicyWindows10.psm1 | 26 +-- ...rationSecureAssessmentPolicyWindows10.psm1 | 26 +-- ...ationSharedMultiDevicePolicyWindows10.psm1 | 28 +-- ...tionTrustedCertificatePolicyWindows10.psm1 | 26 +-- ...DeviceConfigurationVpnPolicyWindows10.psm1 | 26 +-- ...nfigurationWindowsTeamPolicyWindows10.psm1 | 26 +-- ...figurationWiredNetworkPolicyWindows10.psm1 | 28 +-- ...neDeviceEnrollmentPlatformRestriction.psm1 | 31 +-- ...neDeviceEnrollmentStatusPageWindows10.psm1 | 16 +- .../MSFT_IntuneDiskEncryptionMacOS.psm1 | 29 +-- ...ntDetectionAndResponsePolicyWindows10.psm1 | 4 +- ...otectionPolicyWindows10SettingCatalog.psm1 | 29 +-- .../MSFT_IntunePolicySets.psm1 | 44 +---- ...SettingCatalogASRRulesPolicyWindows10.psm1 | 12 +- ...neSettingCatalogCustomPolicyWindows10.psm1 | 27 +-- ...ationPolicyAndroidDeviceAdministrator.psm1 | 25 +-- ...ionPolicyAndroidEnterpriseDeviceOwner.psm1 | 25 +-- ...ionPolicyAndroidEnterpriseWorkProfile.psm1 | 25 +-- ...WifiConfigurationPolicyAndroidForWork.psm1 | 25 +-- ...urationPolicyAndroidOpenSourceProject.psm1 | 25 +-- ...MSFT_IntuneWifiConfigurationPolicyIOS.psm1 | 25 +-- ...FT_IntuneWifiConfigurationPolicyMacOS.psm1 | 25 +-- ...ntuneWifiConfigurationPolicyWindows10.psm1 | 25 +-- ...nProtectionPolicyWindows10MdmEnrolled.psm1 | 12 +- ...rBusinessDriverUpdateProfileWindows10.psm1 | 27 +-- ...BusinessFeatureUpdateProfileWindows10.psm1 | 27 +-- .../Modules/M365DSCDRGUtil.psm1 | 44 +++-- ...SC.IntuneAccountProtectionPolicy.Tests.ps1 | 1 + ...ulesPolicyWindows10ConfigManager.Tests.ps1 | 44 +++-- ...ectionAndResponsePolicyWindows10.Tests.ps1 | 1 + 68 files changed, 372 insertions(+), 1174 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a978c34374..02793687f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCDRGUtil + * Add `collectionId` export to `ConvertFrom-IntunePolicyAssignment` +* MISC + * Add group display name export across Intune resources + # 1.24.612.1 * IntuneAppConfigurationDevicePolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 index 38589d3139..cfbb8f492e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 @@ -520,11 +520,7 @@ function Set-TargetResource $policy = New-MgBetaDeviceManagementIntent -BodyParameter $createParameters #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -560,12 +556,7 @@ function Set-TargetResource Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> Out-Null #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } - + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets $assignmentsHash ` -Repository 'deviceManagement/intents' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index 12d2a7fbf2..ebe2c1b9e3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -425,7 +425,7 @@ function Set-TargetResource } $newPolicy = New-MgBetaDeviceManagementConfigurationPolicy -bodyParameter $createParameters - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $newPolicy.Id ` -Targets $assignmentsHash @@ -449,7 +449,7 @@ function Set-TargetResource -Settings $settings #region update policy assignments - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets $assignmentsHash diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 index 563272b1cd..2e4450f341 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 @@ -306,7 +306,7 @@ function Set-TargetResource $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters #region Assignments - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $policy.Id ` -Targets $assignmentsHash @@ -333,7 +333,7 @@ function Set-TargetResource -Settings $settings #region Assignments - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets $assignmentsHash diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 index 7d44051f40..b1991e4383 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 @@ -418,11 +418,7 @@ function Set-TargetResource $policy = New-MgBetaDeviceManagementIntent -BodyParameter $createParameters #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -457,11 +453,7 @@ function Set-TargetResource Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> Out-Null #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 index b77d3ffd54..dbe036ce95 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 @@ -990,7 +990,7 @@ function Set-TargetResource -Technologies $technologies ` -Settings $settings - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id -Targets $assignmentsHash } @@ -1015,7 +1015,7 @@ function Set-TargetResource -Technologies $technologies ` -Settings $settings - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity -Targets $assignmentsHash } diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 index 221e0db766..f51f6c6720 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 @@ -418,11 +418,7 @@ function Set-TargetResource } #region resource generator code $policy = New-MgBetaDeviceAppManagementMobileAppConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.Id) { @@ -464,11 +460,7 @@ function Set-TargetResource -ManagedDeviceMobileAppConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId "$($currentInstance.Id)/microsoft.graph.managedDeviceMobileAppConfiguration" ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 index 88fe4add9c..6446ea2caa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 @@ -246,11 +246,7 @@ function Set-TargetResource $policy = New-MgBetaDeviceAppManagementTargetedManagedAppConfiguration @creationParams #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -276,11 +272,7 @@ function Set-TargetResource } Update-MgBetaDeviceAppManagementTargetedManagedAppConfiguration @updateParams - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentconfigPolicy.Id ` -Targets $assignmentsHash ` -Repository 'deviceAppManagement/targetedManagedAppConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 index b5bbeb6771..02d998df1a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 @@ -245,11 +245,7 @@ function Set-TargetResource -Settings $Settings #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -288,11 +284,7 @@ function Set-TargetResource } #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $appControlPolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/intents' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 index 106a08ce7e..846f9ca868 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 @@ -255,10 +255,16 @@ function Get-TargetResource { $returnHashtable.Add($settingName, $settingValue) } - } + $returnAssignments = @() - $returnAssignments += Get-DeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Identity + $graphAssignments = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Identity + if ($graphAssignments.Count -gt 0) + { + $returnAssignments += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($graphAssignments) + } $returnHashtable.Add('Assignments', $returnAssignments) Write-Verbose -Message "Found Endpoint Protection Policy {$($policy.name)}" @@ -485,9 +491,9 @@ function Set-TargetResource Technologies = $technologies Settings = $settings } - New-MgBetaDeviceManagementConfigurationPolicy -bodyParameter $createParameters + New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $Identity ` -Targets $assignmentsHash @@ -502,17 +508,17 @@ function Set-TargetResource -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` -TemplateId $templateReferenceId - Update-DeviceManagementConfigurationPolicy ` - -DeviceManagementConfigurationPolicyId $currentPolicy.Identity ` - -DisplayName $DisplayName ` + Update-IntuneDeviceConfigurationPolicy ` + -DeviceConfigurationPolicyId $currentPolicy.Identity ` + -Name $DisplayName ` -Description $Description ` - -TemplateReference $templateReferenceId ` + -TemplateReferenceId $templateReferenceId ` -Platforms $platforms ` -Technologies $technologies ` -Settings $settings #region update policy assignments - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets $assignmentsHash @@ -1107,163 +1113,4 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue return $settingValueReturn } -function New-DeviceManagementConfigurationPolicy -{ - [CmdletBinding()] - param ( - - [Parameter(Mandatory = 'true')] - [System.String] - $DisplayName, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.Array] - $Settings - ) - - $templateReference = @{ - 'templateId' = $TemplateReferenceId - } - - $Uri = 'https://graph.microsoft.com/beta/deviceManagement/ConfigurationPolicies' - $policy = [ordered]@{ - 'name' = $DisplayName - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = $templateReference - 'settings' = $Settings - } - #write-verbose (($policy|ConvertTo-Json -Depth 20)) - Invoke-MgGraphRequest -Method POST ` - -Uri $Uri ` - -ContentType 'application/json' ` - -Body ($policy | ConvertTo-Json -Depth 20) 4> out-null -} -function Update-DeviceManagementConfigurationPolicy -{ - [CmdletBinding()] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementConfigurationPolicyId, - - [Parameter(Mandatory = 'true')] - [System.String] - $DisplayName, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.Array] - $Settings - ) - - $templateReference = @{ - 'templateId' = $TemplateReferenceId - } - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/ConfigurationPolicies/$DeviceManagementConfigurationPolicyId" - $policy = [ordered]@{ - 'name' = $DisplayName - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = $templateReference - 'settings' = $Settings - } - #write-verbose (($policy|ConvertTo-Json -Depth 20)) - Invoke-MgGraphRequest -Method PUT ` - -Uri $Uri ` - -ContentType 'application/json' ` - -Body ($policy | ConvertTo-Json -Depth 20) 4> out-null -} - - -function Get-DeviceManagementConfigurationPolicyAssignment -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceManagementConfigurationPolicyId - ) - - try - { - $configurationPolicyAssignments = @() - - $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceManagementConfigurationPolicyId/assignments" - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> out-null - foreach ($result in $results.value.target) - { - $configurationPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - - while ($results.'@odata.nextLink') - { - $Uri = $results.'@odata.nextLink' - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> out-null - foreach ($result in $results.value.target) - { - $configurationPolicyAssignments += @{ - dataType = $result.'@odata.type' - groupId = $result.groupId - collectionId = $result.collectionId - deviceAndAppManagementAssignmentFilterType = $result.deviceAndAppManagementAssignmentFilterType - deviceAndAppManagementAssignmentFilterId = $result.deviceAndAppManagementAssignmentFilterId - } - } - } - return $configurationPolicyAssignments - } - catch - { - New-M365DSCLogEntry -Message 'Error retrieving data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 index a069990578..5a24dffdba 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 @@ -484,11 +484,7 @@ function Set-TargetResource -ScheduledActionsForRule $scheduledActionsForRule #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -516,12 +512,7 @@ function Set-TargetResource -DeviceCompliancePolicyId $configDeviceAndroidPolicy.Id #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } - + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDeviceAndroidPolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 index 550b5abbea..24bc016a2b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 @@ -378,11 +378,7 @@ function Set-TargetResource -ScheduledActionsForRule $scheduledActionsForRule #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -412,12 +408,7 @@ function Set-TargetResource -DeviceCompliancePolicyId $configDeviceAndroidPolicy.Id #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } - + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDeviceAndroidPolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 index 87955c67f5..65e81097f4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 @@ -460,11 +460,7 @@ function Set-TargetResource -ScheduledActionsForRule $scheduledActionsForRule #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -491,11 +487,7 @@ function Set-TargetResource -DeviceCompliancePolicyId $configDeviceAndroidPolicy.Id #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDeviceAndroidPolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 index 5515288577..debc21a240 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 @@ -424,11 +424,7 @@ function Set-TargetResource -ScheduledActionsForRule $scheduledActionsForRule #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -455,11 +451,7 @@ function Set-TargetResource -DeviceCompliancePolicyId $configDevicePolicy.Id #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index 5add8ab630..795db1d969 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -517,7 +517,7 @@ function Set-TargetResource if ($Assignments.Count -gt 0) { - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' @@ -542,7 +542,7 @@ function Set-TargetResource if ($Assignments.Count -gt 0) { - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 index dbb18d9828..0c29598f55 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 @@ -408,11 +408,7 @@ function Set-TargetResource -ScheduledActionsForRule $scheduledActionsForRule #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -444,12 +440,7 @@ function Set-TargetResource -Description $Description ` -DeviceCompliancePolicyId $configDevicePolicy.Id #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } - + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceCompliancePolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 index 49e699d737..72ee2d7916 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 @@ -396,11 +396,7 @@ function Set-TargetResource } #region resource generator code $policy = New-MgBetaDeviceManagementGroupPolicyConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -474,11 +470,7 @@ function Set-TargetResource -BodyParameter $UpdateParameters #Update Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/groupPolicyConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 index 353d3c2e67..27267174c5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 @@ -324,11 +324,7 @@ function Set-TargetResource } $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -374,11 +370,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 index 50e03fc980..138c7fe2ef 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 @@ -310,11 +310,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windowsDefenderAdvancedThreatProtectionConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -353,11 +349,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 index 891005cab4..c18fcfac7d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 @@ -489,11 +489,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windowsDeliveryOptimizationConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash=@() - foreach($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -526,11 +522,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 index 41cbd98cce..ce7e63783d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 @@ -285,11 +285,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windowsDomainJoinConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -322,11 +318,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 index 634da6ae4a..0e720a2bba 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 @@ -409,11 +409,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add('@odata.type', '#microsoft.graph.windows10EasEmailProfileConfiguration') $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -446,11 +442,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 index 6b0ece6e0d..9872636808 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 @@ -3728,11 +3728,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add('@odata.type', '#microsoft.graph.windows10EndpointProtectionConfiguration') $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -3778,11 +3774,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 index e14e934998..64c2f2b991 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 @@ -377,18 +377,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -607,11 +603,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows10DeviceFirmwareConfigurationInterface") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -644,11 +636,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 index 92e9a68662..ac5435abea 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 @@ -152,20 +152,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -294,11 +288,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windowsHealthMonitoringConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -332,11 +322,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 index 3611e51591..7358cbd46a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 @@ -214,20 +214,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -400,11 +394,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windowsIdentityProtectionConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -437,11 +427,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 index 21703df009..e61597df42 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 @@ -190,18 +190,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -344,11 +340,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows10ImportedPFXCertificateProfile") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -381,11 +373,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 index 4132864db4..0aef32a176 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 @@ -342,18 +342,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -503,11 +499,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windowsKioskConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -540,11 +532,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 index 966a53527e..e43a2f4422 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 @@ -170,20 +170,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -300,11 +294,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add('@odata.type', '#microsoft.graph.windows10NetworkBoundaryConfiguration') $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -337,11 +327,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 index 5dcee3028d..8629194fcb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 @@ -254,18 +254,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -436,11 +432,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows10PkcsCertificateProfile") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -473,11 +465,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 index 3e403e98ec..4d15e22d1d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 @@ -171,16 +171,11 @@ function Get-TargetResource #$assignmentsValues = Get-MgBetaDeviceManagementDeviceShellScriptAssignment -DeviceShellScriptId $Id $AssignmentsValues = $getValue.Assignments $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -321,11 +316,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.DeviceShellScript") $policy = New-MgBetaDeviceManagementDeviceShellScript -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.Id) { @@ -360,11 +351,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceShellScript ` -DeviceShellScriptId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 index 69fc4522d6..ef5af3cd33 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 @@ -159,18 +159,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementScriptAssignment -DeviceManagementScriptId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -307,11 +303,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.DeviceManagementScript") $policy = New-MgBetaDeviceManagementScript -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.Id) { @@ -346,11 +338,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementScript ` -DeviceManagementScriptId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 index 832d678f09..94da7aa3fa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 @@ -461,16 +461,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -818,11 +813,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -869,11 +860,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 index 2a23ae80cb..642ec46423 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 @@ -958,18 +958,13 @@ function Get-TargetResource AccessTokens = $AccessTokens } - $myAssignments=@() - $myAssignments += Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id $assignmentResult = @() - foreach ($assignmentEntry in $myAssignments) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.toString() - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -1666,11 +1661,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash=@() - foreach($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -1710,11 +1701,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 index 8bc5594816..e0d7d742d1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 @@ -205,16 +205,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -415,11 +410,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -466,11 +457,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 index 667e202147..6a638c6dcb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 @@ -331,18 +331,13 @@ function Get-TargetResource AccessTokens = $AccessTokens } - $returnAssignments = @() - $returnAssignments += Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $policy.Id + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $policy.Id $assignmentResult = @() - foreach ($assignmentEntry in $returnAssignments) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.toString() - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -636,11 +631,7 @@ function Set-TargetResource -AdditionalProperties $AdditionalProperties #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -667,11 +658,7 @@ function Set-TargetResource -DeviceConfigurationId $configDevicePolicy.Id #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $configDevicePolicy.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 index b1bb838ef6..85c8e374ec 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 @@ -437,16 +437,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -819,11 +814,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -871,17 +862,11 @@ function Set-TargetResource #$UpdateParameters.remove('updateDelayPolicy') #region resource generator code - write-verbose ($UpdateParameters | convertTo-Json -depth 100) - Update-MgBetaDeviceManagementDeviceConfiguration ` -BodyParameter $UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 index b24f0d023d..5984ce817c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 @@ -1158,20 +1158,14 @@ function Get-TargetResource } $results.Add('NetworkUsageRules', $complexNetworkUsageRules) - $returnAssignments = @() - $returnAssignments += Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $getValue.Id $assignmentResult = @() - foreach ($assignmentEntry in $returnAssignments) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.toString() - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } - $results.Add('Assignments', $assignmentResult) return [System.Collections.Hashtable] $results @@ -2063,11 +2057,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -2108,11 +2098,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 index 43a2d699ac..8ca0e2b141 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 @@ -294,18 +294,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -528,11 +524,7 @@ function Set-TargetResource $CreateParameters.Add("rootCertificate@odata.bind", "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations('$RootCertificateId')") $CreateParameters.Add("@odata.type", "#microsoft.graph.windows81SCEPCertificateProfile") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -568,11 +560,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 index e248a0a1dc..f100165917 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 @@ -167,18 +167,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -321,11 +317,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows10SecureAssessmentConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -358,11 +350,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 index 3fb7334c67..221414ae76 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 @@ -286,20 +286,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -495,11 +489,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add('@odata.type', '#microsoft.graph.sharedPCConfiguration') $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -537,11 +527,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 index 9f2fef6f4d..d2ebdb3160 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 @@ -142,18 +142,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -276,11 +272,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows81TrustedRootCertificate") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -313,11 +305,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 index ac21beeb78..1f401a4693 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 @@ -470,18 +470,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -706,11 +702,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows10VpnConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -743,11 +735,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 index 6d3c8d0894..bc1307e957 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 @@ -247,18 +247,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -454,11 +450,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.windows10TeamGeneralConfiguration") $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -491,11 +483,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 index ff7a7b9661..667f2d58c5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 @@ -306,20 +306,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -624,11 +618,7 @@ function Set-TargetResource $CreateParameters.Add('@odata.type', '#microsoft.graph.windowsWiredNetworkConfiguration') $policy = New-MgBetaDeviceManagementDeviceConfiguration -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -671,11 +661,7 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceConfiguration ` -DeviceConfigurationId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.Id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 index 3176ce93b0..d1db4d3fc7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 @@ -178,16 +178,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceEnrollmentConfigurationAssignment -DeviceEnrollmentConfigurationId $config.Id $assignmentResult = @() - foreach ($assignmentEntry in $assignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -379,14 +374,7 @@ function Set-TargetResource # Assignments from DefaultPolicy are not editable and will raise an alert if ($policy.Id -notlike '*_DefaultPlatformRestrictions') { - $assignmentsHash = @() - if ($null -ne $Assignments -and $Assignments.Length -gt 0) - { - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment - } - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $policy.Id ` -Targets $assignmentsHash ` @@ -451,14 +439,7 @@ function Set-TargetResource # Assignments from DefaultPolicy are not editable and will raise an alert if ($currentInstance.Identity -notlike '*_DefaultPlatformRestrictions') { - $assignmentsHash = @() - if ($null -ne $Assignments -and $Assignments.Length -gt 0) - { - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment - } - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.Identity ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 index 6ef11e526d..9a94cdd9e2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 @@ -201,20 +201,14 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceEnrollmentConfigurationAssignment -DeviceEnrollmentConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 index 6233583a29..be66e1dcee 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 @@ -170,19 +170,14 @@ function Get-TargetResource $results.Add('CertificateThumbprint', $CertificateThumbprint) $results.Add('ManagedIdentity', $ManagedIdentity.IsPresent) $results.Add('AccessTokens', $AccessTokens) - + $assignmentsValues = Get-MgBetaDeviceManagementIntentAssignment -DeviceManagementIntentId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -346,11 +341,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementIntent -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -383,11 +374,7 @@ function Set-TargetResource $body = @{'settings' = $settings } Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> Out-Null - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` @@ -396,7 +383,7 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - Write-Verbose -Message "Removing the Intune Disk Encryption for macOS with Id {$($currentInstance.Id)}" + Write-Verbose -Message "Removing the Intune Disk Encryption for macOS with Id {$($currentInstance.Id)}" #region resource generator code Remove-MgBetaDeviceManagementIntent -DeviceManagementIntentId $currentInstance.Id #endregion diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 index ddb3aea770..a219885cde 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 @@ -334,7 +334,7 @@ function Set-TargetResource $assignmentsHash = @() if ($null -ne $Assignments -and $Assignments.count -gt 0 ) { - $assignmentsHash += Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash += ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments } Update-DeviceConfigurationPolicyAssignment ` @@ -371,7 +371,7 @@ function Set-TargetResource $assignmentsHash = @() if ($null -ne $Assignments -and $Assignments.count -gt 0 ) { - $assignmentsHash += Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + $assignmentsHash += ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments } Update-DeviceConfigurationPolicyAssignment ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 index e938f172a0..d5a5bc6f5d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 @@ -148,20 +148,15 @@ function Get-TargetResource { $returnHashtable.Add($settingName, $settingValue) } - } - $returnAssignments = @() - $returnAssignments += Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id + + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id $assignmentResult = @() - foreach ($assignmentEntry in $returnAssignments) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $returnHashtable.Add('Assignments', $assignmentResult) @@ -304,11 +299,7 @@ function Set-TargetResource -Technologies $technologies ` -Settings $settings #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` @@ -339,11 +330,7 @@ function Set-TargetResource -Settings $settings #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets $assignmentsHash #endregion diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 index 557accf808..15e12dd4f0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 @@ -156,20 +156,13 @@ function Get-TargetResource } $assignmentsValues = $getValue.Assignments - $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } - $results.Add('Assignments', $assignmentResult) $itemsValues = $getValue.Items @@ -309,16 +302,7 @@ function Set-TargetResource } # set assignments and items to work with New-MgbetaDeviceAppManagementPolicySet command - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += @{ - target = @{ - '@odata.type' = $assignment.dataType - groupId = $assignment.groupId - } - } - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments $CreateParameters.Add("Assignments", $assignmentsHash) $itemsHash = @() @@ -359,29 +343,15 @@ function Set-TargetResource #region resource generator code $UpdateParameters.Add("PolicySetId", $currentInstance.Id) - write-verbose -Message ($UpdateParameters | out-string) Update-MgbetaDeviceAppManagementPolicySet @UpdateParameters - if (($itemamendments = Get-ItemsAmendmentsObject -currentObjectItems $currentInstance.Items -targetObjectItems $items) -ne $null ) + if ($null -ne ($itemamendments = Get-ItemsAmendmentsObject -currentObjectItems $currentInstance.Items -targetObjectItems $items)) { - - write-verbose -message ($itemamendments | out-string) $url = ('https://graph.microsoft.com/beta/deviceAppManagement/policySets/' + $currentInstance.Id + '/update' ) Invoke-MgGraphRequest -Method POST -Uri $url -Body $itemamendments } - $assignmentsHash = @{ assignments = @()} - foreach ($assignment in $Assignments) - { - $assignmentsHash.assignments += @{ - target = @{ - '@odata.type' = $assignment.dataType - groupId = $assignment.groupId - } - } - } - - write-verbose -message ($assignmentsHash | out-string) + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments $url = ('https://graph.microsoft.com/beta/deviceAppManagement/policySets/' + $currentInstance.Id + '/update' ) Invoke-MgGraphRequest -Method POST -Uri $url -Body $assignmentsHash #endregion diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 index e1b7d65c72..4fd6ac4b5e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 @@ -514,11 +514,7 @@ function Set-TargetResource -Settings $settings #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { $intuneAssignments = [Hashtable[]] (ConvertTo-IntunePolicyAssignment -Assignments $assignmentsHash) @@ -550,11 +546,7 @@ function Set-TargetResource -Settings $settings #region Assignments - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments $intuneAssignments = [Hashtable[]] (ConvertTo-IntunePolicyAssignment -Assignments $assignmentsHash) Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` -Targets ([Array]($intuneAssignments.target)) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 index 24e690e736..72f55b6c01 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 @@ -184,18 +184,11 @@ function Get-TargetResource } $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -329,11 +322,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add('@odata.type', '#microsoft.graph.DeviceManagementConfigurationPolicy') $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -366,11 +355,7 @@ function Set-TargetResource -DeviceManagementConfigurationPolicyId $currentInstance.Id ` @UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 index 63673c9f2f..735567533e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 @@ -144,16 +144,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -319,11 +314,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -370,11 +361,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 index 2ccc2c6f62..bc7330e072 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 @@ -180,16 +180,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -383,11 +378,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -434,11 +425,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 index fe9183d21a..b0394cf002 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 @@ -144,16 +144,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -318,11 +313,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -369,11 +360,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 index 4a3eeb2618..dc2aa0fb63 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 @@ -144,16 +144,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -318,11 +313,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -369,11 +360,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 index 1c0da717d3..b04067e070 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 @@ -154,16 +154,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -336,11 +331,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -387,11 +378,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 index 826198a0f1..17ec43cea7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 @@ -175,16 +175,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -374,11 +369,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -425,11 +416,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 index b71edd1783..a3df76d07d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 @@ -170,16 +170,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -365,11 +360,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -416,11 +407,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 index b8d398c81e..5d2967c4b1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 @@ -186,16 +186,11 @@ function Get-TargetResource $assignmentsValues = Get-MgBetaDeviceManagementDeviceConfigurationAssignment -DeviceConfigurationId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -394,11 +389,7 @@ function Set-TargetResource #region resource generator code $policy = New-MgBetaDeviceManagementDeviceConfiguration @CreateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -445,11 +436,7 @@ function Set-TargetResource #region resource generator code Update-MgBetaDeviceManagementDeviceConfiguration @UpdateParameters ` -DeviceConfigurationId $currentInstance.Id - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/deviceConfigurations' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 index ea832f5730..2a4c8a1349 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 @@ -633,11 +633,7 @@ function Set-TargetResource $policy = New-MgBetaDeviceAppManagementMdmWindowsInformationProtectionPolicy -BodyParameter $CreateParameters #endregion - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -672,11 +668,7 @@ function Set-TargetResource -BodyParameter $UpdateParameters #endregion - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceAppManagement/mdmWindowsInformationProtectionPolicies' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 index 5e8f837fd0..3600ab491f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 @@ -142,18 +142,11 @@ function Get-TargetResource $uri = "/beta/deviceManagement/windowsDriverUpdateProfiles/$($Id)/assignments" $assignmentsValues = (Invoke-MgGraphRequest -Method GET -Uri $uri).value $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -277,11 +270,7 @@ function Set-TargetResource #region resource generator code $uri = '/beta/deviceManagement/windowsDriverUpdateProfiles' $policy = Invoke-MgGraphRequest -Method POST -Uri $uri -Body $($CreateParameters | ConvertTo-Json) - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -311,11 +300,7 @@ function Set-TargetResource #region resource generator code $uri = "/beta/deviceManagement/windowsDriverUpdateProfiles/$($currentInstance.Id)" Invoke-MgGraphRequest -Method PATCH -Uri $uri -Body $($UpdateParameters | ConvertTo-Json) - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentInstance.Id ` -Targets $assignmentsHash ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 index 8d17322aca..9dd8e35d04 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 @@ -143,18 +143,11 @@ function Get-TargetResource } $assignmentsValues = Get-MgBetaDeviceManagementWindowsFeatureUpdateProfileAssignment -WindowsFeatureUpdateProfileId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + if ($assignmentsValues.Count -gt 0) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - { - $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString() - }) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId - } - $assignmentResult += $assignmentValue + $assignmentResult += ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments ($assignmentsValues) } $results.Add('Assignments', $assignmentResult) @@ -281,11 +274,7 @@ function Set-TargetResource #region resource generator code $CreateParameters.Add("@odata.type", "#microsoft.graph.WindowsFeatureUpdateProfile") $policy=New-MgBetaDeviceManagementWindowsFeatureUpdateProfile -BodyParameter $CreateParameters - $assignmentsHash=@() - foreach($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments if ($policy.id) { @@ -320,11 +309,7 @@ function Set-TargetResource -WindowsFeatureUpdateProfileId $currentInstance.Id ` -BodyParameter $UpdateParameters - $assignmentsHash = @() - foreach ($assignment in $Assignments) - { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment - } + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentInstance.id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/windowsFeatureUpdateProfiles' diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 412350e301..2b5c3f7ae4 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1147,11 +1147,12 @@ function ConvertFrom-IntunePolicyAssignment $hashAssignment = @{} $dataType = $assignment.Target.AdditionalProperties."@odata.type" $groupId = $assignment.Target.AdditionalProperties.groupId + $collectionId = $assignment.Target.AdditionalProperties.collectionId - $hashAssignment.add('dataType',$dataType) + $hashAssignment.Add('dataType',$dataType) if (-not [string]::IsNullOrEmpty($groupId)) { - $hashAssignment.add('groupId', $groupId) + $hashAssignment.Add('groupId', $groupId) $group = Get-MgGroup -GroupId ($groupId) -ErrorAction SilentlyContinue if ($null -ne $group) @@ -1159,6 +1160,10 @@ function ConvertFrom-IntunePolicyAssignment $groupDisplayName = $group.DisplayName } } + if (-not [string]::IsNullOrEmpty($collectionId)) + { + $hashAssignment.Add('collectionId', $collectionId) + } if ($dataType -eq '#microsoft.graph.allLicensedUsersAssignmentTarget') { $groupDisplayName = 'All users' @@ -1169,24 +1174,24 @@ function ConvertFrom-IntunePolicyAssignment } if ($null -ne $groupDisplayName) { - $hashAssignment.add('groupDisplayName', $groupDisplayName) + $hashAssignment.Add('groupDisplayName', $groupDisplayName) } if ($IncludeDeviceFilter) { if ($null -ne $assignment.Target.DeviceAndAppManagementAssignmentFilterType) { - $hashAssignment.add('deviceAndAppManagementAssignmentFilterType', $assignment.Target.DeviceAndAppManagementAssignmentFilterType.ToString()) + $hashAssignment.Add('deviceAndAppManagementAssignmentFilterType', $assignment.Target.DeviceAndAppManagementAssignmentFilterType.ToString()) } if ($null -ne $assignment.Target.DeviceAndAppManagementAssignmentFilterId) { - $hashAssignment.add('deviceAndAppManagementAssignmentFilterId', $assignment.Target.DeviceAndAppManagementAssignmentFilterId) + $hashAssignment.Add('deviceAndAppManagementAssignmentFilterId', $assignment.Target.DeviceAndAppManagementAssignmentFilterId) } } $assignmentResult += $hashAssignment } - return $assignmentResult + return ,$assignmentResult } function ConvertTo-IntunePolicyAssignment @@ -1207,16 +1212,17 @@ function ConvertTo-IntunePolicyAssignment $target = @{"@odata.type" = $assignment.dataType} if ($IncludeDeviceFilter) { - if ($null -ne $assignment.DeviceAndAppManagementAssignmentFilterId) - { - $target.add('deviceAndAppManagementAssignmentFilterId', $assignment.DeviceAndAppManagementAssignmentFilterId) - } if ($null -ne $assignment.DeviceAndAppManagementAssignmentFilterType) { - $target.add('deviceAndAppManagementAssignmentFilterType',$assignment.DeviceAndAppManagementAssignmentFilterType) + $target.Add('deviceAndAppManagementAssignmentFilterType', $assignment.DeviceAndAppManagementAssignmentFilterType) + $target.Add('deviceAndAppManagementAssignmentFilterId', $assignment.DeviceAndAppManagementAssignmentFilterId) } } - if ($assignment.dataType -like '*GroupAssignmentTarget') + if ($assignment.dataType -like '*CollectionAssignmentTarget') + { + $target.add('collectionId', $assignment.collectionId) + } + elseif ($assignment.dataType -like '*GroupAssignmentTarget') { $group = Get-MgGroup -GroupId ($assignment.groupId) -ErrorAction SilentlyContinue if ($null -eq $group) @@ -1228,14 +1234,14 @@ function ConvertTo-IntunePolicyAssignment { $message = "Skipping assignment for the group with DisplayName {$($assignment.groupDisplayName)} as it could not be found in the directory.`r`n" $message += "Please update your DSC resource extract with the correct groupId or groupDisplayName." - write-verbose -Message $message + Write-Verbose -Message $message $target = $null } - if ($group -and $group.count -gt 1) + if ($group -and $group.Count -gt 1) { $message = "Skipping assignment for the group with DisplayName {$($assignment.groupDisplayName)} as it is not unique in the directory.`r`n" $message += "Please update your DSC resource extract with the correct groupId or a unique group DisplayName." - write-verbose -Message $message + Write-Verbose -Message $message $group = $null $target = $null } @@ -1244,14 +1250,14 @@ function ConvertTo-IntunePolicyAssignment { $message = "Skipping assignment for the group with Id {$($assignment.groupId)} as it could not be found in the directory.`r`n" $message += "Please update your DSC resource extract with the correct groupId or a unique group DisplayName." - write-verbose -Message $message + Write-Verbose -Message $message $target = $null } } #Skipping assignment if group not found from either groupId or groupDisplayName if ($null -ne $group) { - $target.add('groupId',$group.Id) + $target.Add('groupId', $group.Id) } } @@ -1280,7 +1286,7 @@ function Compare-M365DSCIntunePolicyAssignment { foreach ($assignment in $Source) { - if ($assignment.dataType -like '*groupAssignmentTarget') + if ($assignment.dataType -like '*AssignmentTarget') { $assignmentTarget = $Target | Where-Object -FilterScript { $_.dataType -eq $assignment.DataType -and $_.groupId -eq $assignment.groupId } $testResult = $null -ne $assignmentTarget @@ -2007,4 +2013,4 @@ function Update-IntuneDeviceConfigurationPolicy return $null } -} \ No newline at end of file +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 index 9f543a8eef..d43e461f56 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 @@ -248,6 +248,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should Reverse Engineer resource from the Export method' { $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty } } } diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 index b0aedbe068..4d5e9e8d1d 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 @@ -50,12 +50,21 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } } - Mock -CommandName Get-DeviceManagementConfigurationPolicyAssignment -MockWith { + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { return @(@{ - - dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' - collectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' - }) + Id = '12345-12345-12345-12345-12345' + Source = 'direct' + SourceId = '12345-12345-12345-12345-12345' + Target = @{ + DeviceAndAppManagementAssignmentFilterType = 'none' + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.configurationManagerCollectionAssignmentTarget' + collectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } + ) + } + }) } Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { } @@ -98,8 +107,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { $testParams = @{ Assignments = @( (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ - DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' - CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + DataType = '#microsoft.graph.configurationManagerCollectionAssignmentTarget' + CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) Credential = $Credential @@ -133,8 +142,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { $testParams = @{ Assignments = [CimInstance[]]@( (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ - DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' - CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + DataType = '#microsoft.graph.configurationManagerCollectionAssignmentTarget' + CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) Credential = $Credential @@ -177,12 +186,11 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { ) }) } - } AdditionalProperties = $null } } - Mock -CommandName Update-DeviceManagementConfigurationPolicy -MockWith { + Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { } } @@ -196,7 +204,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should update the instance from the Set method' { Set-TargetResource @testParams - Should -Invoke -CommandName Update-DeviceManagementConfigurationPolicy -Exactly 1 + Should -Invoke -CommandName Update-IntuneDeviceConfigurationPolicy -Exactly 1 } } @@ -210,8 +218,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Identity = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' Assignments = [CimInstance[]]@( (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ - DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' - CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + DataType = '#microsoft.graph.configurationManagerCollectionAssignmentTarget' + CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) } @@ -248,7 +256,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { ) }) } - } AdditionalProperties = $null } @@ -265,8 +272,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { $testParams = @{ Assignments = @( (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ - DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' - CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + DataType = '#microsoft.graph.configurationManagerCollectionAssignmentTarget' + CollectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) Credential = $Credential @@ -308,7 +315,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { ) }) } - } AdditionalProperties = $null } @@ -372,7 +378,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { ) }) } - } AdditionalProperties = $null } @@ -381,6 +386,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should Reverse Engineer resource from the Export method' { $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty } } } diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 index bd2a7728fb..2a5931782d 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 @@ -343,6 +343,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should Reverse Engineer resource from the Export method' { $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty } } } From f16e44bb808a6e896e33bac68b1c4c59181b7ccd Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 15 Jun 2024 02:18:38 +0200 Subject: [PATCH 012/273] Fix Intune device remedation assignment --- CHANGELOG.md | 6 + .../MSFT_IntuneDeviceRemediation.psm1 | 156 ++++++++++++++---- .../MSFT_IntuneDeviceRemediation.schema.mof | 23 ++- .../IntuneDeviceRemediation/1-Create.ps1 | 17 +- .../IntuneDeviceRemediation/2-Update.ps1 | 17 +- ...ft365DSC.IntuneDeviceRemediation.Tests.ps1 | 134 +++++++++++++++ 6 files changed, 313 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a978c34374..4381c79c00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneDeviceRemediation + * Fix invalid assignment export and import. + FIXES [#4726](https://github.com/microsoft/Microsoft365DSC/issues/4726) + # 1.24.612.1 * IntuneAppConfigurationDevicePolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 index 9f57d74e78..52e6061070 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 @@ -228,18 +228,22 @@ function Get-TargetResource AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementDeviceHealthScriptAssignment -DeviceHealthScriptId $Id $assignmentResult = @() - foreach ($assignmentEntry in $AssignmentsValues) + foreach ($assignment in $assignmentsValues) { - $assignmentValue = @{ - dataType = $assignmentEntry.Target.AdditionalProperties.'@odata.type' - deviceAndAppManagementAssignmentFilterType = $(if ($null -ne $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType) - {$assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterType.ToString()}) - deviceAndAppManagementAssignmentFilterId = $assignmentEntry.Target.DeviceAndAppManagementAssignmentFilterId - groupId = $assignmentEntry.Target.AdditionalProperties.groupId + $assignmentResult += @{ + RunRemediationScript = $assignment.RunRemediationScript + RunSchedule = @{ + DataType = $assignment.RunSchedule.AdditionalProperties.'@odata.type' + Date = $assignment.RunSchedule.AdditionalProperties.date + Interval = $assignment.RunSchedule.Interval + Time = Get-Date -Format 'HH:mm:ss' -Date $assignment.RunSchedule.AdditionalProperties.time + UseUtc = $assignment.RunSchedule.AdditionalProperties.useUtc + } + Assignment = ConvertFrom-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignment $assignment } - $assignmentResult += $assignmentValue } $results.Add('Assignments', $assignmentResult) @@ -397,14 +401,43 @@ function Set-TargetResource $assignmentsHash = @() foreach ($assignment in $Assignments) { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + $assignmentTarget = ConvertTo-IntunePolicyAssignment -Assignments $assignment.Assignment + $runSchedule = $null + if ($null -ne $assignment.RunSchedule.DataType) { + $runSchedule = @{ + '@odata.type' = $assignment.RunSchedule.DataType + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.Date)) + { + $runSchedule.Add('date', $assignment.RunSchedule.Date) + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.Interval)) + { + $runSchedule.Add('interval', $assignment.RunSchedule.Interval) + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.Time)) + { + $runSchedule.Add('time', $assignment.RunSchedule.Time) + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.UseUtc)) + { + $runSchedule.Add('useUtc', $assignment.RunSchedule.UseUtc) + } + } + $assignmentsHash += @{ + runRemediationScript = $assignment.RunRemediationScript + runSchedule = $runSchedule + target = $assignmentTarget.target + } } - if ($policy.id) + if ($policy.Id) { - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` - -Targets $assignmentsHash ` - -Repository 'deviceManagement/deviceHealthScripts' + $uri = "/beta/deviceManagement/deviceHealthScripts/$($policy.Id)/assign" + $body = @{ + deviceHealthScriptAssignments = $assignmentsHash + } | ConvertTo-Json -Depth 20 + Invoke-MgGraphRequest -Method POST -Uri $uri -Body $body -ErrorAction Stop 4> $null } #endregion } @@ -433,20 +466,49 @@ function Set-TargetResource Update-MgBetaDeviceManagementDeviceHealthScript ` -DeviceHealthScriptId $currentInstance.Id ` -BodyParameter $UpdateParameters + $assignmentsHash = @() foreach ($assignment in $Assignments) { - $assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignment + $assignmentTarget = ConvertTo-IntunePolicyAssignment -Assignments $assignment.Assignment + $runSchedule = $null + if ($null -ne $assignment.RunSchedule.DataType) { + $runSchedule = @{ + '@odata.type' = $assignment.RunSchedule.DataType + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.Date)) + { + $runSchedule.Add('date', $assignment.RunSchedule.Date) + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.Interval)) + { + $runSchedule.Add('interval', $assignment.RunSchedule.Interval) + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.Time)) + { + $runSchedule.Add('time', $assignment.RunSchedule.Time) + } + if (-not [string]::IsNullOrEmpty($assignment.RunSchedule.UseUtc)) + { + $runSchedule.Add('useUtc', $assignment.RunSchedule.UseUtc) + } + } + $assignmentsHash += @{ + runRemediationScript = $assignment.RunRemediationScript + runSchedule = $runSchedule + target = $assignmentTarget.target + } } - Update-DeviceConfigurationPolicyAssignment ` - -DeviceConfigurationPolicyId $currentInstance.id ` - -Targets $assignmentsHash ` - -Repository 'deviceManagement/deviceHealthScripts' + $uri = "/beta/deviceManagement/deviceHealthScripts/$($currentInstance.Id)/assign" + $body = @{ + deviceHealthScriptAssignments = $assignmentsHash + } | ConvertTo-Json -Depth 20 + Invoke-MgGraphRequest -Method POST -Uri $uri -Body $body -ErrorAction Stop 4> $null #endregion } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - Write-Verbose -Message "Removing the Intune Device Remediation with Id {$($currentInstance.Id)}" + Write-Verbose -Message "Removing the Intune Device Remediation with Id {$($currentInstance.Id)}" #region resource generator code Remove-MgBetaDeviceManagementDeviceHealthScript -DeviceHealthScriptId $currentInstance.Id #endregion @@ -582,17 +644,39 @@ function Test-TargetResource { $source = $PSBoundParameters.$key $target = $CurrentValues.$key - if ($source.getType().Name -like '*CimInstance*') + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` - -Source ($source) ` - -Target ($target) + if ($key -eq "Assignments") + { + [hashtable[]]$sourcesWithoutAssignment = @() + foreach ($sourceObject in $source) + { + $sourceWithoutAssignment = $sourceObject.Clone() + $sourcesWithoutAssignment += $sourceWithoutAssignment + } + + [hashtable[]]$targetsWithoutAssignment = @() + foreach ($targetObject in $target) + { + $targetWithoutAssignment = $targetObject.Clone() + $targetsWithoutAssignment += $targetWithoutAssignment + } - if (-Not $testResult) + $testResult = Compare-M365DSCComplexObject ` + -Source ($sourcesWithoutAssignment) ` + -Target ($targetsWithoutAssignment) + } + else + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + } + + if (-not $testResult) { - $testResult = $false break } @@ -600,11 +684,8 @@ function Test-TargetResource } } - $ValuesToCheck.remove('Id') | Out-Null - $ValuesToCheck.Remove('Credential') | Out-Null - $ValuesToCheck.Remove('ApplicationId') | Out-Null - $ValuesToCheck.Remove('TenantId') | Out-Null - $ValuesToCheck.Remove('ApplicationSecret') | Out-Null + $ValuesToCheck.Remove('Id') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" @@ -752,7 +833,15 @@ function Export-TargetResource } if ($Results.Assignments) { - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + foreach ($assignment in $Results.Assignments) + { + $runSchedule = Get-M365DSCDRGComplexTypeToString -ComplexObject $assignment.RunSchedule -CIMInstanceName MSFT_IntuneDeviceRemediationRunSchedule + $assignment.RunSchedule = $runSchedule + $target = Get-M365DSCDRGComplexTypeToString -ComplexObject $assignment.Assignment -CIMInstanceName MSFT_DeviceManagementConfigurationPolicyAssignments + $assignment.Assignment = $target | Select-Object -First 1 + $assignment = Get-M365DSCDRGComplexTypeToString -ComplexObject $assignment -CIMInstanceName MSFT_IntuneDeviceRemediationPolicyAssignments + } + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName MSFT_IntuneDeviceRemediationPolicyAssignments if ($complexTypeStringResult) { $Results.Assignments = $complexTypeStringResult @@ -777,7 +866,10 @@ function Export-TargetResource } if ($Results.Assignments) { - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -isCIMArray:$true + $currentDSCBlock = (Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -isCIMArray:$true).Replace("''", "'") + $currentDSCBlock = [Regex]::Replace($currentDSCBlock, "Assignment = '\r\n ", "Assignment = ") + $currentDSCBlock = $currentDSCBlock.Replace("RunSchedule = '", "RunSchedule = ").Replace("}'", "}") + $currentDSCBlock = [Regex]::Replace($currentDSCBlock, "\r\n '", "") } $dscContent += $currentDSCBlock diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof index 793acac5cb..9270cfc537 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof @@ -8,7 +8,26 @@ class MSFT_DeviceManagementConfigurationPolicyAssignments [Write, Description("The group Display Name that is the target of the assignment.")] String groupDisplayName; [Write, Description("The collection Id that is the target of the assignment.(ConfigMgr)")] String collectionId; }; -[ClassVersion("1.0.0")] + +[ClassVersion("1.0.0.0")] +class MSFT_IntuneDeviceRemediationRunSchedule +{ + [Write, Description("The type of the schedule."), ValueMap{"#microsoft.graph.deviceHealthScriptRunOnceSchedule","#microsoft.graph.deviceHealthScriptHourlySchedule","#microsoft.graph.deviceHealthScriptDailySchedule"}, Values{"#microsoft.graph.deviceHealthScriptRunOnceSchedule","#microsoft.graph.deviceHealthScriptHourlySchedule","#microsoft.graph.deviceHealthScriptDailySchedule"}] String dataType; + [Write, Description("The date when to run the schedule. Only applicable when the odataType is a run once schedule. Format: 2024-01-01")] String Date; + [Write, Description("The interval of the schedule. Must be 1 in case of a run once schedule.")] UInt32 Interval; + [Write, Description("The time when to run the schedule. Only applicable when the dataType is not an hourly schedule. Format: 01:00:00")] String Time; + [Write, Description("If to use UTC as the time source. Only applicable when the dataType is not an hourly schedule.")] Boolean UseUtc; +}; + +[ClassVersion("1.0.0.0")] +class MSFT_IntuneDeviceRemediationPolicyAssignments +{ + [Write, Description("If the remediation script should be run.")] Boolean RunRemediationScript; + [Write, Description("The run schedule of the remediation."), EmbeddedInstance("MSFT_IntuneDeviceRemediationRunSchedule")] String RunSchedule; + [Write, Description("Represents the assignment of the schedule."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignment; +}; + +[ClassVersion("1.0.0.0")] class MSFT_MicrosoftGraphDeviceHealthScriptParameter { [Write, Description("Whether Apply DefaultValue When Not Assigned")] Boolean ApplyDefaultValueWhenNotAssigned; @@ -35,7 +54,7 @@ class MSFT_IntuneDeviceRemediation : OMI_BaseResource [Write, Description("Indicate whether PowerShell script(s) should run as 32-bit")] Boolean RunAs32Bit; [Write, Description("Indicates the type of execution context. Possible values are: system, user."), ValueMap{"system","user"}, Values{"system","user"}] String RunAsAccount; [Key, Description("The unique identifier for an entity. Read-only.")] String Id; - [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; + [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_IntuneDeviceRemediationPolicyAssignments")] String Assignments[]; [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 index 47145d4c9a..0910babcef 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 @@ -16,9 +16,20 @@ Configuration Example IntuneDeviceRemediation 'ConfigureDeviceRemediation' { Assignments = @( - MSFT_DeviceManagementConfigurationPolicyAssignments{ - deviceAndAppManagementAssignmentFilterType = 'none' - dataType = '#microsoft.graph.allDevicesAssignmentTarget' + 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' + } } ); Credential = $Credscredential diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 index dc4bef9bde..116faa673a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 @@ -16,9 +16,20 @@ Configuration Example IntuneDeviceRemediation 'ConfigureDeviceRemediation' { Assignments = @( - MSFT_DeviceManagementConfigurationPolicyAssignments{ - deviceAndAppManagementAssignmentFilterType = 'none' - dataType = '#microsoft.graph.allDevicesAssignmentTarget' + 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' + } } ); Credential = $Credscredential diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceRemediation.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceRemediation.Tests.ps1 index 5b991519be..d354e20c66 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceRemediation.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceRemediation.Tests.ps1 @@ -56,12 +56,56 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { $Script:ExportMode = $false Mock -CommandName Get-MgBetaDeviceManagementDeviceHealthScriptAssignment -MockWith { + return @( + @{ + Id = "FakeStringValue" + RunRemediationScript = $False + RunSchedule = @{ + Interval = 1 + AdditionalProperties = @{ + '@odata.type' = "#microsoft.graph.deviceHealthScriptRunOnceSchedule" + useUtc = $false + time = "01:00:00.0000000" + date = "2024-01-01" + } + } + Target = @{ + AdditionalProperties = @{ + '@odata.type' = "#microsoft.graph.groupAssignmentTarget" + groupId = "FakeStringValue" + } + "DeviceAndAppManagementAssignmentFilterId" = "FakeStringValue" + "DeviceAndAppManagementAssignmentFilterType" = "none" + } + DeviceHealthScriptId = "FakeStringValue" + RoleScopeTagIds = @("FakeStringValue") + Ensure = "Present" + } + ) } } # Test contexts Context -Name "The IntuneDeviceRemediation should exist but it DOES NOT" -Fixture { BeforeAll { $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_IntuneDeviceRemediationPolicyAssignments -Property @{ + RunSchedule = New-CimInstance -ClassName MSFT_IntuneDeviceRemediationRunSchedule -Property @{ + Date = '2024-01-01' + Time = '01:00:00' + Interval = 1 + DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule' + UseUtc = $False + } -ClientOnly + RunRemediationScript = $False + Assignment = New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + deviceAndAppManagementAssignmentFilterId = 'FakeStringValue' + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.groupAssignmentTarget' + groupId = 'FakeStringValue' + } -ClientOnly + } -ClientOnly) + ) Description = "FakeStringValue" DetectionScriptContent = "VGVzdA==" # "Test" DetectionScriptParameters = [CimInstance[]]@( @@ -116,6 +160,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name "The IntuneDeviceRemediation exists but it SHOULD NOT" -Fixture { BeforeAll { $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_IntuneDeviceRemediationPolicyAssignments -Property @{ + RunSchedule = New-CimInstance -ClassName MSFT_IntuneDeviceRemediationRunSchedule -Property @{ + Date = '2024-01-01' + Time = '01:00:00' + Interval = 1 + DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule' + UseUtc = $False + } -ClientOnly + RunRemediationScript = $False + Assignment = New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + deviceAndAppManagementAssignmentFilterId = 'FakeStringValue' + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.groupAssignmentTarget' + groupId = 'FakeStringValue' + } -ClientOnly + } -ClientOnly) + ) Description = "FakeStringValue" DetectionScriptContent = "VGVzdA==" # "Test" DetectionScriptParameters = [CimInstance[]]@( @@ -153,6 +215,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Get-MgBetaDeviceManagementDeviceHealthScript -MockWith { return @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_IntuneDeviceRemediationPolicyAssignments -Property @{ + RunSchedule = New-CimInstance -ClassName MSFT_IntuneDeviceRemediationRunSchedule -Property @{ + Date = '2024-01-01' + Time = '01:00:00' + Interval = 1 + DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule' + UseUtc = $False + } -ClientOnly + RunRemediationScript = $False + Assignment = New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + deviceAndAppManagementAssignmentFilterId = 'FakeStringValue' + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.groupAssignmentTarget' + groupId = 'FakeStringValue' + } -ClientOnly + } -ClientOnly) + ) Description = "FakeStringValue" DetectionScriptContent = [byte[]] @(84, 101, 115, 116) DetectionScriptParameters = @( @@ -205,6 +285,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name "The IntuneDeviceRemediation Exists and Values are already in the desired state" -Fixture { BeforeAll { $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_IntuneDeviceRemediationPolicyAssignments -Property @{ + RunSchedule = New-CimInstance -ClassName MSFT_IntuneDeviceRemediationRunSchedule -Property @{ + Date = '2024-01-01' + Time = '01:00:00' + Interval = 1 + DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule' + UseUtc = $False + } -ClientOnly + RunRemediationScript = $False + Assignment = New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + deviceAndAppManagementAssignmentFilterId = 'FakeStringValue' + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.groupAssignmentTarget' + groupId = 'FakeStringValue' + } -ClientOnly + } -ClientOnly) + ) Description = "FakeStringValue" DetectionScriptContent = "VGVzdA==" # "Test" DetectionScriptParameters = [CimInstance[]]@( @@ -286,6 +384,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name "The IntuneDeviceRemediation exists and values are NOT in the desired state" -Fixture { BeforeAll { $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_IntuneDeviceRemediationPolicyAssignments -Property @{ + RunSchedule = New-CimInstance -ClassName MSFT_IntuneDeviceRemediationRunSchedule -Property @{ + Date = '2024-01-01' + Time = '01:00:00' + Interval = 1 + DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule' + UseUtc = $False + } -ClientOnly + RunRemediationScript = $False + Assignment = New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + deviceAndAppManagementAssignmentFilterId = 'FakeStringValue' + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.groupAssignmentTarget' + groupId = 'FakeStringValue' + } -ClientOnly + } -ClientOnly) + ) Description = "FakeStringValue" DetectionScriptContent = "VGVzdA==" # "Test" DetectionScriptParameters = [CimInstance[]]@( @@ -375,6 +491,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Get-MgBetaDeviceManagementDeviceHealthScript -MockWith { return @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_IntuneDeviceRemediationPolicyAssignments -Property @{ + RunSchedule = New-CimInstance -ClassName MSFT_IntuneDeviceRemediationRunSchedule -Property @{ + Date = '2024-01-01' + Time = '01:00:00' + Interval = 1 + DataType = '#microsoft.graph.deviceHealthScriptRunOnceSchedule' + UseUtc = $False + } -ClientOnly + RunRemediationScript = $False + Assignment = New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + deviceAndAppManagementAssignmentFilterId = 'FakeStringValue' + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.groupAssignmentTarget' + groupId = 'FakeStringValue' + } -ClientOnly + } -ClientOnly) + ) Description = "FakeStringValue" DetectionScriptContent = [byte[]] @(84, 101, 115, 116) DetectionScriptParameters = @( From 7c73b191f685168d5950e446b246788b2306f3db Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 15 Jun 2024 13:22:50 +0200 Subject: [PATCH 013/273] Allow null as parameter when converting Intune assignments --- Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 2b5c3f7ae4..647b6e5b44 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1200,12 +1200,18 @@ function ConvertTo-IntunePolicyAssignment [OutputType([Hashtable[]])] param ( [Parameter(Mandatory = $true)] + [AllowNull()] $Assignments, [Parameter()] [System.Boolean] $IncludeDeviceFilter = $true ) + if ($null -eq $Assignments) + { + return ,@() + } + $assignmentResult = @() foreach ($assignment in $Assignments) { From 5d1df8596852dbfe2c78609cd8b555382248b794 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 15 Jun 2024 13:47:20 +0200 Subject: [PATCH 014/273] Fix test cases and null output to file --- .../MSFT_IntuneASRRulesPolicyWindows10.psm1 | 2 +- ...tProtectionLocalAdministratorPasswordSolutionPolicy.psm1 | 6 +++--- ...tuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 | 2 +- .../MSFT_IntuneAccountProtectionPolicy.psm1 | 2 +- .../MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 | 2 +- ...eConfigurationAdministrativeTemplatePolicyWindows10.psm1 | 2 +- .../MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 | 2 +- .../MSFT_IntuneDiskEncryptionMacOS.psm1 | 2 +- ...T_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 | 2 +- .../Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 | 1 + ...uneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 | 2 +- 11 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 index cfbb8f492e..299e5c9e7b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 @@ -553,7 +553,7 @@ function Set-TargetResource #Using Rest to reduce the number of calls $Uri = "https://graph.microsoft.com/beta/deviceManagement/intents/$($currentPolicy.Identity)/updateSettings" $body = @{'settings' = $settings } - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> Out-Null + Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> $null #region Assignments $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index ebe2c1b9e3..9f1bf3b454 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -1154,7 +1154,7 @@ function Update-DeviceManagementConfigurationPolicy Invoke-MgGraphRequest -Method PUT ` -Uri $Uri ` -ContentType 'application/json' ` - -Body ($policy | ConvertTo-Json -Depth 20) 4> out-null + -Body ($policy | ConvertTo-Json -Depth 20) 4> $null } function Get-DeviceManagementConfigurationPolicyAssignment @@ -1172,7 +1172,7 @@ function Get-DeviceManagementConfigurationPolicyAssignment $configurationPolicyAssignments = @() $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceManagementConfigurationPolicyId/assignments" - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> out-null + $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> $null foreach ($result in $results.value.target) { $configurationPolicyAssignments += @{ @@ -1187,7 +1187,7 @@ function Get-DeviceManagementConfigurationPolicyAssignment while ($results.'@odata.nextLink') { $Uri = $results.'@odata.nextLink' - $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> out-null + $results = Invoke-MgGraphRequest -Method GET -Uri $Uri -ErrorAction Stop 4> $null foreach ($result in $results.value.target) { $configurationPolicyAssignments += @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 index 2e4450f341..58d3d8bf32 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 @@ -828,7 +828,7 @@ function Update-DeviceManagementConfigurationPolicy Invoke-MgGraphRequest -Method PUT ` -Uri $Uri ` -ContentType 'application/json' ` - -Body ($policy | ConvertTo-Json -Depth 20) 4> out-null + -Body ($policy | ConvertTo-Json -Depth 20) 4> $null } Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 index b1991e4383..de5585c1c3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 @@ -450,7 +450,7 @@ function Set-TargetResource #Using Rest to reduce the number of calls $Uri = "https://graph.microsoft.com/beta/deviceManagement/intents/$($currentPolicy.Identity)/updateSettings" $body = @{'settings' = $settings } - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> Out-Null + Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> $null #region Assignments $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 index dbe036ce95..66650d1814 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 @@ -1830,7 +1830,7 @@ function Update-IntuneDeviceConfigurationPolicy } $body = $policy | ConvertTo-Json -Depth 20 #write-verbose -Message $body - Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop 4> Out-Null + Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop 4> $null } catch diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 index 72ee2d7916..7b9c180d45 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 @@ -1006,7 +1006,7 @@ function Update-DeviceConfigurationGroupPolicyDefinitionValue 'deletedIds' = $DefinitionValueToRemoveIds } #Write-Verbose -Message ($body | ConvertTo-Json -Depth 100) - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ErrorAction Stop 4> Out-Null + Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ErrorAction Stop 4> $null } catch { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 index 9a94cdd9e2..dff34c84e4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 @@ -830,7 +830,7 @@ function Update-DeviceEnrollmentConfigurationPriority -Method POST ` -Body $body ` -Uri $Uri ` - -ErrorAction Stop 4> Out-Null + -ErrorAction Stop 4> $null } catch { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 index be66e1dcee..072a820729 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 @@ -372,7 +372,7 @@ function Set-TargetResource #region resource generator code $Uri = "https://graph.microsoft.com/beta/deviceManagement/intents/$($currentInstance.Id)/updateSettings" $body = @{'settings' = $settings } - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> Out-Null + Invoke-MgGraphRequest -Method POST -Uri $Uri -Body ($body | ConvertTo-Json -Depth 20) -ContentType 'application/json' 4> $null $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 index a219885cde..ed1cea2322 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 @@ -927,7 +927,7 @@ function Update-DeviceManagementConfigurationPolicy Invoke-MgGraphRequest -Method PUT ` -Uri $Uri ` -ContentType 'application/json' ` - -Body ($policy | ConvertTo-Json -Depth 20) 4> out-null + -Body ($policy | ConvertTo-Json -Depth 20) 4> $null } Export-ModuleMember -Function *-TargetResource diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 index d43e461f56..db536619f4 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionPolicy.Tests.ps1 @@ -92,6 +92,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { value = $true } }) + TemplateId = '0f2b5d70-d4e9-4156-8c16-1397eb6c54a5' } } diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 index 2a5931782d..fc863b5c09 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyWindows10.Tests.ps1 @@ -314,7 +314,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Description = 'My Test Description' Name = 'My Test' TemplateReference = @{ - TemplateId = '5dd36540-eb22-4e7e-b19c-2a07772ba627_1' + TemplateId = '0385b795-0f2f-44ac-8602-9f65bf6adede_1' } } } From e22bd4be50ede4e517413f9bdca21150087f71fa Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 15 Jun 2024 14:07:49 +0200 Subject: [PATCH 015/273] Fix error when time is missing and export indenting --- .../MSFT_IntuneDeviceRemediation.psm1 | 43 +++++++++++++------ .../Modules/M365DSCDRGUtil.psm1 | 6 +-- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 index 52e6061070..5f4a31dddd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 @@ -233,16 +233,27 @@ function Get-TargetResource $assignmentResult = @() foreach ($assignment in $assignmentsValues) { + if (-not [System.String]::IsNullOrEmpty($assignment.RunSchedule.AdditionalProperties.time)) + { + $time = Get-Date -Format 'HH:mm:ss' -Date $assignment.RunSchedule.AdditionalProperties.time + } + else + { + $time = $null + } + $assignmentResult += @{ RunRemediationScript = $assignment.RunRemediationScript RunSchedule = @{ DataType = $assignment.RunSchedule.AdditionalProperties.'@odata.type' Date = $assignment.RunSchedule.AdditionalProperties.date Interval = $assignment.RunSchedule.Interval - Time = Get-Date -Format 'HH:mm:ss' -Date $assignment.RunSchedule.AdditionalProperties.time + Time = $time UseUtc = $assignment.RunSchedule.AdditionalProperties.useUtc } - Assignment = ConvertFrom-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignment $assignment + Assignment = (ConvertFrom-IntunePolicyAssignment ` + -IncludeDeviceFilter:$true ` + -Assignments $assignment) | Select-Object -First 1 } } $results.Add('Assignments', $assignmentResult) @@ -833,16 +844,24 @@ function Export-TargetResource } if ($Results.Assignments) { - foreach ($assignment in $Results.Assignments) - { - $runSchedule = Get-M365DSCDRGComplexTypeToString -ComplexObject $assignment.RunSchedule -CIMInstanceName MSFT_IntuneDeviceRemediationRunSchedule - $assignment.RunSchedule = $runSchedule - $target = Get-M365DSCDRGComplexTypeToString -ComplexObject $assignment.Assignment -CIMInstanceName MSFT_DeviceManagementConfigurationPolicyAssignments - $assignment.Assignment = $target | Select-Object -First 1 - $assignment = Get-M365DSCDRGComplexTypeToString -ComplexObject $assignment -CIMInstanceName MSFT_IntuneDeviceRemediationPolicyAssignments - } - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName MSFT_IntuneDeviceRemediationPolicyAssignments - if ($complexTypeStringResult) + $complexMapping = @( + @{ + Name = 'RunSchedule' + CimInstanceName = 'IntuneDeviceRemediationRunSchedule' + IsRequired = $false + } + @{ + Name = 'Assignment' + CimInstanceName = 'DeviceManagementConfigurationPolicyAssignments' + IsRequired = $true + } + ) + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString ` + -ComplexObject $Results.Assignments ` + -CIMInstanceName 'MSFT_IntuneDeviceRemediationPolicyAssignments' ` + -ComplexTypeMapping $complexMapping + + if (-not [string]::IsNullOrEmpty($complexTypeStringResult)) { $Results.Assignments = $complexTypeStringResult } diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 412350e301..fd423a90f5 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1186,7 +1186,7 @@ function ConvertFrom-IntunePolicyAssignment $assignmentResult += $hashAssignment } - return $assignmentResult + return ,$assignmentResult } function ConvertTo-IntunePolicyAssignment @@ -1261,7 +1261,7 @@ function ConvertTo-IntunePolicyAssignment } } - return $assignmentResult + return ,$assignmentResult } function Compare-M365DSCIntunePolicyAssignment @@ -2007,4 +2007,4 @@ function Update-IntuneDeviceConfigurationPolicy return $null } -} \ No newline at end of file +} From 4d052d11fb512bf3942cfaa9dbddd750f3d507c0 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sun, 16 Jun 2024 16:32:34 +0200 Subject: [PATCH 016/273] Cleanup Intune Device Remediation test --- .../MSFT_IntuneDeviceRemediation.psm1 | 31 ++----------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 index 5f4a31dddd..cd8bc0af33 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 @@ -657,34 +657,9 @@ function Test-TargetResource $target = $CurrentValues.$key if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - - if ($key -eq "Assignments") - { - [hashtable[]]$sourcesWithoutAssignment = @() - foreach ($sourceObject in $source) - { - $sourceWithoutAssignment = $sourceObject.Clone() - $sourcesWithoutAssignment += $sourceWithoutAssignment - } - - [hashtable[]]$targetsWithoutAssignment = @() - foreach ($targetObject in $target) - { - $targetWithoutAssignment = $targetObject.Clone() - $targetsWithoutAssignment += $targetWithoutAssignment - } - - $testResult = Compare-M365DSCComplexObject ` - -Source ($sourcesWithoutAssignment) ` - -Target ($targetsWithoutAssignment) - } - else - { - $testResult = Compare-M365DSCComplexObject ` - -Source ($source) ` - -Target ($target) - } + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) if (-not $testResult) { From 8037a8d55f23b526bbf36335565ee45d343b9873 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sun, 16 Jun 2024 17:42:12 +0200 Subject: [PATCH 017/273] Update Intune assignment comparison and Resource generator --- CHANGELOG.md | 5 ++- ...FT_IntuneAppConfigurationDevicePolicy.psm1 | 13 ++---- .../MSFT_IntuneAppConfigurationPolicy.psm1 | 7 --- ...AdministrativeTemplatePolicyWindows10.psm1 | 7 +-- ...iceConfigurationCustomPolicyWindows10.psm1 | 6 --- ...rForEndpointOnboardingPolicyWindows10.psm1 | 6 --- ...onDeliveryOptimizationPolicyWindows10.psm1 | 7 --- ...onfigurationDomainJoinPolicyWindows10.psm1 | 7 --- ...figurationEmailProfilePolicyWindows10.psm1 | 7 --- ...tionEndpointProtectionPolicyWindows10.psm1 | 7 --- ...ationFirmwareInterfacePolicyWindows10.psm1 | 2 - ...onitoringConfigurationPolicyWindows10.psm1 | 2 - ...tionIdentityProtectionPolicyWindows10.psm1 | 2 - ...ImportedPfxCertificatePolicyWindows10.psm1 | 2 - ...viceConfigurationKioskPolicyWindows10.psm1 | 2 - ...urationNetworkBoundaryPolicyWindows10.psm1 | 2 - ...urationPkcsCertificatePolicyWindows10.psm1 | 2 - ...eviceConfigurationPlatformScriptMacOS.psm1 | 2 - ...iceConfigurationPlatformScriptWindows.psm1 | 2 - ...ationPolicyAndroidDeviceAdministrator.psm1 | 2 - ...ConfigurationPolicyAndroidDeviceOwner.psm1 | 2 - ...urationPolicyAndroidOpenSourceProject.psm1 | 2 - ...ConfigurationPolicyAndroidWorkProfile.psm1 | 45 ++----------------- ..._IntuneDeviceConfigurationPolicyMacOS.psm1 | 2 - ...uneDeviceConfigurationPolicyWindows10.psm1 | 30 +------------ ...FT_IntuneDeviceConfigurationPolicyiOS.psm1 | 2 - ...urationSCEPCertificatePolicyWindows10.psm1 | 2 - ...rationSecureAssessmentPolicyWindows10.psm1 | 2 - ...ationSharedMultiDevicePolicyWindows10.psm1 | 2 - ...tionTrustedCertificatePolicyWindows10.psm1 | 2 - ...DeviceConfigurationVpnPolicyWindows10.psm1 | 2 - ...nfigurationWindowsTeamPolicyWindows10.psm1 | 2 - ...neDeviceEnrollmentPlatformRestriction.psm1 | 2 - ...neDeviceEnrollmentStatusPageWindows10.psm1 | 2 - .../MSFT_IntuneDeviceRemediation.psm1 | 2 - .../MSFT_IntuneDiskEncryptionMacOS.psm1 | 19 +++++--- .../MSFT_IntunePolicySets.psm1 | 2 - ...neSettingCatalogCustomPolicyWindows10.psm1 | 1 - ...tDeploymentProfileAzureADHybridJoined.psm1 | 2 - ...topilotDeploymentProfileAzureADJoined.psm1 | 29 ------------ ...nProtectionPolicyWindows10MdmEnrolled.psm1 | 2 - ...rBusinessDriverUpdateProfileWindows10.psm1 | 2 - ...BusinessFeatureUpdateProfileWindows10.psm1 | 2 - ...ForBusinessRingUpdateProfileWindows10.psm1 | 29 ------------ .../Modules/M365DSCDRGUtil.psm1 | 42 +++++++++++------ ResourceGenerator/Module.Template.psm1 | 17 ++----- 46 files changed, 58 insertions(+), 282 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02793687f0..534e740286 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,11 @@ * M365DSCDRGUtil * Add `collectionId` export to `ConvertFrom-IntunePolicyAssignment` + * Add handling for Intune assignments in `Compare-M365DSCComplexObject` +* M365DSCResourceGenerator + * Update CimInstance comparison template * MISC - * Add group display name export across Intune resources + * Add group display name export and update assignment comparison across Intune resources # 1.24.612.1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 index f51f6c6720..71d7b8a659 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 @@ -604,16 +604,9 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.GetType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - - if ($key -eq "Assignments") - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - else - { - $testResult = Compare-M365DSCComplexObject -Source ($source) -Target ($target) - } + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) if (-not $testResult) { break } diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 index 6446ea2caa..8e92264b4f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 @@ -384,17 +384,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 index 7b9c180d45..ae48b63d05 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 @@ -695,10 +695,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source #Removing Key Definition because it is Read-Only and ID as random if ($key -eq 'DefinitionValues') { + $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source foreach ($definitionValue in $source) { $definitionValue.remove('Definition') @@ -727,11 +727,6 @@ function Test-TargetResource -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 index 27267174c5..da76483b1d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 @@ -488,16 +488,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 index 138c7fe2ef..5568a023e3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 @@ -487,16 +487,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 index c18fcfac7d..4e4b975bd7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 @@ -708,17 +708,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 index ce7e63783d..4d4c45f418 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 @@ -448,17 +448,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 index 0e720a2bba..b56ea2d480 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 @@ -610,17 +610,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 index 9872636808..2f5fbf8a9c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 @@ -4854,17 +4854,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if ($key -eq 'Assignments') - { - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - } - if (-Not $testResult) { $testResult = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 index 64c2f2b991..851e04494c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 @@ -850,8 +850,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 index ac5435abea..d3a39b0d4b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 @@ -447,8 +447,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 index 7358cbd46a..df8e451d77 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 @@ -596,8 +596,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 index e61597df42..c35a631d74 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 @@ -511,8 +511,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 index 0aef32a176..e6edd9ab77 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 @@ -677,8 +677,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 index e43a2f4422..6ec8b19c2c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 @@ -442,8 +442,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 index 8629194fcb..361f4712c4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 @@ -631,8 +631,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 index 4d15e22d1d..c5d71eb505 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 @@ -486,8 +486,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 index ef5af3cd33..b525226577 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 @@ -469,8 +469,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 index 94da7aa3fa..33c1f163c8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 @@ -1167,8 +1167,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) -verbose diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 index 642ec46423..382afb0ab1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 @@ -2366,8 +2366,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) -verbose diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 index e0d7d742d1..c009f67f8c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 @@ -619,8 +619,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 index 6a638c6dcb..e45f007810 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 @@ -948,48 +948,11 @@ function Test-TargetResource if ($CurrentValues.Assignments) { - if ($CurrentValues.Assignments.count -ne $ValuesToCheck.Assignments.count) - { - Write-Verbose -Message "Configuration drift: Number of assignment has changed - current {$($CurrentValues.Assignments.count)} target {$($ValuesToCheck.Assignments.count)}" - return $false - } - foreach ($assignment in $CurrentValues.Assignments) - { - #GroupId Assignment - if (-not [String]::IsNullOrEmpty($assignment.groupId)) - { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.groupId -eq $assignment.groupId } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: groupId {$($assignment.groupId)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment - } - #AllDevices/AllUsers assignment - else - { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.dataType -eq $assignment.dataType } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: {$($assignment.dataType)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment - } - - if (-not $testResult) - { - $testResult = $false - break - } - - } + $testResult = Compare-M365DSCIntunePolicyAssignment ` + -Source $CurrentValues.Assignments ` + -Target $ValuesToCheck.Assignments } + if (-not $testResult) { return $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 index 85c8e374ec..452bdee059 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 @@ -1213,8 +1213,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 index 39853a0d10..59e96357e8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 @@ -4644,40 +4644,14 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if( $key -eq "Assignments") + if (-Not $testResult) { - $testResult = $source.count -eq $target.count - if (-Not $testResult) { break } - foreach ($assignment in $source) - { - if ($assignment.dataType -like '*GroupAssignmentTarget') - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType -and $_.groupId -eq $assignment.groupId}) - #Using assignment groupDisplayName only if the groupId is not found in the directory otherwise groupId should be the key - if (-not $testResult) - { - $groupNotFound = $null -eq (Get-MgGroup -GroupId ($assignment.groupId) -ErrorAction SilentlyContinue) - } - if (-not $testResult -and $groupNotFound) - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType -and $_.groupDisplayName -eq $assignment.groupDisplayName}) - } - } - else - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType}) - } - if (-Not $testResult) { break } - } - if (-Not $testResult) { break } + break } - if (-Not $testResult) { break } $ValuesToCheck.Remove($key) | Out-Null } diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 index 5984ce817c..fd4f3b0a6f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 @@ -2958,8 +2958,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) -verbose diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 index 8ca0e2b141..4aa737ee63 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 @@ -776,8 +776,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 index f100165917..a56154cf6d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 @@ -488,8 +488,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 index 221414ae76..a885a6e2ab 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 @@ -711,8 +711,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 index d2ebdb3160..6e2471d614 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 @@ -423,8 +423,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 index 1f401a4693..0f63f932cf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 @@ -951,8 +951,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 index bc1307e957..34c3369232 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 @@ -674,8 +674,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 index d1db4d3fc7..156c641231 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 @@ -589,8 +589,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*' -and $key -ne 'WindowsMobileRestriction') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 index dff34c84e4..89e4be5f1a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 @@ -624,8 +624,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 index 9f57d74e78..ca13266778 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 @@ -584,8 +584,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 index 072a820729..95739178cf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 @@ -308,11 +308,6 @@ function Set-TargetResource throw 'SelectedRecoveryKeyTypes and PersonalRecoveryKeyHelpMessage must be specified when Enabled is $true' } - if (-not $AllowDeferralUntilSignOut) - { - throw 'AllowDeferralUntilSignOut must be $true' - } - $currentInstance = Get-TargetResource @PSBoundParameters $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters @@ -321,6 +316,12 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') { Write-Verbose -Message "Creating an Intune Disk Encryption for macOS with DisplayName {$DisplayName}" + + if (-not $AllowDeferralUntilSignOut) + { + throw 'AllowDeferralUntilSignOut must be $true' + } + $BoundParameters.Remove('Assignments') | Out-Null $BoundParameters.Remove('Id') | Out-Null $BoundParameters.Remove('DisplayName') | Out-Null @@ -354,6 +355,12 @@ function Set-TargetResource elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') { Write-Verbose -Message "Updating the Intune Disk Encryption for macOS with Id {$($currentInstance.Id)}" + + if (-not $AllowDeferralUntilSignOut) + { + throw 'AllowDeferralUntilSignOut must be $true' + } + $BoundParameters.Remove("Assignments") | Out-Null $BoundParameters.Remove('Id') | Out-Null $BoundParameters.Remove('DisplayName') | Out-Null @@ -554,8 +561,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 index 15e12dd4f0..12cfb3aaa2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 @@ -466,8 +466,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 index 72f55b6c01..162682d973 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 @@ -478,7 +478,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 index 30fecacf02..77eae9b2a8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 @@ -568,8 +568,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 index b3f0db8444..887a954850 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 @@ -567,39 +567,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if( $key -eq "Assignments") - { - $testResult = $source.count -eq $target.count - if (-Not $testResult) { break } - foreach ($assignment in $source) - { - if ($assignment.dataType -like '*GroupAssignmentTarget') - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType -and $_.groupId -eq $assignment.groupId}) - #Using assignment groupDisplayName only if the groupId is not found in the directory otherwise groupId should be the key - if (-not $testResult) - { - $groupNotFound = $null -eq (Get-MgGroup -GroupId ($assignment.groupId) -ErrorAction SilentlyContinue) - } - if (-not $testResult -and $groupNotFound) - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType -and $_.groupDisplayName -eq $assignment.groupDisplayName}) - } - } - else - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType}) - } - if (-Not $testResult) { break } - } - if (-Not $testResult) { break } - } if (-Not $testResult) { break } $ValuesToCheck.Remove($key) | Out-Null diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 index 2a4c8a1349..19eb40d2d3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 @@ -856,8 +856,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 index 3600ab491f..4e19d5bcae 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 @@ -419,8 +419,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 index 9dd8e35d04..03ca64b90a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 @@ -421,8 +421,6 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 index 07509d3684..f49064ae6d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 @@ -999,39 +999,10 @@ function Test-TargetResource $target = $CurrentValues.$key if ($source.getType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if( $key -eq "Assignments") - { - $testResult = $source.count -eq $target.count - if (-Not $testResult) { break } - foreach ($assignment in $source) - { - if ($assignment.dataType -like '*GroupAssignmentTarget') - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType -and $_.groupId -eq $assignment.groupId}) - #Using assignment groupDisplayName only if the groupId is not found in the directory otherwise groupId should be the key - if (-not $testResult) - { - $groupNotFound = $null -eq (Get-MgGroup -GroupId ($assignment.groupId) -ErrorAction SilentlyContinue) - } - if (-not $testResult -and $groupNotFound) - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType -and $_.groupDisplayName -eq $assignment.groupDisplayName}) - } - } - else - { - $testResult = $null -ne ($target | Where-Object {$_.dataType -eq $assignment.DataType}) - } - if (-Not $testResult) { break } - } - if (-Not $testResult) { break } - } if (-Not $testResult) { break } $ValuesToCheck.Remove($key) | Out-Null diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 647b6e5b44..bd732609d8 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -598,25 +598,24 @@ function Compare-M365DSCComplexObject return $false } - if ($Source.getType().FullName -like '*CimInstance[[\]]' -or $Source.getType().FullName -like '*Hashtable[[\]]') + if ($Source.GetType().FullName -like '*CimInstance[[\]]' -or $Source.GetType().FullName -like '*Hashtable[[\]]') { - if ($source.count -ne $target.count) + if ($source.Count -ne $target.Count) { - Write-Verbose -Message "Configuration drift - The complex array have different number of items: Source {$($source.count)} Target {$($target.count)}" + Write-Verbose -Message "Configuration drift - The complex array have different number of items: Source {$($source.Count)} Target {$($target.Count)}" return $false } - if ($source.count -eq 0) + if ($source.Count -eq 0) { return $true } foreach ($item in $Source) { - $hashSource = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $item foreach ($targetItem in $Target) { $compareResult = Compare-M365DSCComplexObject ` - -Source $hashSource ` + -Source $item ` -Target $targetItem if ($compareResult) @@ -634,7 +633,15 @@ function Compare-M365DSCComplexObject return $true } - $keys = $Source.Keys | Where-Object -FilterScript { $_ -ne 'PSComputerName' } + if ($Source.GetType().FullName -like "*CimInstance") + { + $keys = $Source.CimInstanceProperties.Name | Where-Object -FilterScript { $_ -notin @('PSComputerName', 'CimClass', 'CmiInstanceProperties', 'CimSystemProperties') } + } + else + { + $keys = $Source.Keys | Where-Object -FilterScript { $_ -ne 'PSComputerName' } + } + foreach ($key in $keys) { #Matching possible key names between Source and Target @@ -664,12 +671,21 @@ function Compare-M365DSCComplexObject #Both keys aren't null or empty if (($null -ne $Source.$key) -and ($null -ne $Target.$tkey)) { - if ($Source.$key.getType().FullName -like '*CimInstance*' -or $Source.$key.getType().FullName -like '*hashtable*') + if ($Source.$key.GetType().FullName -like '*CimInstance*' -or $Source.$key.GetType().FullName -like '*hashtable*') { - #Recursive call for complex object - $compareResult = Compare-M365DSCComplexObject ` - -Source (Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Source.$key) ` - -Target $Target.$tkey + if ($Source.$key.GetType().FullName -like '*CimInstance' -and $Source.$key.CimClass.CimClassName -eq 'MSFT_DeviceManagementConfigurationPolicyAssignments') + { + $compareResult = Compare-M365DSCIntunePolicyAssignment ` + -Source @($Source.$key) ` + -Target @($Target.$tkey) + } + else + { + #Recursive call for complex object + $compareResult = Compare-M365DSCComplexObject ` + -Source $Source.$key ` + -Target $Target.$tkey + } if (-not $compareResult) { @@ -684,7 +700,7 @@ function Compare-M365DSCComplexObject $differenceObject = $Source.$key #Identifying date from the current values - $targetType = ($Target.$tkey.getType()).Name + $targetType = ($Target.$tkey.GetType()).Name if ($targetType -like '*Date*') { $compareResult = $true diff --git a/ResourceGenerator/Module.Template.psm1 b/ResourceGenerator/Module.Template.psm1 index e54b40f83a..132197bba8 100644 --- a/ResourceGenerator/Module.Template.psm1 +++ b/ResourceGenerator/Module.Template.psm1 @@ -262,20 +262,9 @@ function Test-TargetResource $target = $CurrentValues.$key if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - - if ($key -eq "Assignments") - { - $testResult = Compare-M365DSCIntunePolicyAssignment ` - -Source $source ` - -Target $target - } - else - { - $testResult = Compare-M365DSCComplexObject ` - -Source ($source) ` - -Target ($target) - } + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) if (-not $testResult) { From b535b5a5136f45922402797be8819885ed49df49 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sun, 16 Jun 2024 19:57:57 +0200 Subject: [PATCH 018/273] Add secondary Intune assignment type comparison check --- Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index bd732609d8..d9c537343d 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -673,7 +673,9 @@ function Compare-M365DSCComplexObject { if ($Source.$key.GetType().FullName -like '*CimInstance*' -or $Source.$key.GetType().FullName -like '*hashtable*') { - if ($Source.$key.GetType().FullName -like '*CimInstance' -and $Source.$key.CimClass.CimClassName -eq 'MSFT_DeviceManagementConfigurationPolicyAssignments') + if ($Source.$key.GetType().FullName -like '*CimInstance' -and ( + $Source.$key.CimClass.CimClassName -eq 'MSFT_DeviceManagementConfigurationPolicyAssignments' -or + $Source.$key.CimClass.CimClassName -like 'MSFT_Intune*Assignments')) { $compareResult = Compare-M365DSCIntunePolicyAssignment ` -Source @($Source.$key) ` From eb3df7e1e36a7bbb89d205a11b525e092f4eaab0 Mon Sep 17 00:00:00 2001 From: Yorick Kuijs Date: Tue, 25 Jun 2024 10:05:12 +0200 Subject: [PATCH 019/273] Implemented PnP issue workaround --- .../MSFT_ODSettings/MSFT_ODSettings.psm1 | 14 ++++++++++++- .../MSFT_SPOAccessControlSettings.psm1 | 12 +++++++++++ .../DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 | 13 ++++++++++++ .../MSFT_SPOBrowserIdleSignout.psm1 | 13 ++++++++++++ .../MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 | 8 ++++++++ .../MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 | 14 +++++++++---- .../MSFT_SPOOrgAssetsLibrary.psm1 | 9 +++++++++ .../MSFT_SPOPropertyBag.psm1 | 13 +++++++++++- .../MSFT_SPOSearchManagedProperty.psm1 | 13 ++++++++++++ .../MSFT_SPOSearchResultSource.psm1 | 13 ++++++++++++ .../MSFT_SPOSharingSettings.psm1 | 13 ++++++++++++ .../MSFT_SPOSite/MSFT_SPOSite.psm1 | 15 ++++++++++++++ .../MSFT_SPOSiteAuditSettings.psm1 | 13 ++++++++++++ .../MSFT_SPOSiteDesign.psm1 | 13 ++++++++++++ .../MSFT_SPOSiteDesignRights.psm1 | 16 ++++++++++++++- .../MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 | 20 +++++++++++++++++-- .../MSFT_SPOSiteScript.psm1 | 15 ++++++++++++++ .../MSFT_SPOStorageEntity.psm1 | 19 ++++++++++++++++-- .../MSFT_SPOTenantCdnEnabled.psm1 | 9 +++++++++ .../MSFT_SPOTenantCdnPolicy.psm1 | 9 +++++++++ .../MSFT_SPOTenantSettings.psm1 | 14 +++++++++---- .../MSFT_SPOTheme/MSFT_SPOTheme.psm1 | 19 ++++++++++++++++-- .../MSFT_SPOUserProfileProperty.psm1 | 20 ++++++++++++++++--- 23 files changed, 297 insertions(+), 20 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 index 139de8c59b..912fac0c75 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 @@ -103,6 +103,11 @@ function Get-TargetResource ) Write-Verbose -Message 'Getting configuration of OneDrive Settings' + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -333,6 +338,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -445,7 +454,6 @@ function Set-TargetResource Write-Verbose -Message ($Options | Out-String) Set-PnPTenantSyncClientRestriction @Options - } function Test-TargetResource @@ -634,6 +642,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 index ea35a596ee..e07dd525f9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 @@ -94,6 +94,10 @@ function Get-TargetResource Write-Verbose -Message 'Getting configuration of SharePoint Online Access Control Settings' + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -264,6 +268,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -466,6 +474,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 index c11eef7d8d..025b4630ac 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 @@ -63,6 +63,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for app $Identity" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -198,6 +203,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -357,6 +366,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 index 524530bcfb..9f350aaa02 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 @@ -61,6 +61,11 @@ function Get-TargetResource ) Write-Verbose -Message 'Getting configuration for SPO Browser Idle Signout settings' + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -192,6 +197,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -349,6 +358,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 index 4e04ecc4ad..ed5444e7fa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 @@ -56,6 +56,10 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for hub site collection $Url" + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -183,6 +187,10 @@ function Set-TargetResource #endregion Write-Verbose -Message "Setting configuration for home site '$Url'" + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 index c9a532062f..ee077dc200 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 @@ -75,6 +75,10 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for hub site collection $Url" + + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -111,8 +115,6 @@ function Get-TargetResource else { $hubSite = Get-PnPHubSite -Identity $Url - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters $principals = @() foreach ($permission in $hubSite.Permissions.PrincipalName) { @@ -269,10 +271,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters try @@ -612,6 +614,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 index 94ec165cc3..45534c87f8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 @@ -60,6 +60,11 @@ function Get-TargetResource ) Write-Verbose -Message 'Getting configuration of SPO Org Assets Library' + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -452,6 +457,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 index 8b8351eee0..bdc5755f18 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 @@ -59,7 +59,10 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration of SPOPropertyBag for $Key" - Write-Verbose -Message 'Connecting to PnP from the Get method' + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters ` @@ -229,6 +232,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters ` -Url $Url @@ -382,6 +389,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 index b0d6ba4470..328c817570 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 @@ -126,6 +126,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for Managed Property instance $Name" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -381,6 +386,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -911,6 +920,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 index d8c204e313..58db760bdf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 @@ -114,6 +114,11 @@ function Get-TargetResource ) Write-Verbose -Message "Setting configuration for Result Source instance $Name" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -296,6 +301,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -597,6 +606,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 index f8b5887c2d..f55c955988 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 @@ -151,6 +151,11 @@ function Get-TargetResource ) Write-Verbose -Message 'Getting configuration for SPO Sharing settings' + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -421,6 +426,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -831,6 +840,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 index 8d18964b3d..0b5f00327b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 @@ -156,6 +156,13 @@ function Get-TargetResource [System.String[]] $AccessTokens ) + + Write-Verbose -Message "Getting configuration for site collection $Url" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -450,6 +457,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -902,6 +913,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 index 910ca12ba6..594fef8bce 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 @@ -50,6 +50,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting SPOSiteAuditSettings for {$Url}" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -Url $Url -ErrorAction SilentlyContinue @@ -174,6 +179,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -Url $Url @@ -311,6 +320,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 index 373dfbe9f6..9d0310816d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 @@ -80,6 +80,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for SPO SiteDesign for $Title" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -261,6 +266,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -469,6 +478,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 index fe9b9e9d04..7fe117356b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 @@ -60,6 +60,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for SPO SiteDesignRights for $SiteDesignTitle" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -207,7 +212,12 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters $cursiteDesign = Get-PnPSiteDesign -Identity $SiteDesignTitle if ($null -eq $cursiteDesign) @@ -402,6 +412,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 index af4f4942fd..84dbf7adf7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 @@ -62,6 +62,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting SPOSiteGroups for {$Url}" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -239,7 +244,13 @@ function Set-TargetResource -Parameters $PSBoundParameters Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters ` + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters ` -ErrorAction SilentlyContinue $currentValues = Get-TargetResource @PSBoundParameters @@ -479,7 +490,12 @@ function Export-TargetResource try { - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters ` + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters ` -ErrorAction SilentlyContinue #Ensure the proper dependencies are installed in the current environment. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 index 87686aff73..7e7b4e2bcd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 @@ -61,6 +61,13 @@ function Get-TargetResource [System.String[]] $AccessTokens ) + + Write-Verbose -Message "Getting Site Script: $Title" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -214,6 +221,10 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -459,6 +470,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 index ef17a4c155..bfa960a507 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 @@ -72,7 +72,13 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for SPO Storage Entity for $Key" - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters ` + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters ` -Url $SiteUrl #Ensure the proper dependencies are installed in the current environment. @@ -229,7 +235,12 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters ` + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters ` -Url $SiteUrl $curStorageEntry = Get-TargetResource @PSBoundParameters @@ -424,6 +435,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 index 0bb148e40f..b4191d595f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 @@ -58,6 +58,11 @@ function Get-TargetResource try { Write-Verbose -Message 'Getting configuration of SPO Cdn enabled' + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -333,6 +338,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 index d79b564659..298a9da75d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 @@ -55,6 +55,11 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for SPOTenantCdnPolicy {$CDNType}" + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -348,6 +353,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 index b4e4dda3a6..21414fb375 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 @@ -149,8 +149,12 @@ function Get-TargetResource ) Write-Verbose -Message 'Getting configuration for SPO Tenant' - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters + + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters #Ensure the proper dependencies are installed in the current environment. Confirm-M365DSCDependencies @@ -395,7 +399,8 @@ function Set-TargetResource if (-not [string]::IsNullOrEmpty($TenantDefaultTimezone)) { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' -InboundParameters $PSBoundParameters + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters } $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters @@ -672,8 +677,9 @@ function Export-TargetResource try { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 index 146582b783..e34786e03d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 @@ -59,7 +59,13 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for SPO Theme $Name" - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters + + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters #Ensure the proper dependencies are installed in the current environment. Confirm-M365DSCDependencies @@ -188,7 +194,12 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters $CurrentPalette = Get-TargetResource @PSBoundParameters if ($Ensure -eq 'Present') @@ -379,6 +390,10 @@ function Export-TargetResource try { + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 index 4a4caa9fbd..57958cadec 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 @@ -47,7 +47,12 @@ function Get-TargetResource Write-Verbose -Message "Getting SPO Profile Properties for user {$UserName}" - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters #Ensure the proper dependencies are installed in the current environment. Confirm-M365DSCDependencies @@ -171,7 +176,12 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' -InboundParameters $PSBoundParameters + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` + -InboundParameters $PSBoundParameters $currentProperties = Get-TargetResource @PSBoundParameters @@ -306,7 +316,11 @@ function Export-TargetResource try { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) + $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters #Ensure the proper dependencies are installed in the current environment. From 1eb882ba61ddcbfd04cc0faf2f389209a0cafc33 Mon Sep 17 00:00:00 2001 From: Yorick Kuijs Date: Tue, 25 Jun 2024 13:01:19 +0200 Subject: [PATCH 020/273] Reverted workaround, implemented in MSCloudLoginAssistant --- CHANGELOG.md | 5 +++++ .../MSFT_ODSettings/MSFT_ODSettings.psm1 | 12 ------------ .../MSFT_SPOAccessControlSettings.psm1 | 12 ------------ .../DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 | 12 ------------ .../MSFT_SPOBrowserIdleSignout.psm1 | 12 ------------ .../MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 | 8 -------- .../MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 | 4 ---- .../MSFT_SPOOrgAssetsLibrary.psm1 | 8 -------- .../MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 | 12 ------------ .../MSFT_SPOSearchManagedProperty.psm1 | 12 ------------ .../MSFT_SPOSearchResultSource.psm1 | 12 ------------ .../MSFT_SPOSharingSettings.psm1 | 12 ------------ .../DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 | 12 ------------ .../MSFT_SPOSiteAuditSettings.psm1 | 12 ------------ .../MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 | 12 ------------ .../MSFT_SPOSiteDesignRights.psm1 | 12 ------------ .../MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 | 12 ------------ .../MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 | 12 ------------ .../MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 | 12 ------------ .../MSFT_SPOTenantCdnEnabled.psm1 | 8 -------- .../MSFT_SPOTenantCdnPolicy.psm1 | 8 -------- .../DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 | 12 ------------ .../MSFT_SPOUserProfileProperty.psm1 | 12 ------------ 23 files changed, 5 insertions(+), 240 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6508fa1e7..b7740a7eea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# Unreleased + +* OD and SPO resources + * Implemented PnP/Graph conflict issue workaround (Issue 4746) + # 1.24.619.1 * SCDLPComplianceRule diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 index 912fac0c75..08d53e6512 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 @@ -104,10 +104,6 @@ function Get-TargetResource Write-Verbose -Message 'Getting configuration of OneDrive Settings' - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -338,10 +334,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -642,10 +634,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 index e07dd525f9..ea35a596ee 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 @@ -94,10 +94,6 @@ function Get-TargetResource Write-Verbose -Message 'Getting configuration of SharePoint Online Access Control Settings' - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -268,10 +264,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -474,10 +466,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 index 025b4630ac..b4b2cf069e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 @@ -64,10 +64,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for app $Identity" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -203,10 +199,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -366,10 +358,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 index 9f350aaa02..ac82c4feae 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 @@ -62,10 +62,6 @@ function Get-TargetResource Write-Verbose -Message 'Getting configuration for SPO Browser Idle Signout settings' - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -197,10 +193,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -358,10 +350,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 index ed5444e7fa..4e04ecc4ad 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 @@ -56,10 +56,6 @@ function Get-TargetResource ) Write-Verbose -Message "Getting configuration for hub site collection $Url" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -187,10 +183,6 @@ function Set-TargetResource #endregion Write-Verbose -Message "Setting configuration for home site '$Url'" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 index ee077dc200..2a705aedbf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 @@ -614,10 +614,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 index 45534c87f8..62cd260221 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 @@ -61,10 +61,6 @@ function Get-TargetResource Write-Verbose -Message 'Getting configuration of SPO Org Assets Library' - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -457,10 +453,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 index bdc5755f18..a96e8024a9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 @@ -60,10 +60,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration of SPOPropertyBag for $Key" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters ` -Url $Url @@ -232,10 +228,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters ` -Url $Url @@ -389,10 +381,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 index 328c817570..8d0ac5298a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 @@ -127,10 +127,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for Managed Property instance $Name" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -386,10 +382,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -920,10 +912,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 index 58db760bdf..cfd3d78ac8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 @@ -115,10 +115,6 @@ function Get-TargetResource Write-Verbose -Message "Setting configuration for Result Source instance $Name" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -301,10 +297,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -606,10 +598,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 index f55c955988..5aaa8340ba 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 @@ -152,10 +152,6 @@ function Get-TargetResource Write-Verbose -Message 'Getting configuration for SPO Sharing settings' - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -426,10 +422,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -840,10 +832,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 index 0b5f00327b..9c398a741b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 @@ -159,10 +159,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for site collection $Url" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -457,10 +453,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -913,10 +905,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 index 594fef8bce..608fdea4df 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 @@ -51,10 +51,6 @@ function Get-TargetResource Write-Verbose -Message "Getting SPOSiteAuditSettings for {$Url}" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -Url $Url -ErrorAction SilentlyContinue @@ -179,10 +175,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -Url $Url @@ -320,10 +312,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 index 9d0310816d..452cf6e844 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 @@ -81,10 +81,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for SPO SiteDesign for $Title" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -266,10 +262,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -478,10 +470,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 index 7fe117356b..aa9ef5291c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 @@ -61,10 +61,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for SPO SiteDesignRights for $SiteDesignTitle" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -212,10 +208,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -412,10 +404,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 index 84dbf7adf7..f1822fa249 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 @@ -63,10 +63,6 @@ function Get-TargetResource Write-Verbose -Message "Getting SPOSiteGroups for {$Url}" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -245,10 +241,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -ErrorAction SilentlyContinue @@ -490,10 +482,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -ErrorAction SilentlyContinue diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 index 7e7b4e2bcd..013255de19 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 @@ -64,10 +64,6 @@ function Get-TargetResource Write-Verbose -Message "Getting Site Script: $Title" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -221,10 +217,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PnP' ` -InboundParameters $PSBoundParameters @@ -470,10 +462,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 index bfa960a507..7d432498df 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 @@ -73,10 +73,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for SPO Storage Entity for $Key" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -Url $SiteUrl @@ -235,10 +231,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters ` -Url $SiteUrl @@ -435,10 +427,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 index b4191d595f..32d83984f1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 @@ -59,10 +59,6 @@ function Get-TargetResource { Write-Verbose -Message 'Getting configuration of SPO Cdn enabled' - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -338,10 +334,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 index 298a9da75d..76c1a467ff 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 @@ -56,10 +56,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for SPOTenantCdnPolicy {$CDNType}" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -353,10 +349,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 index e34786e03d..5e4066479f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 @@ -60,10 +60,6 @@ function Get-TargetResource Write-Verbose -Message "Getting configuration for SPO Theme $Name" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -194,10 +190,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -390,10 +382,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 index 57958cadec..06c347aa47 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 @@ -47,10 +47,6 @@ function Get-TargetResource Write-Verbose -Message "Getting SPO Profile Properties for user {$UserName}" - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -176,10 +172,6 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters @@ -316,10 +308,6 @@ function Export-TargetResource try { - # Temp workaround for Graph connection issue. Make sure connecting to Graph first (#xxxx) - $ConnectionModeGraph = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters - $ConnectionMode = New-M365DSCConnection -Workload 'PNP' ` -InboundParameters $PSBoundParameters From 16fffbaecdcb7619fc45e92159da230953ba0acc Mon Sep 17 00:00:00 2001 From: Yorick Kuijs Date: Tue, 25 Jun 2024 13:09:33 +0200 Subject: [PATCH 021/273] Update CHANGELOG.md --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7740a7eea..eef7a84641 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,6 @@ # Unreleased -* OD and SPO resources - * Implemented PnP/Graph conflict issue workaround (Issue 4746) - # 1.24.619.1 * SCDLPComplianceRule From 49b141ed6632cf0abc74b67df7249516ce9995f9 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 25 Jun 2024 08:55:44 -0400 Subject: [PATCH 022/273] Fixes #4782 --- .../DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 | 6 +++--- .../Microsoft365DSC/Modules/M365DSCReverse.psm1 | 2 +- Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 | 14 ++++++++++++-- .../Microsoft365DSC.AADGroup.Tests.ps1 | 1 - 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 index acc0ae91b1..826c629314 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 @@ -437,7 +437,7 @@ function Set-TargetResource $currentParameters.Remove('Owners') | Out-Null $currentParameters.Remove('Members') | Out-Null $currentParameters.Remove('MemberOf') | Out-Null - #$currentParameters.Remove('AssignedToRole') | Out-Null + $currentParameters.Remove('AssignedToRole') | Out-Null if ($Ensure -eq 'Present' -and ` ($null -ne $GroupTypes -and $GroupTypes.Contains('Unified')) -and ` @@ -533,7 +533,7 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentGroup.Ensure -eq 'Absent') { Write-Verbose -Message "Checking to see if an existing deleted group exists with DisplayName {$DisplayName}" - $restorinExisting = $false + $restoringExisting = $false [Array]$groups = Get-MgBetaDirectoryDeletedItemAsGroup -Filter "DisplayName eq '$DisplayName'" if ($groups.Length -gt 1) { @@ -794,7 +794,7 @@ function Set-TargetResource } } - if ($currentGroup.IsAssignableToRole -eq $true -and $currentParameters.ContainsKey('AssignedToRole')) + if ($currentGroup.IsAssignableToRole -eq $true -and $PSBoundParameters.ContainsKey('AssignedToRole')) { #AssignedToRole $currentAssignedToRoleValue = @() diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 index c074c3d4b8..97ec7abbc0 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 @@ -872,7 +872,7 @@ function Start-M365DSCConfigurationExtract try { - $Global:M365DSCExportContentSize = ((Get-Item -Path $outputDSCFile).Length/1KB).ToString().Split('.')[0] + " kb" + $Global:M365DSCExportContentSize = $DSCContent.Length } catch { diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 4877184ed1..cab1686b26 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -514,11 +514,11 @@ function Get-M365DSCTenantNameFromParameterSet [System.Collections.HashTable] $ParameterSet ) - if ($ParameterSet.TenantId) + if ($ParameterSet.ContainsKey('TenantId')) { return $ParameterSet.TenantId } - elseif ($ParameterSet.Credential) + elseif ($ParameterSet.ContainsKey('Credential')) { try { @@ -584,6 +584,9 @@ function Test-M365DSCParameterState $dataEvaluation.Add('Resource', "$Source") $dataEvaluation.Add('Method', 'Test-TargetResource') $dataEvaluation.Add('Tenant', $TenantName) + + $ConnectionMode = Get-M365DSCAuthenticationMode $DesiredValues + $dataEvaluation.Add('ConnectionMode', $ConnectionMode) $ValuesToCheckData = $ValuesToCheck | Where-Object -FilterScript {$_ -ne 'Verbose'} $dataEvaluation.Add('Parameters', $ValuesToCheckData -join "`r`n") $dataEvaluation.Add('ParametersCount', $ValuesToCheckData.Length) @@ -3439,6 +3442,13 @@ function Get-M365DSCExportContentForResource $Resource = $Script:AllM365DscResources.Where({ $_.Name -eq $ResourceName }) $Keys = $Resource.Properties.Where({ $_.IsMandatory }) | ` Select-Object -ExpandProperty Name + if ($null -eq $keys) + { + Import-Module $Resource.Path -Force + $moduleInfo = Get-Command -Module $ModuleFullName -ErrorAction SilentlyContinue + $cmdInfo = $moduleInfo | Where-Object -FilterScript {$_.Name -eq 'Get-TargetResource'} + $Keys = $cmdInfo.Parameters.Keys + } } else { diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.AADGroup.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.AADGroup.Tests.ps1 index 720574a2ae..9bf9dfdaac 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.AADGroup.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.AADGroup.Tests.ps1 @@ -531,7 +531,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { GroupTypes = @() MailNickname = 'M365DSC' IsAssignableToRole = $true - Ensure = 'Present' } } Mock -CommandName Get-MgGroupMemberOf -MockWith { From 146f9429500ff1a802791e05853b88f9483e2853 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 25 Jun 2024 14:53:32 -0400 Subject: [PATCH 023/273] Updated MSCloudLoginAssistant --- CHANGELOG.md | 7 ++++++- Modules/Microsoft365DSC/Dependencies/Manifest.psd1 | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eef7a84641..dfd1f38020 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Change log for Microsoft365DSC -# Unreleased +# UNRELEASED + +* AADGroup + * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) +* DEPENDENCIES + * Updated MSCloudLoginAssistant to version 1.18.0. # 1.24.619.1 diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index ee2f616534..b1f218cf87 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -90,7 +90,7 @@ }, @{ ModuleName = "MSCloudLoginAssistant" - RequiredVersion = "1.1.17" + RequiredVersion = "1.1.18" }, @{ ModuleName = 'PnP.PowerShell' From e59a66ef192021fa208df75478529402042f6f28 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 25 Jun 2024 14:54:53 -0400 Subject: [PATCH 024/273] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfd1f38020..cffe7c9be1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ * AADGroup * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.18.0. + * Updated MSCloudLoginAssistant to version 1.1.18 # 1.24.619.1 From 80f7803c2ad294e375ad0791c43289c2894013fd Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 25 Jun 2024 16:19:12 -0400 Subject: [PATCH 025/273] Initial --- ...uneDeviceManagementComplianceSettings.psm1 | 711 ++++++++++++++++++ ...iceManagementComplianceSettings.schema.mof | 14 + .../readme.md | 191 +++++ .../settings.json | 38 + .../MSFT_IntuneDeviceRemediation.schema.mof | 2 +- .../2-Update.ps1 | 40 + ...viceManagementComplianceSettings.Tests.ps1 | 476 ++++++++++++ 7 files changed, 1471 insertions(+), 1 deletion(-) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 new file mode 100644 index 0000000000..feffde0216 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 @@ -0,0 +1,711 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + [ValidateSet('Yes')] + $IsSingleInstance, + + [Parameter()] + [System.UInt32] + $DeviceComplianceCheckinThresholdDays, + + [Parameter()] + [System.Boolean] + $SecureByDefault, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + Write-Verbose -Message "Checking for the Intune Device Management Compliance Settings" + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + try + { + $uri = $Global:MSCloudLoginConnectionProfile.MicrosoftGraph.ResourceUrl + 'beta/deviceManagement/settings' + $settings = Invoke-MgGraphRequest -Method 'GET' -Uri $uri + $results = @{ + IsSingleInstance = 'Yes' + DeviceComplianceCheckinThresholdDays = $settings.deviceComplianceCheckinThresholdDays + SecureByDefault = [Boolean]$settings.secureByDefault + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + Managedidentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + $nullResult = Clear-M365DSCAuthenticationParameter -BoundParameters $nullResult + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String] + $Description, + + [Parameter()] + [System.Boolean] + $PasswordRequired, + + [Parameter()] + [System.Boolean] + $PasswordBlockSimple, + + [Parameter()] + [System.Boolean] + $PasswordRequiredToUnlockFromIdle, + + [Parameter()] + [System.Int32] + $PasswordMinutesOfInactivityBeforeLock, + + [Parameter()] + [System.Int32] + $PasswordExpirationDays, + + [Parameter()] + [System.Int32] + $PasswordMinimumLength, + + [Parameter()] + [System.Int32] + $PasswordPreviousPasswordBlockCount, + + [Parameter()] + [System.Int32] + $PasswordMinimumCharacterSetCount, + + [Parameter()] + [System.String] + [ValidateSet('DeviceDefault', 'Alphanumeric', 'Numeric')] + $PasswordRequiredType, + + [Parameter()] + [System.Boolean] + $RequireHealthyDeviceReport, + + [Parameter()] + [System.String] + $OsMinimumVersion, + + [Parameter()] + [System.String] + $OsMaximumVersion, + + [Parameter()] + [System.String] + $MobileOsMinimumVersion, + + [Parameter()] + [System.String] + $MobileOsMaximumVersion, + + [Parameter()] + [System.Boolean] + $EarlyLaunchAntiMalwareDriverEnabled, + + [Parameter()] + [System.Boolean] + $BitLockerEnabled, + + [Parameter()] + [System.Boolean] + $SecureBootEnabled, + + [Parameter()] + [System.Boolean] + $CodeIntegrityEnabled, + + [Parameter()] + [System.Boolean] + $StorageRequireEncryption, + + [Parameter()] + [System.Boolean] + $ActiveFirewallRequired, + + [Parameter()] + [System.Boolean] + $DefenderEnabled, + + [Parameter()] + [System.String] + $DefenderVersion, + + [Parameter()] + [System.Boolean] + $SignatureOutOfDate, + + [Parameter()] + [System.Boolean] + $RtpEnabled, + + [Parameter()] + [System.Boolean] + $AntivirusRequired, + + [Parameter()] + [System.Boolean] + $AntiSpywareRequired, + + [Parameter()] + [System.Boolean] + $DeviceThreatProtectionEnabled, + + [Parameter()] + [System.String] + [ValidateSet('Unavailable', 'Secured', 'Low', 'Medium', 'High', 'NotSet')] + $DeviceThreatProtectionRequiredSecurityLevel, + + [Parameter()] + [System.Boolean] + $ConfigurationManagerComplianceRequired, + + [Parameter()] + [System.Boolean] + $TPMRequired, + + [Parameter()] + [System.String] + $DeviceCompliancePolicyScript, + + [Parameter()] + [System.Array] + $ValidOperatingSystemBuildRanges, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + Write-Verbose -Message "Intune Device Compliance Windows 10 Policy {$DisplayName}" + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentDeviceWindows10Policy = Get-TargetResource @PSBoundParameters + + $PSBoundParameters.Remove('Ensure') | Out-Null + $PSBoundParameters.Remove('Credential') | Out-Null + $PSBoundParameters.Remove('ApplicationId') | Out-Null + $PSBoundParameters.Remove('TenantId') | Out-Null + $PSBoundParameters.Remove('ApplicationSecret') | Out-Null + $PSBoundParameters.Remove('AccessTokens') | Out-Null + + $scheduledActionsForRule = @{ + '@odata.type' = '#microsoft.graph.deviceComplianceScheduledActionForRule' + ruleName = 'PasswordRequired' + scheduledActionConfigurations = @( + @{ + '@odata.type' = '#microsoft.graph.deviceComplianceActionItem' + actionType = 'block' + } + ) + } + + if ($Ensure -eq 'Present' -and $currentDeviceWindows10Policy.Ensure -eq 'Absent') + { + Write-Verbose -Message "Creating new Intune Device Compliance Windows 10 Policy {$DisplayName}" + $PSBoundParameters.Remove('DisplayName') | Out-Null + $PSBoundParameters.Remove('Description') | Out-Null + $PSBoundParameters.Remove('Assignments') | Out-Null + + $AdditionalProperties = Get-M365DSCIntuneDeviceCompliancePolicyWindows10AdditionalProperties -Properties ([System.Collections.Hashtable]$PSBoundParameters) + $policy = New-MgBetaDeviceManagementDeviceCompliancePolicy -DisplayName $DisplayName ` + -Description $Description ` + -AdditionalProperties $AdditionalProperties ` + -ScheduledActionsForRule $scheduledActionsForRule + + if ($Assignments.Count -gt 0) + { + $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/deviceCompliancePolicies' + } + } + elseif ($Ensure -eq 'Present' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating Intune Device Compliance Windows 10 Policy {$DisplayName}" + $configDevicePolicy = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` + -ErrorAction Stop | Where-Object ` + -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' -and ` + $_.displayName -eq $($DisplayName) } + + $PSBoundParameters.Remove('DisplayName') | Out-Null + $PSBoundParameters.Remove('Description') | Out-Null + $PSBoundParameters.Remove('Assignments') | Out-Null + + $AdditionalProperties = Get-M365DSCIntuneDeviceCompliancePolicyWindows10AdditionalProperties -Properties ([System.Collections.Hashtable]$PSBoundParameters) + Update-MgBetaDeviceManagementDeviceCompliancePolicy -AdditionalProperties $AdditionalProperties ` + -Description $Description ` + -DeviceCompliancePolicyId $configDevicePolicy.Id + + if ($Assignments.Count -gt 0) + { + $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/deviceCompliancePolicies' + } + } + elseif ($Ensure -eq 'Absent' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') + { + Write-Verbose -Message "Removing Intune Device Compliance Windows 10 Policy {$DisplayName}" + $configDevicePolicy = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` + -ErrorAction Stop | Where-Object ` + -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' -and ` + $_.displayName -eq $($DisplayName) } + + Remove-MgBetaDeviceManagementDeviceCompliancePolicy -DeviceCompliancePolicyId $configDevicePolicy.Id + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String] + $Description, + + [Parameter()] + [System.Boolean] + $PasswordRequired, + + [Parameter()] + [System.Boolean] + $PasswordBlockSimple, + + [Parameter()] + [System.Boolean] + $PasswordRequiredToUnlockFromIdle, + + [Parameter()] + [System.Int32] + $PasswordMinutesOfInactivityBeforeLock, + + [Parameter()] + [System.Int32] + $PasswordExpirationDays, + + [Parameter()] + [System.Int32] + $PasswordMinimumLength, + + [Parameter()] + [System.Int32] + $PasswordPreviousPasswordBlockCount, + + [Parameter()] + [System.Int32] + $PasswordMinimumCharacterSetCount, + + [Parameter()] + [System.String] + [ValidateSet('DeviceDefault', 'Alphanumeric', 'Numeric')] + $PasswordRequiredType, + + [Parameter()] + [System.Boolean] + $RequireHealthyDeviceReport, + + [Parameter()] + [System.String] + $OsMinimumVersion, + + [Parameter()] + [System.String] + $OsMaximumVersion, + + [Parameter()] + [System.String] + $MobileOsMinimumVersion, + + [Parameter()] + [System.String] + $MobileOsMaximumVersion, + + [Parameter()] + [System.Boolean] + $EarlyLaunchAntiMalwareDriverEnabled, + + [Parameter()] + [System.Boolean] + $BitLockerEnabled, + + [Parameter()] + [System.Boolean] + $SecureBootEnabled, + + [Parameter()] + [System.Boolean] + $CodeIntegrityEnabled, + + [Parameter()] + [System.Boolean] + $StorageRequireEncryption, + + [Parameter()] + [System.Boolean] + $ActiveFirewallRequired, + + [Parameter()] + [System.Boolean] + $DefenderEnabled, + + [Parameter()] + [System.String] + $DefenderVersion, + + [Parameter()] + [System.Boolean] + $SignatureOutOfDate, + + [Parameter()] + [System.Boolean] + $RtpEnabled, + + [Parameter()] + [System.Boolean] + $AntivirusRequired, + + [Parameter()] + [System.Boolean] + $AntiSpywareRequired, + + [Parameter()] + [System.Boolean] + $DeviceThreatProtectionEnabled, + + [Parameter()] + [System.String] + [ValidateSet('Unavailable', 'Secured', 'Low', 'Medium', 'High', 'NotSet')] + $DeviceThreatProtectionRequiredSecurityLevel, + + [Parameter()] + [System.Boolean] + $ConfigurationManagerComplianceRequired, + + [Parameter()] + [System.Boolean] + $TPMRequired, + + [Parameter()] + [System.String] + $DeviceCompliancePolicyScript, + + [Parameter()] + [System.Array] + $ValidOperatingSystemBuildRanges, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + Write-Verbose -Message "Testing configuration of Intune Device Compliance Windows 10 Policy {$DisplayName}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + if (-not (Test-M365DSCAuthenticationParameter -BoundParameters $CurrentValues)) + { + Write-Verbose "An error occured in Get-TargetResource, the policy {$displayName} will not be processed" + throw "An error occured in Get-TargetResource, the policy {$displayName} will not be processed. Refer to the event viewer logs for more information." + } + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + + $ValuesToCheck = $PSBoundParameters + + $testResult = $true + if ($CurrentValues.Ensure -ne $Ensure) + { + $testResult = $false + } + #region Assignments + if ($testResult) + { + $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $PSBoundParameters.Assignments + $target = $CurrentValues.Assignments + $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target + $ValuesToCheck.Remove('Assignments') | Out-Null + } + #endregion + + if ($testResult) + { + $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + } + Write-Verbose -Message "Test-TargetResource returned $TestResult" + + return $TestResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + $params = @{ + IsSingleInstance = 'Yes' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + Managedidentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + $Results = Get-TargetResource @params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + + Write-Host $Global:M365DSCEmojiGreenCheckMark + return $currentDSCBlock + } + catch + { + if ($_.Exception -like '*401*' -or $_.ErrorDetails.Message -like "*`"ErrorCode`":`"Forbidden`"*" -or ` + $_.Exception -like "*Request not applicable to target tenant*") + { + Write-Host "`r`n $($Global:M365DSCEmojiYellowCircle) The current tenant is not registered for Intune." + } + else + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + } + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.schema.mof new file mode 100644 index 0000000000..0ede675ec4 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.schema.mof @@ -0,0 +1,14 @@ +[ClassVersion("1.0.0.0"), FriendlyName("IntuneDeviceManagementComplianceSettings")] +class MSFT_IntuneDeviceManagementComplianceSettings : OMI_BaseResource +{ + [Key, Description("Only valid value is 'Yes'."), ValueMap{"Yes"}, Values{"Yes"}] String IsSingleInstance; + [Write, Description("Device should be noncompliant when there is no compliance policy targeted when this is true.")] Boolean SecureByDefault; + [Write, Description("The number of days a device is allowed to go without checking in to remain compliant.")] UInt32 DeviceComplianceCheckinThresholdDays; + [Write, Description("Credentials of the Intune Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity; + [Write, Description("Access token used for authentication.")] String AccessTokens[]; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md new file mode 100644 index 0000000000..1f4dc15df1 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md @@ -0,0 +1,191 @@ + +# IntuneDeviceCompliancePolicyWindows10 + +## 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. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/settings.json new file mode 100644 index 0000000000..876c98b3c1 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/settings.json @@ -0,0 +1,38 @@ +{ + "resourceName": "IntuneDeviceCompliancePolicyWindows10", + "description": "This resource configures the settings of Windows 10 compliance policies in your cloud-based organization.", + "permissions": { + "graph": { + "delegated": { + "read": [ + { + "name": "Group.Read.All" + }, + { + "name": "DeviceManagementConfiguration.Read.All" + } + ], + "update": [ + { + "name": "DeviceManagementConfiguration.ReadWrite.All" + } + ] + }, + "application": { + "read": [ + { + "name": "Group.Read.All" + }, + { + "name": "DeviceManagementConfiguration.Read.All" + } + ], + "update": [ + { + "name": "DeviceManagementConfiguration.ReadWrite.All" + } + ] + } + } + } +} diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof index 793acac5cb..2951037764 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.schema.mof @@ -36,7 +36,7 @@ class MSFT_IntuneDeviceRemediation : OMI_BaseResource [Write, Description("Indicates the type of execution context. Possible values are: system, user."), ValueMap{"system","user"}, Values{"system","user"}] String RunAsAccount; [Key, Description("The unique identifier for an entity. Read-only.")] String Id; [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; - [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Present ensures the policy exists, absent ensures it is removed.")] string Ensure; [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 new file mode 100644 index 0000000000..dc4bef9bde --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 @@ -0,0 +1,40 @@ +<# +This example updates a new Device Remediation. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneDeviceRemediation 'ConfigureDeviceRemediation' + { + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments{ + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.allDevicesAssignmentTarget' + } + ); + Credential = $Credscredential + 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"; + TenantId = $OrganizationName; + } + } +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 new file mode 100644 index 0000000000..e2694a7aa2 --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 @@ -0,0 +1,476 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource 'IntuneDeviceCompliancePolicyWindows10' -GenericStubModule $GenericStubPath + +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + + BeforeAll { + $secpasswd = ConvertTo-SecureString ((New-Guid).ToString()) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return 'Credentials' + } + + Mock -CommandName Invoke-MgGraphRequest -MockWith { + } + + Mock -CommandName Update-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + } + + Mock -CommandName New-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + return @{ + Id = '12345-12345-12345-12345-12345' + } + } + + Mock -CommandName Remove-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicyAssignment -MockWith { + + return @() + } + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { + } + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + } + + # Test contexts + Context -Name "When the Windows 10 Device Compliance Policy doesn't already exist" -Fixture { + BeforeAll { + $testParams = @{ + 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 = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + return $null + } + } + + It 'Should return absent from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should create the Windows 10 Device Compliance Policy from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName 'New-MgBetaDeviceManagementDeviceCompliancePolicy' -Exactly 1 + } + } + + Context -Name 'When the Windows 10 Device Compliance Policy already exists and is NOT in the Desired State' -Fixture { + BeforeAll { + $testParams = @{ + 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 = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + return @{ + DisplayName = 'Windows 10 DSC Policy' + Description = 'Test policy' + Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' + PasswordRequired = $False + PasswordBlockSimple = $True; #Drift + 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 = @() + RoleScopeTagIds = '0' + } + } + } + } + + It 'Should return Present from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should update the iOS Device Compliance Policy from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Update-MgBetaDeviceManagementDeviceCompliancePolicy -Exactly 1 + } + } + + Context -Name 'When the policy already exists and IS in the Desired State' -Fixture { + BeforeAll { + $testParams = @{ + 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 = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + return @{ + DisplayName = 'Windows 10 DSC Policy' + Description = 'Test policy' + Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' + 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 = @() + RoleScopeTagIds = '0' + } + } + } + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name 'When the policy exists and it SHOULD NOT' -Fixture { + BeforeAll { + $testParams = @{ + 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 = 'Absent' + Credential = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + return @{ + DisplayName = 'Windows 10 DSC Policy' + Description = 'Test policy' + Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' + 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 = @() + RoleScopeTagIds = '0' + } + } + } + } + + It 'Should return Present from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should remove the iOS Device Compliance Policy from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-MgBetaDeviceManagementDeviceCompliancePolicy -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + return @{ + DisplayName = 'Windows 10 DSC Policy' + Description = 'Test policy' + Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' + 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 = @() + RoleScopeTagIds = '0' + } + } + } + } + + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams -Verbose + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope From 4c266a805770665efc6733da6abd375cb55720fb Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 25 Jun 2024 16:37:15 -0400 Subject: [PATCH 026/273] updated resource --- CHANGELOG.md | 2 + ...uneDeviceManagementComplianceSettings.psm1 | 405 +---------------- .../readme.md | 190 +------- .../2-Update.ps1 | 28 +- ...viceManagementComplianceSettings.Tests.ps1 | 406 ++---------------- 5 files changed, 60 insertions(+), 971 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cffe7c9be1..ae6d738edb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * AADGroup * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) +* IntuneDeviceManagementComplianceSettings + * Initial Release. * DEPENDENCIES * Updated MSCloudLoginAssistant to version 1.1.18 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 index feffde0216..cf73c2b59a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/MSFT_IntuneDeviceManagementComplianceSettings.psm1 @@ -102,150 +102,16 @@ function Set-TargetResource ( [Parameter(Mandatory = $true)] [System.String] - $DisplayName, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.Boolean] - $PasswordRequired, - - [Parameter()] - [System.Boolean] - $PasswordBlockSimple, - - [Parameter()] - [System.Boolean] - $PasswordRequiredToUnlockFromIdle, - - [Parameter()] - [System.Int32] - $PasswordMinutesOfInactivityBeforeLock, - - [Parameter()] - [System.Int32] - $PasswordExpirationDays, - - [Parameter()] - [System.Int32] - $PasswordMinimumLength, - - [Parameter()] - [System.Int32] - $PasswordPreviousPasswordBlockCount, - - [Parameter()] - [System.Int32] - $PasswordMinimumCharacterSetCount, - - [Parameter()] - [System.String] - [ValidateSet('DeviceDefault', 'Alphanumeric', 'Numeric')] - $PasswordRequiredType, - - [Parameter()] - [System.Boolean] - $RequireHealthyDeviceReport, - - [Parameter()] - [System.String] - $OsMinimumVersion, - - [Parameter()] - [System.String] - $OsMaximumVersion, - - [Parameter()] - [System.String] - $MobileOsMinimumVersion, - - [Parameter()] - [System.String] - $MobileOsMaximumVersion, - - [Parameter()] - [System.Boolean] - $EarlyLaunchAntiMalwareDriverEnabled, - - [Parameter()] - [System.Boolean] - $BitLockerEnabled, - - [Parameter()] - [System.Boolean] - $SecureBootEnabled, - - [Parameter()] - [System.Boolean] - $CodeIntegrityEnabled, - - [Parameter()] - [System.Boolean] - $StorageRequireEncryption, - - [Parameter()] - [System.Boolean] - $ActiveFirewallRequired, - - [Parameter()] - [System.Boolean] - $DefenderEnabled, - - [Parameter()] - [System.String] - $DefenderVersion, - - [Parameter()] - [System.Boolean] - $SignatureOutOfDate, - - [Parameter()] - [System.Boolean] - $RtpEnabled, - - [Parameter()] - [System.Boolean] - $AntivirusRequired, - - [Parameter()] - [System.Boolean] - $AntiSpywareRequired, - - [Parameter()] - [System.Boolean] - $DeviceThreatProtectionEnabled, - - [Parameter()] - [System.String] - [ValidateSet('Unavailable', 'Secured', 'Low', 'Medium', 'High', 'NotSet')] - $DeviceThreatProtectionRequiredSecurityLevel, + [ValidateSet('Yes')] + $IsSingleInstance, [Parameter()] - [System.Boolean] - $ConfigurationManagerComplianceRequired, + [System.UInt32] + $DeviceComplianceCheckinThresholdDays, [Parameter()] [System.Boolean] - $TPMRequired, - - [Parameter()] - [System.String] - $DeviceCompliancePolicyScript, - - [Parameter()] - [System.Array] - $ValidOperatingSystemBuildRanges, - - [Parameter()] - [Microsoft.Management.Infrastructure.CimInstance[]] - $Assignments, - - [Parameter()] - [System.String] - [ValidateSet('Absent', 'Present')] - $Ensure = 'Present', + $SecureByDefault, [Parameter()] [System.Management.Automation.PSCredential] @@ -276,7 +142,7 @@ function Set-TargetResource $AccessTokens ) - Write-Verbose -Message "Intune Device Compliance Windows 10 Policy {$DisplayName}" + Write-Verbose -Message "Updating the Intune Device Management Compliance Settings" $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` -InboundParameters $PSBoundParameters @@ -292,82 +158,11 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $currentDeviceWindows10Policy = Get-TargetResource @PSBoundParameters - - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null - - $scheduledActionsForRule = @{ - '@odata.type' = '#microsoft.graph.deviceComplianceScheduledActionForRule' - ruleName = 'PasswordRequired' - scheduledActionConfigurations = @( - @{ - '@odata.type' = '#microsoft.graph.deviceComplianceActionItem' - actionType = 'block' - } - ) - } - - if ($Ensure -eq 'Present' -and $currentDeviceWindows10Policy.Ensure -eq 'Absent') - { - Write-Verbose -Message "Creating new Intune Device Compliance Windows 10 Policy {$DisplayName}" - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - - $AdditionalProperties = Get-M365DSCIntuneDeviceCompliancePolicyWindows10AdditionalProperties -Properties ([System.Collections.Hashtable]$PSBoundParameters) - $policy = New-MgBetaDeviceManagementDeviceCompliancePolicy -DisplayName $DisplayName ` - -Description $Description ` - -AdditionalProperties $AdditionalProperties ` - -ScheduledActionsForRule $scheduledActionsForRule - - if ($Assignments.Count -gt 0) - { - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` - -Targets $assignmentsHash ` - -Repository 'deviceManagement/deviceCompliancePolicies' - } - } - elseif ($Ensure -eq 'Present' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') - { - Write-Verbose -Message "Updating Intune Device Compliance Windows 10 Policy {$DisplayName}" - $configDevicePolicy = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` - -ErrorAction Stop | Where-Object ` - -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' -and ` - $_.displayName -eq $($DisplayName) } - - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - - $AdditionalProperties = Get-M365DSCIntuneDeviceCompliancePolicyWindows10AdditionalProperties -Properties ([System.Collections.Hashtable]$PSBoundParameters) - Update-MgBetaDeviceManagementDeviceCompliancePolicy -AdditionalProperties $AdditionalProperties ` - -Description $Description ` - -DeviceCompliancePolicyId $configDevicePolicy.Id - - if ($Assignments.Count -gt 0) - { - $assignmentsHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $Assignments - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $configDevicePolicy.id ` - -Targets $assignmentsHash ` - -Repository 'deviceManagement/deviceCompliancePolicies' - } - } - elseif ($Ensure -eq 'Absent' -and $currentDeviceWindows10Policy.Ensure -eq 'Present') - { - Write-Verbose -Message "Removing Intune Device Compliance Windows 10 Policy {$DisplayName}" - $configDevicePolicy = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` - -ErrorAction Stop | Where-Object ` - -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' -and ` - $_.displayName -eq $($DisplayName) } - - Remove-MgBetaDeviceManagementDeviceCompliancePolicy -DeviceCompliancePolicyId $configDevicePolicy.Id + $settings = @{ + deviceComplianceCheckinThresholdDays = $DeviceComplianceCheckinThresholdDays + secureByDefault = $SecureByDefault } + Update-MgBetaDeviceManagement -Settings $settings } function Test-TargetResource @@ -378,150 +173,16 @@ function Test-TargetResource ( [Parameter(Mandatory = $true)] [System.String] - $DisplayName, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.Boolean] - $PasswordRequired, - - [Parameter()] - [System.Boolean] - $PasswordBlockSimple, - - [Parameter()] - [System.Boolean] - $PasswordRequiredToUnlockFromIdle, - - [Parameter()] - [System.Int32] - $PasswordMinutesOfInactivityBeforeLock, - - [Parameter()] - [System.Int32] - $PasswordExpirationDays, - - [Parameter()] - [System.Int32] - $PasswordMinimumLength, - - [Parameter()] - [System.Int32] - $PasswordPreviousPasswordBlockCount, - - [Parameter()] - [System.Int32] - $PasswordMinimumCharacterSetCount, - - [Parameter()] - [System.String] - [ValidateSet('DeviceDefault', 'Alphanumeric', 'Numeric')] - $PasswordRequiredType, - - [Parameter()] - [System.Boolean] - $RequireHealthyDeviceReport, - - [Parameter()] - [System.String] - $OsMinimumVersion, - - [Parameter()] - [System.String] - $OsMaximumVersion, - - [Parameter()] - [System.String] - $MobileOsMinimumVersion, - - [Parameter()] - [System.String] - $MobileOsMaximumVersion, - - [Parameter()] - [System.Boolean] - $EarlyLaunchAntiMalwareDriverEnabled, - - [Parameter()] - [System.Boolean] - $BitLockerEnabled, - - [Parameter()] - [System.Boolean] - $SecureBootEnabled, - - [Parameter()] - [System.Boolean] - $CodeIntegrityEnabled, - - [Parameter()] - [System.Boolean] - $StorageRequireEncryption, - - [Parameter()] - [System.Boolean] - $ActiveFirewallRequired, - - [Parameter()] - [System.Boolean] - $DefenderEnabled, - - [Parameter()] - [System.String] - $DefenderVersion, - - [Parameter()] - [System.Boolean] - $SignatureOutOfDate, - - [Parameter()] - [System.Boolean] - $RtpEnabled, - - [Parameter()] - [System.Boolean] - $AntivirusRequired, - - [Parameter()] - [System.Boolean] - $AntiSpywareRequired, - - [Parameter()] - [System.Boolean] - $DeviceThreatProtectionEnabled, - - [Parameter()] - [System.String] - [ValidateSet('Unavailable', 'Secured', 'Low', 'Medium', 'High', 'NotSet')] - $DeviceThreatProtectionRequiredSecurityLevel, + [ValidateSet('Yes')] + $IsSingleInstance, [Parameter()] - [System.Boolean] - $ConfigurationManagerComplianceRequired, + [System.UInt32] + $DeviceComplianceCheckinThresholdDays, [Parameter()] [System.Boolean] - $TPMRequired, - - [Parameter()] - [System.String] - $DeviceCompliancePolicyScript, - - [Parameter()] - [System.Array] - $ValidOperatingSystemBuildRanges, - - [Parameter()] - [Microsoft.Management.Infrastructure.CimInstance[]] - $Assignments, - - [Parameter()] - [System.String] - [ValidateSet('Absent', 'Present')] - $Ensure = 'Present', + $SecureByDefault, [Parameter()] [System.Management.Automation.PSCredential] @@ -564,42 +225,16 @@ function Test-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - Write-Verbose -Message "Testing configuration of Intune Device Compliance Windows 10 Policy {$DisplayName}" + Write-Verbose -Message "Testing configuration of Intune Device Management Compliance Settings" $CurrentValues = Get-TargetResource @PSBoundParameters - if (-not (Test-M365DSCAuthenticationParameter -BoundParameters $CurrentValues)) - { - Write-Verbose "An error occured in Get-TargetResource, the policy {$displayName} will not be processed" - throw "An error occured in Get-TargetResource, the policy {$displayName} will not be processed. Refer to the event viewer logs for more information." - } - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - $ValuesToCheck = $PSBoundParameters - - $testResult = $true - if ($CurrentValues.Ensure -ne $Ensure) - { - $testResult = $false - } - #region Assignments - if ($testResult) - { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $PSBoundParameters.Assignments - $target = $CurrentValues.Assignments - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - $ValuesToCheck.Remove('Assignments') | Out-Null - } - #endregion - - if ($testResult) - { - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` - -Source $($MyInvocation.MyCommand.Source) ` - -DesiredValues $PSBoundParameters ` - -ValuesToCheck $ValuesToCheck.Keys - } + $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys Write-Verbose -Message "Test-TargetResource returned $TestResult" return $TestResult diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md index 1f4dc15df1..afdb546248 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceManagementComplianceSettings/readme.md @@ -1,191 +1,7 @@ -# IntuneDeviceCompliancePolicyWindows10 +# IntuneDeviceManagementComplianceSettings ## 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. +This resource configures the settings of the device management compliance +at the tenant level. diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 index dc4bef9bde..8466ff6b8a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 @@ -1,5 +1,5 @@ <# -This example updates a new Device Remediation. +This example updates the Device Management Compliance Settings #> Configuration Example @@ -13,28 +13,12 @@ Configuration Example node localhost { - IntuneDeviceRemediation 'ConfigureDeviceRemediation' + IntuneDeviceManagementComplianceSettings 'DeviceManagementComplianceSettings' { - Assignments = @( - MSFT_DeviceManagementConfigurationPolicyAssignments{ - deviceAndAppManagementAssignmentFilterType = 'none' - dataType = '#microsoft.graph.allDevicesAssignmentTarget' - } - ); - Credential = $Credscredential - 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"; - TenantId = $OrganizationName; + Credential = $Credscredential + DeviceComplianceCheckinThresholdDays = 22; + IsSingleInstance = "Yes"; + SecureByDefault = $True; } } } diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 index e2694a7aa2..7bf483c06c 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceManagementComplianceSettings.Tests.ps1 @@ -15,7 +15,7 @@ Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` -Resolve) $Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` - -DscResource 'IntuneDeviceCompliancePolicyWindows10' -GenericStubModule $GenericStubPath + -DscResource 'IntuneDeviceManagementComplianceSettings' -GenericStubModule $GenericStubPath Describe -Name $Global:DscHelper.DescribeHeader -Fixture { InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { @@ -32,27 +32,9 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { return 'Credentials' } - Mock -CommandName Invoke-MgGraphRequest -MockWith { + Mock -CommandName Update-MgBetaDeviceManagement -MockWith { } - Mock -CommandName Update-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { - } - - Mock -CommandName New-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { - return @{ - Id = '12345-12345-12345-12345-12345' - } - } - - Mock -CommandName Remove-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { - } - - Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicyAssignment -MockWith { - - return @() - } - Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { - } # Mock Write-Host to hide output during the tests Mock -CommandName Write-Host -MockWith { } @@ -61,250 +43,25 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } # Test contexts - Context -Name "When the Windows 10 Device Compliance Policy doesn't already exist" -Fixture { + Context -Name "The settings are already in the desired state." -Fixture { BeforeAll { $testParams = @{ - 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 = $Credential - } - - Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { - return $null + DeviceComplianceCheckinThresholdDays = 22; + IsSingleInstance = "Yes"; + SecureByDefault = $True; + Credential = $Credential } - } - - It 'Should return absent from the Get method' { - (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' - } - - It 'Should return false from the Test method' { - Test-TargetResource @testParams | Should -Be $false - } - - It 'Should create the Windows 10 Device Compliance Policy from the Set method' { - Set-TargetResource @testParams - Should -Invoke -CommandName 'New-MgBetaDeviceManagementDeviceCompliancePolicy' -Exactly 1 - } - } - Context -Name 'When the Windows 10 Device Compliance Policy already exists and is NOT in the Desired State' -Fixture { - BeforeAll { - $testParams = @{ - 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 = $Credential - } - - Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + Mock -CommandName Invoke-MgGraphRequest -MockWith { return @{ - DisplayName = 'Windows 10 DSC Policy' - Description = 'Test policy' - Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' - PasswordRequired = $False - PasswordBlockSimple = $True; #Drift - 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 = @() - RoleScopeTagIds = '0' - } + deviceComplianceCheckinThresholdDays = 22 + secureByDefault = $true } } } - It 'Should return Present from the Get method' { - (Get-TargetResource @testParams).Ensure | Should -Be 'Present' - } - - It 'Should return false from the Test method' { - Test-TargetResource @testParams | Should -Be $false - } - - It 'Should update the iOS Device Compliance Policy from the Set method' { - Set-TargetResource @testParams - Should -Invoke -CommandName Update-MgBetaDeviceManagementDeviceCompliancePolicy -Exactly 1 - } - } - - Context -Name 'When the policy already exists and IS in the Desired State' -Fixture { - BeforeAll { - $testParams = @{ - 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 = $Credential - } - - Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { - return @{ - DisplayName = 'Windows 10 DSC Policy' - Description = 'Test policy' - Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' - 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 = @() - RoleScopeTagIds = '0' - } - } - } + It 'Should return Yes from the Get method' { + (Get-TargetResource @testParams).IsSingleInstance | Should -Be 'Yes' } It 'Should return true from the Test method' { @@ -312,103 +69,34 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } } - Context -Name 'When the policy exists and it SHOULD NOT' -Fixture { + Context -Name "The settings are NOT in the desired state." -Fixture { BeforeAll { $testParams = @{ - 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 = 'Absent' - Credential = $Credential + DeviceComplianceCheckinThresholdDays = 40; #Drift + IsSingleInstance = "Yes"; + SecureByDefault = $True; + Credential = $Credential } - Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + Mock -CommandName Invoke-MgGraphRequest -MockWith { return @{ - DisplayName = 'Windows 10 DSC Policy' - Description = 'Test policy' - Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' - 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 = @() - RoleScopeTagIds = '0' - } + deviceComplianceCheckinThresholdDays = 22 + secureByDefault = $true } } } - It 'Should return Present from the Get method' { - (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + It 'Should return Yes from the Get method' { + (Get-TargetResource @testParams).IsSingleInstance | Should -Be 'Yes' } It 'Should return true from the Test method' { Test-TargetResource @testParams | Should -Be $false } - It 'Should remove the iOS Device Compliance Policy from the Set method' { + It 'Should call the Update cmdlet from the Set method' { Set-TargetResource @testParams - Should -Invoke -CommandName Remove-MgBetaDeviceManagementDeviceCompliancePolicy -Exactly 1 + Should -Invoke -CommandName Update-MgBetaDeviceManagement -Exactly 1 } } @@ -416,51 +104,15 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { BeforeAll { $Global:CurrentModeIsExport = $true $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ - Credential = $Credential + Credential = $Credential } - Mock -CommandName Get-MgBetaDeviceManagementDeviceCompliancePolicy -MockWith { + Mock -CommandName Invoke-MgGraphRequest -MockWith { return @{ - DisplayName = 'Windows 10 DSC Policy' - Description = 'Test policy' - Id = 'f38b283d-d893-4c33-b6d2-d3bcb5f2dcc2' - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.windows10CompliancePolicy' - 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 = @() - RoleScopeTagIds = '0' - } + deviceComplianceCheckinThresholdDays = 22 + secureByDefault = $true } } } From 7d0d89c1b01ccbfd1d8120eb1ca087fb98e89e4e Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 25 Jun 2024 21:44:34 +0000 Subject: [PATCH 027/273] Updated Resources and Cmdlet documentation pages --- ...ntuneDeviceManagementComplianceSettings.md | 78 +++++++++++++++++++ .../intune/IntuneDeviceRemediation.md | 2 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md diff --git a/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md b/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md new file mode 100644 index 0000000000..d373490263 --- /dev/null +++ b/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md @@ -0,0 +1,78 @@ +# IntuneDeviceManagementComplianceSettings + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **IsSingleInstance** | Key | String | Only valid value is 'Yes'. | `Yes` | +| **SecureByDefault** | Write | Boolean | Device should be noncompliant when there is no compliance policy targeted when this is true. | | +| **DeviceComplianceCheckinThresholdDays** | Write | UInt32 | The number of days a device is allowed to go without checking in to remain compliant. | | +| **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. | | +| **AccessTokens** | Write | StringArray[] | Access token used for authentication. | | + + +## Description + +This resource configures the settings of the device management compliance +at the tenant level. + +## 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 updates the Device Management Compliance Settings + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneDeviceManagementComplianceSettings 'DeviceManagementComplianceSettings' + { + Credential = $Credscredential + DeviceComplianceCheckinThresholdDays = 22; + IsSingleInstance = "Yes"; + SecureByDefault = $True; + } + } +} +``` + diff --git a/docs/docs/resources/intune/IntuneDeviceRemediation.md b/docs/docs/resources/intune/IntuneDeviceRemediation.md index 91c47bf340..72156999e6 100644 --- a/docs/docs/resources/intune/IntuneDeviceRemediation.md +++ b/docs/docs/resources/intune/IntuneDeviceRemediation.md @@ -18,7 +18,7 @@ | **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_DeviceManagementConfigurationPolicyAssignments[] | Represents the assignment to the Intune policy. | | -| **Ensure** | Write | String | Present ensures the policy exists, absent ensures it is removed. | `Present`, `Absent` | +| **Ensure** | Write | String | Present ensures the policy exists, absent ensures it is removed. | | | **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. | | From 82d76a1778f1434669c7c8d042c912d0f0c6ffd7 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 25 Jun 2024 21:45:53 +0000 Subject: [PATCH 028/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 6b881e8506..7e1fa557a8 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -29294,6 +29294,61 @@ } ] }, + { + "ClassName": "MSFT_IntuneDeviceManagementComplianceSettings", + "Parameters": [ + { + "CIMType": "String", + "Name": "IsSingleInstance", + "Option": "Key" + }, + { + "CIMType": "Boolean", + "Name": "SecureByDefault", + "Option": "Write" + }, + { + "CIMType": "UInt32", + "Name": "DeviceComplianceCheckinThresholdDays", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "ManagedIdentity", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AccessTokens", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_MicrosoftGraphDeviceHealthScriptParameter", "Parameters": [ From 1feebe0433bd5387eb0aacc955066835d3c34208 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 26 Jun 2024 13:46:04 +0000 Subject: [PATCH 029/273] Updated Resources and Cmdlet documentation pages --- .../intune/IntuneDeviceRemediation.md | 60 ++++++++++++++++--- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/docs/docs/resources/intune/IntuneDeviceRemediation.md b/docs/docs/resources/intune/IntuneDeviceRemediation.md index 72156999e6..d4d43ac6c0 100644 --- a/docs/docs/resources/intune/IntuneDeviceRemediation.md +++ b/docs/docs/resources/intune/IntuneDeviceRemediation.md @@ -17,8 +17,8 @@ | **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_DeviceManagementConfigurationPolicyAssignments[] | Represents the assignment to the Intune policy. | | -| **Ensure** | Write | String | Present ensures the policy exists, absent ensures it is removed. | | +| **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. | | @@ -40,6 +40,28 @@ | **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 @@ -105,9 +127,20 @@ Configuration Example IntuneDeviceRemediation 'ConfigureDeviceRemediation' { Assignments = @( - MSFT_DeviceManagementConfigurationPolicyAssignments{ - deviceAndAppManagementAssignmentFilterType = 'none' - dataType = '#microsoft.graph.allDevicesAssignmentTarget' + 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' + } } ); Credential = $Credscredential @@ -148,9 +181,20 @@ Configuration Example IntuneDeviceRemediation 'ConfigureDeviceRemediation' { Assignments = @( - MSFT_DeviceManagementConfigurationPolicyAssignments{ - deviceAndAppManagementAssignmentFilterType = 'none' - dataType = '#microsoft.graph.allDevicesAssignmentTarget' + 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' + } } ); Credential = $Credscredential From ba216d160e8afb958926a73d39ca42490800a1c2 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 26 Jun 2024 13:47:54 +0000 Subject: [PATCH 030/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 7e1fa557a8..55bafee6c4 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -29349,6 +29349,56 @@ } ] }, + { + "ClassName": "MSFT_IntuneDeviceRemediationRunSchedule", + "Parameters": [ + { + "CIMType": "String", + "Name": "dataType", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Date", + "Option": "Write" + }, + { + "CIMType": "UInt32", + "Name": "Interval", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Time", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "UseUtc", + "Option": "Write" + } + ] + }, + { + "ClassName": "MSFT_IntuneDeviceRemediationPolicyAssignments", + "Parameters": [ + { + "CIMType": "Boolean", + "Name": "RunRemediationScript", + "Option": "Write" + }, + { + "CIMType": "MSFT_IntuneDeviceRemediationRunSchedule", + "Name": "RunSchedule", + "Option": "Write" + }, + { + "CIMType": "MSFT_DeviceManagementConfigurationPolicyAssignments", + "Name": "Assignment", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_MicrosoftGraphDeviceHealthScriptParameter", "Parameters": [ @@ -29453,7 +29503,7 @@ "Option": "Key" }, { - "CIMType": "MSFT_DeviceManagementConfigurationPolicyAssignments[]", + "CIMType": "MSFT_IntuneDeviceRemediationPolicyAssignments[]", "Name": "Assignments", "Option": "Write" }, From f01a57f7792b0d8b6b6ca0c65282fec83d1963a3 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 26 Jun 2024 13:48:24 +0000 Subject: [PATCH 031/273] Updated {Create} Intune Integration Tests --- .../M365DSCIntegration.INTUNE.Create.Tests.ps1 | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index 9d6028a771..71cbbb9dc0 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -2027,9 +2027,20 @@ IntuneDeviceRemediation 'ConfigureDeviceRemediation' { Assignments = @( - MSFT_DeviceManagementConfigurationPolicyAssignments{ - deviceAndAppManagementAssignmentFilterType = 'none' - dataType = '#microsoft.graph.allDevicesAssignmentTarget' + 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' + } } ); Credential = $Credscredential From 6deab92be9c4534d139dd45001d55eca15397589 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 26 Jun 2024 10:14:25 -0400 Subject: [PATCH 032/273] Release 1.24.626.1 --- CHANGELOG.md | 7 +++--- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 25 +++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7fac548f9..949e7a03e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,13 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.626.1 * AADGroup * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) * IntuneDeviceManagementComplianceSettings * Initial Release. * IntuneDeviceRemediation - * Fix invalid assignment export and import. + * Fix invalid assignment export and import. FIXES [#4726](https://github.com/microsoft/Microsoft365DSC/issues/4726) * DEPENDENCIES * Updated MSCloudLoginAssistant to version 1.1.18 @@ -17,7 +17,8 @@ * M365DSCResourceGenerator * Update CimInstance comparison template * MISC - * Add group display name export and update assignment comparison across Intune resources + * Add group display name export and update assignment comparison across Intune + resources. # 1.24.619.1 diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 9fa4b54885..8109119103 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-06-20 +# Generated on: 2024-06-26 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.619.1' + ModuleVersion = '1.24.626.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,14 +142,23 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* SCDLPComplianceRule - * Fix #4259 and #3845 -* TeamsM365App - * Initial release. + ReleaseNotes = '* AADGroup + * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) +* IntuneDeviceManagementComplianceSettings + * Initial Release. +* IntuneDeviceRemediation + * Fix invalid assignment export and import. + FIXES [#4726](https://github.com/microsoft/Microsoft365DSC/issues/4726) * DEPENDENCIES - * Updated MicrosoftTeams to version 6.4.0. + * Updated MSCloudLoginAssistant to version 1.1.18 +* M365DSCDRGUtil + * Add `collectionId` export to `ConvertFrom-IntunePolicyAssignment` + * Add handling for Intune assignments in `Compare-M365DSCComplexObject` +* M365DSCResourceGenerator + * Update CimInstance comparison template * MISC - * Improved telemetry around Export sizes.' + * Add group display name export and update assignment comparison across Intune + resources.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From 335c47ac075491147abd082148cfcb20c56272c3 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Wed, 26 Jun 2024 16:18:14 +0200 Subject: [PATCH 033/273] Revert parameter and MOF changes to LAPS resource --- CHANGELOG.md | 1 + ...alAdministratorPasswordSolutionPolicy.psm1 | 28 +++++++++++-------- ...nistratorPasswordSolutionPolicy.schema.mof | 4 +-- .../Modules/M365DSCDRGUtil.psm1 | 5 ++++ 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ded616e97..ee2f403f4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ * M365DSCDRGUtil * Add `collectionId` export to `ConvertFrom-IntunePolicyAssignment` * Add handling for Intune assignments in `Compare-M365DSCComplexObject` + * Fix issue with target handling in `Update-DeviceConfigurationPolicyAssignment` * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index 4b5c957998..889071b44e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -32,8 +32,7 @@ function Get-TargetResource $PasswordAgeDays, [Parameter()] - [ValidateSet('true', 'false')] - [System.String] + [System.Boolean] $PasswordExpirationProtectionEnabled, [Parameter()] @@ -42,8 +41,7 @@ function Get-TargetResource $AdEncryptedPasswordHistorySize, [Parameter()] - [ValidateSet('true', 'false')] - [System.String] + [System.Boolean] $AdPasswordEncryptionEnabled, [Parameter()] @@ -172,6 +170,16 @@ function Get-TargetResource $returnHashtable = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $returnHashtable + if ($null -ne $returnHashtable.PasswordExpirationProtectionEnabled) + { + $returnHashtable.PasswordExpirationProtectionEnabled = [bool]::Parse($returnHashtable.PasswordExpirationProtectionEnabled) + } + + if ($null -ne $returnHashtable.AdPasswordEncryptionEnabled) + { + $returnHashtable.AdPasswordEncryptionEnabled = [bool]::Parse($returnHashtable.AdPasswordEncryptionEnabled) + } + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id $assignmentResult = @() if ($assignmentsValues.Count -gt 0) @@ -237,8 +245,7 @@ function Set-TargetResource $PasswordAgeDays, [Parameter()] - [ValidateSet('true', 'false')] - [System.String] + [System.Boolean] $PasswordExpirationProtectionEnabled, [Parameter()] @@ -247,8 +254,7 @@ function Set-TargetResource $AdEncryptedPasswordHistorySize, [Parameter()] - [ValidateSet('true', 'false')] - [System.String] + [System.Boolean] $AdPasswordEncryptionEnabled, [Parameter()] @@ -435,8 +441,7 @@ function Test-TargetResource $PasswordAgeDays, [Parameter()] - [ValidateSet('true', 'false')] - [System.String] + [System.Boolean] $PasswordExpirationProtectionEnabled, [Parameter()] @@ -445,8 +450,7 @@ function Test-TargetResource $AdEncryptedPasswordHistorySize, [Parameter()] - [ValidateSet('true', 'false')] - [System.String] + [System.Boolean] $AdPasswordEncryptionEnabled, [Parameter()] diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof index 0c7a470ab6..4a8235bf89 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof @@ -19,9 +19,9 @@ class MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy : OMI [Write, Description("Configures which directory the local admin account password is backed up to. 0 - Disabled, 1 - Azure AD, 2 - AD"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] UInt32 BackupDirectory; [Write, Description("Configures the maximum password age of the managed local administrator account for Azure AD. Minimum - 7, Maximum - 365")] UInt32 PasswordAgeDays_AAD; [Write, Description("Configures the maximum password age of the managed local administrator account for Active Directory. Minimum - 1, Maximum - 365")] UInt32 PasswordAgeDays; - [Write, Description("Configures additional enforcement of maximum password age for the managed local administrator account."), ValueMap{"true", "false"}, Values{"true", "false"}] String PasswordExpirationProtectionEnabled; + [Write, Description("Configures additional enforcement of maximum password age for the managed local administrator account.")] Boolean PasswordExpirationProtectionEnabled; [Write, Description("Configures how many previous encrypted passwords will be remembered in Active Directory. Minimum - 0, Maximum - 12")] UInt32 AdEncryptedPasswordHistorySize; - [Write, Description("Configures whether the password is encrypted before being stored in Active Directory."), ValueMap{"true", "false"}, Values{"true", "false"}] String AdPasswordEncryptionEnabled; + [Write, Description("Configures whether the password is encrypted before being stored in Active Directory.")] Boolean AdPasswordEncryptionEnabled; [Write, Description("Configures the name or SID of a user or group that can decrypt the password stored in Active Directory.")] String AdPasswordEncryptionPrincipal; [Write, Description("Configures the name of the managed local administrator account.")] String AdministratorAccountName; [Write, Description("Configures the password complexity of the managed local administrator account. 1 - Large letters, 2 - Large + small letters, 3 - Large + small letters + numbers, 4 - Large + small letters + numbers + special characters"), ValueMap{"1", "2", "3", "4"}, Values{"1", "2", "3", "4"}] UInt32 PasswordComplexity; diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 00a848a615..12d8287ca9 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1261,6 +1261,11 @@ function Update-DeviceConfigurationPolicyAssignment foreach ($target in $targets) { + if ($target.target -is [hashtable]) + { + $target = $target.target + } + $formattedTarget = @{"@odata.type" = $target.dataType} if(-not $formattedTarget."@odata.type" -and $target."@odata.type") { From 9f281c52072442435f570cd2f1a88afb4a43ed01 Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Wed, 26 Jun 2024 16:36:07 +0200 Subject: [PATCH 034/273] wip --- .../MSFT_EXOEOPProtectionPolicyRule.psm1 | 500 ++++++++++++++++++ ...MSFT_EXOEOPProtectionPolicyRule.schema.mof | 21 + .../MSFT_EXOEOPProtectionPolicyRule/readme.md | 6 + .../settings.json | 32 ++ .../EXOEOPProtectionPolicyRule/1-Update.ps1 | 31 ++ Modules/Microsoft365DSC/SchemaDefinition.json | 66 +++ ...65DSC.EXOEOPProtectionPolicyRule.Tests.ps1 | 215 ++++++++ 7 files changed, 871 insertions(+) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 new file mode 100644 index 0000000000..eb8df0a6de --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 @@ -0,0 +1,500 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + [Parameter()] + [System.String] + $Comments, + + [Parameter()] + [System.Object[]] + $ExceptIfRecipientDomainIs, + + [Parameter()] + [System.Object[]] + $ExceptIfSentTo, + + [Parameter()] + [System.Object[]] + $ExceptIfSentToMemberOf, + + [Parameter(Mandatory = $true)] + [System.Object] + $Identity, + + [Parameter()] + [System.String] + $State, + + [Parameter()] + [System.String] + $Name, + + [Parameter()] + [System.Int32] + $Priority, + + [Parameter()] + [System.Object[]] + $RecipientDomainIs, + + [Parameter()] + [System.Object[]] + $SentTo, + + [Parameter()] + [System.Object[]] + $SentToMemberOf, + + [Parameter()] + [ValidateSet('Present', 'Absent')] + [System.String] + $Ensure, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret + ) + + New-M365DSCConnection -Workload 'ExchangeOnline' ` + -InboundParameters $PSBoundParameters | Out-Null + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + try + { + $instance = Get-EOPProtectionPolicyRule -Identity $Identity -ErrorAction SilentlyContinue + if ($null -eq $instance) + { + return $nullResult + } + + Write-Verbose -Message "Found an instance with Identity {$Identity}" + $results = @{ + Comments = $instance.Comments + ExceptIfRecipientDomainIs = $instance.ExceptIfRecipientDomainIs + ExceptIfSentTo = $instance.ExceptIfSentTo + ExceptIfSentToMemberOf = $instance.ExceptIfSentToMemberOf + Identity = $instance.Identity + State = $instance.State + Name = $instance.Name + Priority = $instance.Priority + RecipientDomainIs = $instance.RecipientDomainIs + SentTo = $instance.SentTo + SentToMemberOf = $instance.SentToMemberOf + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + ApplicationSecret = $ApplicationSecret + } + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $Comments, + + [Parameter()] + [System.Object[]] + $ExceptIfRecipientDomainIs, + + [Parameter()] + [System.Object[]] + $ExceptIfSentTo, + + [Parameter()] + [System.Object[]] + $ExceptIfSentToMemberOf, + + [Parameter(Mandatory = $true)] + [System.Object] + $Identity, + + [Parameter()] + [System.String] + $State, + + [Parameter()] + [System.String] + $Name, + + [Parameter()] + [System.Int32] + $Priority, + + [Parameter()] + [System.Object[]] + $RecipientDomainIs, + + [Parameter()] + [System.Object[]] + $SentTo, + + [Parameter()] + [System.Object[]] + $SentToMemberOf, + + [Parameter()] + [ValidateSet('Present', 'Absent')] + [System.String] + $Ensure, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret + ) + + New-M365DSCConnection -Workload 'ExchangeOnline' ` + -InboundParameters $PSBoundParameters | Out-Null + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentInstance = Get-TargetResource @PSBoundParameters + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + + if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') + { + Write-Verbose -Message "We not create new EOPProtectionPolicyRule, we try to enable the rule if not already done" + Enable-EOPProtectionPolicyRule + } + elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating {$Identity}" + + $UpdateParameters = ([Hashtable]$BoundParameters).Clone() + $UpdateParameters.Remove('Verbose') | Out-Null + + $keys = $UpdateParameters.Keys + foreach ($key in $keys) + { + if ($null -ne $UpdateParameters.$key -and $UpdateParameters.$key.GetType().Name -like '*cimInstance*') + { + $keyValue = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $UpdateParameters.$key + $UpdateParameters.Remove($key) | Out-Null + $UpdateParameters.Add($keyName, $keyValue) + } + } + + Set-EOPProtectionPolicyRule @UpdateParameters | Out-Null + } + elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "We will not remove EOPProtectionPolicyRules, we will disable the rule if not already done" + Disable-EOPProtectionPolicyRule -Identity $currentInstance.Identity + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + [Parameter()] + [System.String] + $Comments, + + [Parameter()] + [System.Object[]] + $ExceptIfRecipientDomainIs, + + [Parameter()] + [System.Object[]] + $ExceptIfSentTo, + + [Parameter()] + [System.Object[]] + $ExceptIfSentToMemberOf, + + [Parameter(Mandatory = $true)] + [System.Object] + $Identity, + + [Parameter()] + [System.String] + $State, + + [Parameter()] + [System.String] + $Name, + + [Parameter()] + [System.Int32] + $Priority, + + [Parameter()] + [System.Object[]] + $RecipientDomainIs, + + [Parameter()] + [System.Object[]] + $SentTo, + + [Parameter()] + [System.Object[]] + $SentToMemberOf, + + [Parameter()] + [ValidateSet('Present', 'Absent')] + [System.String] + $Ensure, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + Write-Verbose -Message "Testing configuration of {$Identity}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone() + $ValuesToCheck.Remove('Identity') | Out-Null + + if ($CurrentValues.Ensure -eq 'Absent') + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" + + #Convert any DateTime to String + foreach ($key in $ValuesToCheck.Keys) + { + if (($null -ne $CurrentValues[$key]) ` + -and ($CurrentValues[$key].GetType().Name -eq 'DateTime')) + { + $CurrentValues[$key] = $CurrentValues[$key].toString() + } + } + + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + + Write-Verbose -Message "Test-TargetResource returned $testResult" + + return $testResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + [array]$getValue = Get-EOPProtectionPolicyRule -ErrorAction Stop + + $i = 1 + $dscContent = '' + if ($getValue.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $getValue) + { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + + $displayedKey = $config.Identity + if (-not [String]::IsNullOrEmpty($config.displayName)) + { + $displayedKey = $config.displayName + } + Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline + $params = @{ + Identity = $config.Identity + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + ApplicationSecret = $ApplicationSecret + + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof new file mode 100644 index 0000000000..1064a9fd77 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof @@ -0,0 +1,21 @@ +[ClassVersion("1.0.0.0"), FriendlyName("EXOEOPProtectionPolicyRule")] +class MSFT_EXOEOPProtectionPolicyRule : OMI_BaseResource +{ + [Write, Description("The Comments parameter specifies informative comments for the rule, such as what the rule is used for or how it has changed over time. The length of the comment can't exceed 1024 characters.")] String Comments; + [Write, Description("The ExceptIfRecipientDomainIs parameter specifies an exception that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.")] Object[] ExceptIfRecipientDomainIs; + [Write, Description("The ExceptIfSentTo parameter specifies an exception that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] Object[] ExceptIfSentTo; + [Write, Description("The ExceptIfSentToMemberOf parameter specifies an exception that looks for messages sent to members of groups. You can use any value that uniquely identifies the group.")] Object[] ExceptIfSentToMemberOf; + [Key, Description("The Identity parameter specifies the rule that you want to view. You can use any value that uniquely identifies the rule. ")] Object Identity; + [Write, Description("This parameter defin if the rule is enabled or disabled")] String State; + [Write, Description("The Name parameter specifies a unique name for the rule. The maximum length is 64 characters.")] String Name; + [Write, Description("The Priority parameter specifies a priority value for the rule that determines the order of rule processing. A lower integer value indicates a higher priority, the value 0 is the highest priority, and rules can't have the same priority value.")] UInt32 Priority; + [Write, Description("The RecipientDomainIs parameter specifies a condition that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.")] Object[] RecipientDomainIs; + [Write, Description("The SentTo parameter specifies a condition that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] Object[] SentTo; + [Write, Description("The SentToMemberOf parameter specifies a condition that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You can use any value that uniquely identifies the group.")] Object[] SentToMemberOf; + [Write, Description("Present ensures the instance exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Credentials of the workload's Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/readme.md new file mode 100644 index 0000000000..ed84bb0d81 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/readme.md @@ -0,0 +1,6 @@ + +# EXOEOPProtectionPolicyRule + +## Description + +This resource configures EOP Protection Policy Rules. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/settings.json new file mode 100644 index 0000000000..e54bf36221 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/settings.json @@ -0,0 +1,32 @@ +{ + "resourceName": "EXOEOPProtectionPolicyRule", + "description": "This resource configures EOP Protection Policy Rules.", + "roles": { + "read": [ + "Global Reader" + ], + "update": [ + "Exchange Administrator" + ] + }, + "permissions": { + "graph": { + "delegated": { + "read": [], + "update": [] + }, + "application": { + "read": [], + "update": [] + } + }, + "exchange": { + "requiredroles": [ + "SecurityAdmin", + "TransportHygiene" + ], + "requiredrolegroups": [] + } + } + +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 new file mode 100644 index 0000000000..ab7d90c422 --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 @@ -0,0 +1,31 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + $Domain = $Credscredential.Username.Split('@')[1] + node localhost + { + EXOEOPProtectionPolicyRule "EXOEOPProtectionPolicyRule-Strict Preset Security Policy" + { + ApplicationId = $ConfigurationData.NonNodeData.ApplicationId; + CertificateThumbprint = $ConfigurationData.NonNodeData.CertificateThumbprint; + Ensure = "Present"; + ExceptIfRecipientDomainIs = @("sandrodev.onmicrosoft.com"); + Identity = "Strict Preset Security Policy"; + Name = "Strict Preset Security Policy"; + Priority = 0; + State = "Enabled"; + TenantId = $OrganizationName; + } + } +} diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 7e1fa557a8..903b824064 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -7489,6 +7489,72 @@ } ] }, + { + "ClassName": "MSFT_EXOEOPProtectionPolicyRule", + "Parameters": [ + { + "CIMType": "String", + "Name": "Identity", + "Option": "Key" + }, + { + "CIMType": "String", + "Name": "Comments", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "ExceptIfRecipientDomainIs", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "ExceptIfSentTo", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "ExceptIfSentToMemberOf", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Identity", + "Option": "Write", + "Mandatory": true + }, + { + "CIMType": "String", + "Name": "State", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Name", + "Option": "Write" + }, + { + "CIMType": "Int32", + "Name": "Priority", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "RecipientDomainIs", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "SentTo", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "SentToMemberOf", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_EXOGlobalAddressList", "Parameters": [ diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 new file mode 100644 index 0000000000..1c33037172 --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 @@ -0,0 +1,215 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource "EXOEOPProtectionPolicyRule" -GenericStubModule $GenericStubPath +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + BeforeAll { + + $secpasswd = ConvertTo-SecureString (New-Guid | Out-String) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName Get-PSSession -MockWith { + } + + Mock -CommandName Remove-PSSession -MockWith { + } + + Mock -CommandName Set-EOPProtectionPolicyRule -MockWith { + } + + Mock -CommandName New-EOPProtectionPolicyRule -MockWith { + } + + Mock -CommandName Remove-EOPProtectionPolicyRule -MockWith { + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return "Credentials" + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + } + # Test contexts + Context -Name "The EXOEOPProtectionPolicyRule should exist but it DOES NOT" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = "Present" + Credential = $Credential; + } + + Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { + return $null + } + } + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + It 'Should Create the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName New-EOPProtectionPolicyRule -Exactly 1 + } + } + + Context -Name "The EXOEOPProtectionPolicyRule exists but it SHOULD NOT" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Absent' + Credential = $Credential; + } + + Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { + return @{ + Identity = + SentTo = + SentToMemberOf = + ExceptIfSentTo = + RecipientDomainIs = + Name = "FakeStringValue" + ExceptIfRecipientDomainIs = + Comments = "FakeStringValue" + ExceptIfSentToMemberOf = + Priority = 3 + + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should Remove the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-EOPProtectionPolicyRule -Exactly 1 + } + } + Context -Name "The EXOEOPProtectionPolicyRule Exists and Values are already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { + return @{ + Identity = + SentTo = + SentToMemberOf = + ExceptIfSentTo = + RecipientDomainIs = + Name = "FakeStringValue" + ExceptIfRecipientDomainIs = + Comments = "FakeStringValue" + ExceptIfSentToMemberOf = + Priority = 3 + + } + } + } + + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name "The EXOEOPProtectionPolicyRule exists and values are NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { + return @{ + Identity = + SentTo = + SentToMemberOf = + ExceptIfSentTo = + RecipientDomainIs = + Name = "FakeStringValueDrift #Drift" + ExceptIfRecipientDomainIs = + Comments = "FakeStringValueDrift #Drift" + ExceptIfSentToMemberOf = + Priority = 2 + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should call the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Set-EOPProtectionPolicyRule -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + + Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { + return @{ + Identity = + SentTo = + SentToMemberOf = + ExceptIfSentTo = + RecipientDomainIs = + Name = "FakeStringValue" + ExceptIfRecipientDomainIs = + Comments = "FakeStringValue" + ExceptIfSentToMemberOf = + Priority = 3 + + } + } + } + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope From cc054aafea44162486f788de9bc9ae2655ed9dab Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 7 Jun 2024 16:00:53 +0200 Subject: [PATCH 035/273] Migrate Intune Exploit Protection policy to new Settings Catalog Cmdlets --- CHANGELOG.md | 14 +- ...otectionPolicyWindows10SettingCatalog.psm1 | 723 ++++-------------- ...onPolicyWindows10SettingCatalog.schema.mof | Bin 7254 -> 7254 bytes .../Modules/M365DSCDRGUtil.psm1 | 4 +- ...ionPolicyWindows10SettingCatalog.Tests.ps1 | 246 ++---- 5 files changed, 227 insertions(+), 760 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..0971ee8fcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,18 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneExploitProtectionPolicyWindows10SettingCatalog + * Migrate to new settings catalog cmdlets. +* M365DSCDRGUtil + * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. + # 1.24.626.1 * AADGroup * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) * IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy * Migrate to new settings catalog cmdlets. -* IntuneDeviceManagementComplianceSettings - * Initial Release. -* IntuneDeviceRemediation - * Fix invalid assignment export and import. - FIXES [#4726](https://github.com/microsoft/Microsoft365DSC/issues/4726) * M365DSCDRGUtil * Fixes an issue with the settings catalog property generation. * Add `collectionId` export to `ConvertFrom-IntunePolicyAssignment` @@ -19,7 +21,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 index 88dc0ab1c4..f86ff12b4c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 @@ -21,6 +21,7 @@ function Get-TargetResource $ExploitProtectionSettings, [Parameter()] + [ValidateSet('0', '1')] [System.String] $DisallowExploitProtectionOverride, @@ -62,93 +63,66 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Checking for the Intune Endpoint Protection Policy {$DisplayName}" + try + { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters ` - -ErrorAction Stop + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters ` + -ErrorAction Stop - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies - #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' - $CommandName = $MyInvocation.MyCommand - $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` - -CommandName $CommandName ` - -Parameters $PSBoundParameters - Add-M365DSCTelemetryEvent -Data $data - #endregion + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion - $nullResult = $PSBoundParameters - $nullResult.Ensure = 'Absent' + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' - $templateReferenceId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' + $templateReferenceId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' - try - { #Retrieve policy general settings - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction silentlyContinue + $policy = $null + $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction SilentlyContinue if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Attack Surface Protection rules Policy {$Identity} was found" - $policy = Get-MgBetaDeviceManagementConfigurationPolicy | Where-Object -FilterScript { $_.Name -eq "$DisplayName" -and $_.templateReference.TemplateId -eq "$templateReferenceId" } -ErrorAction silentlyContinue + Write-Verbose -Message "No Exploit Protection Policy for Windows10 Setting Catalog {$Identity} was found" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $policy = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName' and templateReference/TemplateId eq '$templateReferenceId'" ` + -ErrorAction SilentlyContinue + } } if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Attack Surface Protection rules Policy {$DisplayName} was found" + Write-Verbose -Message "No Exploit Protection Policy for Windows10 Setting Catalog {$DisplayName} was found" return $nullResult } - #Retrieve policy specific settings + $Identity = $policy.Id + Write-Verbose "Found Exploit Protection Policy for Windows10 Setting Catalog with Id {$Identity} and Name {$DisplayName}" + + # Retrieve policy specific settings [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` - -DeviceManagementConfigurationPolicyId $policy.Id ` + -DeviceManagementConfigurationPolicyId $Identity ` + -ExpandProperty 'settingDefinitions' ` -ErrorAction Stop $returnHashtable = @{} - $returnHashtable.Add('Identity', $policy.Id) - $returnHashtable.Add('DisplayName', $policy.name) - $returnHashtable.Add('Description', $policy.description) - - foreach ($setting in $settings.settingInstance) - { - $addToParameters = $true - $settingName = $setting.settingDefinitionId.Split('_') | Select-Object -Last 1 - - switch ($setting.AdditionalProperties.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.simpleSettingCollectionValue) - { - $values += Get-DeviceManagementConfigurationSettingInstanceValue -Setting $value - } - $settingValue = $values - } + $returnHashtable.Add('Identity', $Identity) + $returnHashtable.Add('DisplayName', $policy.Name) + $returnHashtable.Add('Description', $policy.Description) - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.groupSettingCollectionValue.children) - { - $settingName = $value.settingDefinitionId.split('_') | Select-Object -Last 1 - $settingValue = Get-DeviceManagementConfigurationSettingInstanceValue -Setting $value - $returnHashtable.Add($settingName, $settingValue) - $addToParameters = $false - } - } - Default - { - $settingValue = Get-DeviceManagementConfigurationSettingInstanceValue -Setting $setting - } - } - if ($addToParameters) - { - $returnHashtable.Add($settingName, $settingValue) - } - } + $returnHashtable = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $returnHashtable $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id $assignmentResult = @() @@ -160,8 +134,6 @@ function Get-TargetResource } $returnHashtable.Add('Assignments', $assignmentResult) - Write-Verbose -Message "Found Endpoint Protection Policy {$($policy.name)}" - $returnHashtable.Add('Ensure', 'Present') $returnHashtable.Add('Credential', $Credential) $returnHashtable.Add('ApplicationId', $ApplicationId) @@ -207,6 +179,7 @@ function Set-TargetResource $ExploitProtectionSettings, [Parameter()] + [ValidateSet('0', '1')] [System.String] $DisallowExploitProtectionOverride, @@ -264,14 +237,7 @@ function Set-TargetResource #endregion $currentPolicy = Get-TargetResource @PSBoundParameters - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null - $PSBoundParameters.Remove('ManagedIdentity') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters $templateReferenceId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' $platforms = 'windows10' @@ -279,46 +245,43 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') { - - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Identity') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - Write-Verbose -Message "Creating new Endpoint Protection Policy {$DisplayName}" - - $settings = Format-M365DSCIntuneSettingCatalogPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId - - $policy = New-IntuneDeviceConfigurationPolicy ` - -Name $DisplayName ` - -Description $Description ` - -Platforms $platforms ` - -TemplateReferenceId $templateReferenceId ` - -Technologies $technologies ` - -Settings $settings + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReference = @{templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters #region Assignments - $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments - if ($policy.id) + if ($policy.Id) { - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` - -Targets $assignmentsHash + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' } #endregion } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Present') { Write-Verbose -Message "Updating existing Endpoint Protection Policy {$($currentPolicy.DisplayName)}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - $PSBoundParameters.Remove('Identity') | Out-Null - - $settings = Format-M365DSCIntuneSettingCatalogPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId Update-IntuneDeviceConfigurationPolicy ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` @@ -331,8 +294,10 @@ function Set-TargetResource #region Assignments $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity ` - -Targets $assignmentsHash + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentPolicy.Identity ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' #endregion } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') @@ -365,6 +330,7 @@ function Test-TargetResource $ExploitProtectionSettings, [Parameter()] + [ValidateSet('0', '1')] [System.String] $DisallowExploitProtectionOverride, @@ -420,79 +386,85 @@ function Test-TargetResource Write-Verbose -Message "Testing configuration of Endpoint Protection Policy {$DisplayName}" $CurrentValues = Get-TargetResource @PSBoundParameters - - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - - $ValuesToCheck = $PSBoundParameters - $ValuesToCheck.Remove('Identity') | Out-Null + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } + } if ($CurrentValues.Ensure -ne $Ensure) { - Write-Verbose -Message 'The policy was not found' + Write-Verbose -Message "Test-TargetResource returned $false" return $false } - $testResult = $true - if ([Array]$Assignments.count -ne $CurrentValues.Assignments.count) - { - Write-Verbose -Message "Configuration drift:Number of assignments does not match: Source=$([Array]$Assignments.count) Target=$($CurrentValues.Assignments.count)" - $testResult = $false - } - if ($testResult) + + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) { - foreach ($assignment in $CurrentValues.Assignments) + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { - #GroupId Assignment - if (-not [String]::IsNullOrEmpty($assignment.groupId)) + $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source + + if ($key -eq "Assignments") { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.groupId -eq $assignment.groupId } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: groupId {$($assignment.groupId)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $testResult = Compare-M365DSCIntunePolicyAssignment ` + -Source $source ` + -Target $target } - #AllDevices/AllUsers assignment else { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.dataType -eq $assignment.dataType } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: {$($assignment.dataType)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) } if (-not $testResult) { - $testResult = $false break } + $ValuesToCheck.Remove($key) | Out-Null } + } + $ValuesToCheck.Remove('Identity') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + # Ignore line breaks and carriage returns + if ($testResult -and $ValuesToCheck.Contains('ExploitProtectionSettings')) + { + $desired = ($ExploitProtectionSettings -replace "`r","") -replace "`n","" + $current = ($CurrentValues.ExploitProtectionSettings -replace "`r","") -replace "`n","" + $testResult = $desired -eq $current + $ValuesToCheck.Remove('ExploitProtectionSettings') | Out-Null } - $ValuesToCheck.Remove('Assignments') | Out-Null + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" if ($testResult) { - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` -ValuesToCheck $ValuesToCheck.Keys } + Write-Verbose -Message "Test-TargetResource returned $testResult" - Write-Verbose -Message "Test-TargetResource returned $TestResult" - - return $TestResult + return $testResult } function Export-TargetResource @@ -555,8 +527,10 @@ function Export-TargetResource try { $policyTemplateID = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' - [array]$allPolicies = Get-MgBetaDeviceManagementConfigurationPolicy -Filter $Filter -All:$true -ErrorAction Stop - $policies = $allPolicies | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateId } + [array]$policies = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter $Filter ` + -All:$true ` + -ErrorAction Stop | Where-Object -FilterScript { $_.TemplateReference.TemplateId -eq $policyTemplateId } if ($policies.Length -eq 0) { @@ -584,53 +558,44 @@ function Export-TargetResource TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } $Results = Get-TargetResource @params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results - if ($Results.Ensure -eq 'Present') + if ($Results.Assignments) { - $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` - -Results $Results - - if ($Results.Assignments) + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) { - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments - if ($complexTypeStringResult) - { - $Results.Assignments = $complexTypeStringResult - } - else - { - $Results.Remove('Assignments') | Out-Null - } + $Results.Assignments = $complexTypeStringResult } - - $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` - -ConnectionMode $ConnectionMode ` - -ModulePath $PSScriptRoot ` - -Results $Results ` - -Credential $Credential - - if ($Results.Assignments) + else { - $isCIMArray = $false - if ($Results.Assignments.getType().Fullname -like '*[[\]]') - { - $isCIMArray = $true - } - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$isCIMArray + $Results.Remove('Assignments') | Out-Null } + } - $dscContent += $currentDSCBlock - Save-M365DSCPartialExport -Content $currentDSCBlock ` - -FileName $Global:PartialExportFileName + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential - Write-Host $Global:M365DSCEmojiGreenCheckMark - $i++ + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + + Write-Host $Global:M365DSCEmojiGreenCheckMark + $i++ } return $dscContent } @@ -656,390 +621,4 @@ function Export-TargetResource } } -function Get-DeviceManagementConfigurationSettingInstanceValue -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - $Setting - ) - - switch ($setting.AdditionalProperties.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - { - $settingValue = $setting.AdditionalProperties.choiceSettingValue.value.split('_') | Select-Object -Last 1 - - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' - { - $settingValue = $setting.AdditionalProperties.simpleSettingValue.value - } - Default - { - $settingValue = $setting.AdditionalProperties.value - } - } - return $settingValue -} - -function Format-M365DSCParamsToSettingInstance -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $TemplateSetting, - - [Parameter()] - [System.Boolean] - $IncludeSettingInstanceTemplateId = $true, - - [Parameter()] - [System.Boolean] - $IncludeSettingValueTemplateId = $true - ) - - $DSCParams.Remove('Verbose') | Out-Null - $results = @() - - foreach ($param in $DSCParams.Keys) - { - $settingInstance = [ordered]@{} - $settingInstance.add('settingDefinitionId', $templateSetting.settingDefinitionId) - if ($IncludeSettingInstanceTemplateId -and -Not [string]::IsNullOrEmpty($templateSetting.settingInstanceTemplateId)) - { - $settingInstance.add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $templateSetting.settingInstanceTemplateId }) - } - - $odataType = $templateSetting.AdditionalProperties.'@odata.type' - if ([string]::IsNullOrEmpty($odataType)) - { - $odataType = $templateSetting.'@odata.type' - } - $settingInstance.add('@odata.type', $odataType.replace('Template', '')) - - switch ($odataType) - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstanceTemplate' - { - $choiceSettingValue = [ordered]@{} - $choiceSettingValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue') - $choiceSettingValue.add('children', @()) - $settingValueTemplateId = $templateSetting.AdditionalProperties.choiceSettingValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $choiceSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $choiceSettingValue.add('value', "$($templateSetting.settingDefinitionId)`_$($DSCParams.$param)") - $settingInstance.add('choiceSettingValue', $choiceSettingValue) - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstanceTemplate' - { - $simpleSettingCollectionValues = @() - - foreach ($value in $DSCParams.$param) - { - $simpleSettingCollectionValue = @{} - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $settingValueDataType = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.'@odata.type'.replace('Template', '') - $simpleSettingCollectionValue.add('@odata.type', $settingValueDataType) - $simpleSettingCollectionValue.add('value', $value) - $simpleSettingCollectionValues += $simpleSettingCollectionValue - } - $settingInstance.add('simpleSettingCollectionValue', $simpleSettingCollectionValues) - - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstanceTemplate' - { - $simpleSettingValue = @{} - $SettingValueType = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.'@odata.type' - if (-Not [string]::IsNullOrEmpty($SettingValueType)) - { - $simpleSettingValue.add('@odata.type', $SettingValueType.replace('Template', '')) - } - $simpleSettingValue.add('value', $DSCParams.$param) - - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) - } - - $settingInstance.add('simpleSettingValue', $simpleSettingValue) - $results += $settingInstance - } - } - } - - if ($results.count -eq 1) - { - return $results[0] - } - return $results -} - -function Format-M365DSCIntuneSettingCatalogPolicySettings -{ - [CmdletBinding()] - [OutputType([System.Array])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter(Mandatory = 'true')] - [System.String] - $templateReferenceId - ) - - $DSCParams.Remove('Identity') | Out-Null - $DSCParams.Remove('DisplayName') | Out-Null - $DSCParams.Remove('Description') | Out-Null - - $settings = @() - - $templateSettings = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $templateReferenceId - - #write-verbose -Message ( $DSCParams|out-string) - - $simpleSettings = @() - $simpleSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -ne '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - foreach ($templateSetting in $simpleSettings) - { - $setting = @{} - $settingKey = $DSCParams.keys | Where-Object -FilterScript { $templateSetting.settingDefinitionId -like "*$($_)" } - if ((-not [String]::IsNullOrEmpty($settingKey)) -and $DSCParams."$settingKey") - { - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $myFormattedSetting = Format-M365DSCParamsToSettingInstance -DSCParams @{$settingKey = $DSCParams."$settingKey" } ` - -TemplateSetting $templateSetting - - $setting.add('settingInstance', $myFormattedSetting) - $settings += $setting - $DSCParams.Remove($settingKey) | Out-Null - - } - } - - $groupCollectionTemplateSettings = @() - $groupCollectionTemplateSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - - foreach ($groupCollectionTemplateSetting in $groupCollectionTemplateSettings) - { - $setting = @{} - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $settingInstance = [ordered]@{} - $settingInstance.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance') - $settingInstance.add('settingDefinitionId', $groupCollectionTemplateSetting.settingDefinitionId) - $settingInstance.add('settingInstanceTemplateReference', @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference' - 'settingInstanceTemplateId' = $groupCollectionTemplateSetting.settingInstanceTemplateId - }) - $groupSettingCollectionValues = @() - $groupSettingCollectionValueChildren = @() - $groupSettingCollectionValue = @{} - $groupSettingCollectionValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingValue') - - $settingValueTemplateId = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $groupSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - - foreach ($key in $DSCParams.keys) - { - $templateValue = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.children | Where-Object ` - -FilterScript { $_.settingDefinitionId -like "*$key" } - if ($templateValue) - { - $groupSettingCollectionValueChild = Format-M365DSCParamsToSettingInstance ` - -DSCParams @{$key = $DSCParams."$key" } ` - -TemplateSetting $templateValue - - $groupSettingCollectionValueChildren += $groupSettingCollectionValueChild - } - } - - $groupSettingCollectionValue.add('children', $groupSettingCollectionValueChildren) - $groupSettingCollectionValues += $groupSettingCollectionValue - $settingInstance.add('groupSettingCollectionValue', $groupSettingCollectionValues) - - $setting.add('settingInstance', $settingInstance) - - if ($setting.settingInstance.groupSettingCollectionValue.children.count -gt 0) - { - $settings += $setting - } - } - - return $settings -} - -function New-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param ( - - [Parameter(Mandatory = 'true')] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - - ) - try - { - $Uri = 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } - - -} -function Update-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceConfigurationPolicyId, - - [Parameter()] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - - ) - try - { - $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceConfigurationPolicyId" - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'technologies' = $Technologies - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } - - -} - -function Get-M365DSCAdditionalProperties -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param - ( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $Properties - ) - - $results = @{'@odata.type' = '#microsoft.graph.agreement' } - foreach ($property in $properties.Keys) - { - if ($property -ne 'Verbose') - { - $propertyName = $property[0].ToString().ToLower() + $property.Substring(1, $property.Length - 1) - $propertyValue = $properties.$property - $results.Add($propertyName, $propertyValue) - } - } - return $results -} - Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.schema.mof index 5c55dbfd241b27f296e9463946c6da0d667c178f..2f66975c93769233bb59d5ff9163eb0a179642d8 100644 GIT binary patch delta 32 mcmca+am`{wnb72Sylk9_3^_oU&rm*jqJT1^|K^oKYdHbJg9_XL delta 50 zcmca+am`{wnUH)6LncEpLn1>C5au(KGo&(9Fcg5 Date: Thu, 27 Jun 2024 13:59:37 +0200 Subject: [PATCH 036/273] wip --- .../MSFT_EXOEOPProtectionPolicyRule.psm1 | 51 ++- ...MSFT_EXOEOPProtectionPolicyRule.schema.mof | 14 +- .../MSFT_EXOExternalInOutlook.psm1 | 377 ++++++++++++++++++ .../MSFT_EXOExternalInOutlook.schema.mof | 13 + .../MSFT_EXOExternalInOutlook/readme.md | 6 + .../MSFT_EXOExternalInOutlook/settings.json | 33 ++ .../EXOExternalInOutlook/1-Update.ps1 | 26 ++ ...osoft365DSC.EXOExternalInOutlook.Tests.ps1 | 175 ++++++++ 8 files changed, 670 insertions(+), 25 deletions(-) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 index eb8df0a6de..3745816f96 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 @@ -9,15 +9,15 @@ function Get-TargetResource $Comments, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfRecipientDomainIs, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfSentTo, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfSentToMemberOf, [Parameter(Mandatory = $true)] @@ -37,15 +37,15 @@ function Get-TargetResource $Priority, [Parameter()] - [System.Object[]] + [System.String[]] $RecipientDomainIs, [Parameter()] - [System.Object[]] + [System.String[]] $SentTo, [Parameter()] - [System.Object[]] + [System.String[]] $SentToMemberOf, [Parameter()] @@ -143,15 +143,15 @@ function Set-TargetResource $Comments, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfRecipientDomainIs, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfSentTo, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfSentToMemberOf, [Parameter(Mandatory = $true)] @@ -171,15 +171,15 @@ function Set-TargetResource $Priority, [Parameter()] - [System.Object[]] + [System.String[]] $RecipientDomainIs, [Parameter()] - [System.Object[]] + [System.String[]] $SentTo, [Parameter()] - [System.Object[]] + [System.String[]] $SentToMemberOf, [Parameter()] @@ -229,6 +229,7 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') { + #following Microsoft recommendation, we will not create new EOPProtectionPolicyRule, instead we will enable the rule if not already done Write-Verbose -Message "We not create new EOPProtectionPolicyRule, we try to enable the rule if not already done" Enable-EOPProtectionPolicyRule } @@ -238,6 +239,19 @@ function Set-TargetResource $UpdateParameters = ([Hashtable]$BoundParameters).Clone() $UpdateParameters.Remove('Verbose') | Out-Null + $UpdateParameters.Remove('State') | Out-Null + + if($currentInstance.State -ne $State) + { + if($State -eq 'Enabled') + { + Enable-EOPProtectionPolicyRule -Identity $Identity + } + else + { + Disable-EOPProtectionPolicyRule -Identity $Identity + } + } $keys = $UpdateParameters.Keys foreach ($key in $keys) @@ -254,6 +268,7 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { + #following Microsoft recommendation, we will not remove EOPProtectionPolicyRules, instead we will disable the rule if not already done Write-Verbose -Message "We will not remove EOPProtectionPolicyRules, we will disable the rule if not already done" Disable-EOPProtectionPolicyRule -Identity $currentInstance.Identity } @@ -270,15 +285,15 @@ function Test-TargetResource $Comments, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfRecipientDomainIs, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfSentTo, [Parameter()] - [System.Object[]] + [System.String[]] $ExceptIfSentToMemberOf, [Parameter(Mandatory = $true)] @@ -298,15 +313,15 @@ function Test-TargetResource $Priority, [Parameter()] - [System.Object[]] + [System.String[]] $RecipientDomainIs, [Parameter()] - [System.Object[]] + [System.String[]] $SentTo, [Parameter()] - [System.Object[]] + [System.String[]] $SentToMemberOf, [Parameter()] diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof index 1064a9fd77..7ae9f7da12 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.schema.mof @@ -2,16 +2,16 @@ class MSFT_EXOEOPProtectionPolicyRule : OMI_BaseResource { [Write, Description("The Comments parameter specifies informative comments for the rule, such as what the rule is used for or how it has changed over time. The length of the comment can't exceed 1024 characters.")] String Comments; - [Write, Description("The ExceptIfRecipientDomainIs parameter specifies an exception that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.")] Object[] ExceptIfRecipientDomainIs; - [Write, Description("The ExceptIfSentTo parameter specifies an exception that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] Object[] ExceptIfSentTo; - [Write, Description("The ExceptIfSentToMemberOf parameter specifies an exception that looks for messages sent to members of groups. You can use any value that uniquely identifies the group.")] Object[] ExceptIfSentToMemberOf; - [Key, Description("The Identity parameter specifies the rule that you want to view. You can use any value that uniquely identifies the rule. ")] Object Identity; + [Write, Description("The ExceptIfRecipientDomainIs parameter specifies an exception that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.")] String ExceptIfRecipientDomainIs[]; + [Write, Description("The ExceptIfSentTo parameter specifies an exception that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] String ExceptIfSentTo[]; + [Write, Description("The ExceptIfSentToMemberOf parameter specifies an exception that looks for messages sent to members of groups. You can use any value that uniquely identifies the group.")] String ExceptIfSentToMemberOf[]; + [Key, Description("The Identity parameter specifies the rule that you want to view. You can use any value that uniquely identifies the rule. ")] String Identity; [Write, Description("This parameter defin if the rule is enabled or disabled")] String State; [Write, Description("The Name parameter specifies a unique name for the rule. The maximum length is 64 characters.")] String Name; [Write, Description("The Priority parameter specifies a priority value for the rule that determines the order of rule processing. A lower integer value indicates a higher priority, the value 0 is the highest priority, and rules can't have the same priority value.")] UInt32 Priority; - [Write, Description("The RecipientDomainIs parameter specifies a condition that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.")] Object[] RecipientDomainIs; - [Write, Description("The SentTo parameter specifies a condition that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] Object[] SentTo; - [Write, Description("The SentToMemberOf parameter specifies a condition that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You can use any value that uniquely identifies the group.")] Object[] SentToMemberOf; + [Write, Description("The RecipientDomainIs parameter specifies a condition that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas.")] String RecipientDomainIs[]; + [Write, Description("The SentTo parameter specifies a condition that looks for recipients in messages. You can use any value that uniquely identifies the recipient.")] String SentTo[]; + [Write, Description("The SentToMemberOf parameter specifies a condition that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You can use any value that uniquely identifies the group.")] String SentToMemberOf[]; [Write, Description("Present ensures the instance exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; [Write, Description("Credentials of the workload's Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 new file mode 100644 index 0000000000..4574834b02 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 @@ -0,0 +1,377 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $Identity, + + [Parameter] + [System.Boolean] + $Enabled, + + [Parameter()] + [System.String[]] + $AllowList, + + [Parameter()] + [ValidateSet('Present', 'Absent')] + [System.String] + $Ensure, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret + ) + + New-M365DSCConnection -Workload 'ExchangeOnline' ` + -InboundParameters $PSBoundParameters | Out-Null + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + try + { + $instance = Get-ExternalInOutlook + if ($null -eq $instance) + { + return $nullResult + } + + Write-Verbose -Message "Found the settings for ExternalInOutlook: $($instance.Identity)" + $results = @{ + Identity = $instance.Identity + Enabled = [String]$instance.Enabled + AllowList = $instance.AllowList + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + ApplicationSecret = $ApplicationSecret + } + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $Identity, + + [Parameter] + [System.Boolean] + $Enabled, + + [Parameter()] + [System.String[]] + $AllowList, + + [Parameter()] + [ValidateSet('Present', 'Absent')] + [System.String] + $Ensure, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret + ) + + New-M365DSCConnection -Workload 'ExchangeOnline' ` + -InboundParameters $PSBoundParameters | Out-Null + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentInstance = Get-TargetResource @PSBoundParameters + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + + if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') + { + Write-Verbose -Message "The setting cannot be cvreated, it can only be enabled or disabled." + } + elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating the settings for ExternalInOutlook." + + $UpdateParameters = ([Hashtable]$BoundParameters).Clone() + $UpdateParameters.Remove('Verbose') | Out-Null + + $keys = $UpdateParameters.Keys + foreach ($key in $keys) + { + if ($null -ne $UpdateParameters.$key -and $UpdateParameters.$key.GetType().Name -like '*cimInstance*') + { + $keyValue = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $UpdateParameters.$key + $UpdateParameters.Remove($key) | Out-Null + $UpdateParameters.Add($keyName, $keyValue) + } + } + + if($null -ne $UpdateParameters.AllowList) + { + $UpdateParameters.AllowList = $UpdateParameters.AllowList -join ',' + } + + Set-ExternalInOutlook @UpdateParameters | Out-Null + } + elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "The setting cannot be removed, it can only be enabled or disabled." + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $Identity, + + [Parameter] + [System.Boolean] + $Enabled, + + [Parameter()] + [System.String[]] + $AllowList, + + [Parameter()] + [ValidateSet('Present', 'Absent')] + [System.String] + $Ensure, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + Write-Verbose -Message "Testing ExternalInOutlook {$Identity}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + + $ValuesToCheck = $PSBoundParameters + + $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + + Write-Verbose -Message "Test-TargetResource returned $TestResult" + + return $TestResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + [array]$getValue = Get-ExternalInOutlook + + $i = 1 + $dscContent = '' + if ($getValue.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $getValue) + { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + + Write-Host " |---[$i/$($getValue.Count)] $($config.Identity)" -NoNewline + $params = @{ + Identity = $config.Identity + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + ApplicationSecret = $ApplicationSecret + + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.schema.mof new file mode 100644 index 0000000000..fc3ca638b4 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.schema.mof @@ -0,0 +1,13 @@ +[ClassVersion("1.0.0.0"), FriendlyName("EXOExternalInOutlook")] +class MSFT_EXOExternalInOutlook : OMI_BaseResource +{ + [Key, Description("OrganisationIDParameter, not needed for cmdlet Functionality, use 'ExternalinOutlook' to use the same configuration for multiple Tenants")] string Identity; + [Write, Description("The Enabled parameter enables or disables external sender identification in supported versions of Outlook. Valid values are:$true: External sender identification in Outlook is enabled. An External icon is added in the area of the subject line of messages from external senders. To exempt specific senders or sender domains from this identification, use the AllowList parameter.$false: External sender identification in Outlook is disabled.")] Boolean Enabled; + [Write, Description("The AllowList parameter specifies exceptions to external sender identification in supported versions of Outlook. Messages received from the specified senders or senders in the specified domains don't receive native External sender identification. The allow list uses the 5322.From address (also known as the From address or P2 sender). Valid values are an individual domain (contoso.com), a domain and all subdomains (*.contoso.com) or email addresses (admin@contoso.com).")] String AllowList[]; + [Write, Description("Present ensures the instance exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Credentials of the workload's Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/readme.md new file mode 100644 index 0000000000..aea0b28e3d --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/readme.md @@ -0,0 +1,6 @@ + +# EXOExternalInOutlook + +## Description + +This resource will use Set-ExternalInOutlook cmdlet to modify the configuration of external sender identification that's available in Outlook, Outlook for Mac, Outlook on the web, and Outlook for iOS and Android. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/settings.json new file mode 100644 index 0000000000..7e639c9df4 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/settings.json @@ -0,0 +1,33 @@ +{ + "resourceName": "EXOExternalInOutlook", + "description": "This resource configures an .", + "roles": { + "read": [ + "Global Reader" + ], + "update": [ + "Exchange Administrator" + ] + }, + "permissions": { + "graph": { + "delegated": { + "read": [], + "update": [] + }, + "application": { + "read": [], + "update": [] + } + }, + "exchange": { + "requiredroles": [ + "O365SupportViewConfig", + "OrganizationConfiguration", + "ViewOnlyConfiguration" + ], + "requiredrolegroups": [] + } + } + +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 new file mode 100644 index 0000000000..850826472c --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 @@ -0,0 +1,26 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + $Domain = $Credscredential.Username.Split('@')[1] + node localhost + { + EXOExternalInOutlook "EXOExternalInOutlook" + { + AllowList = @("mobile01@contoso.onmicrosoft.com","*contoso.onmicrosoft.com","contoso.com"); + Enabled = $False; + Ensure = "Present"; + Credential = $Credscredential + } + } +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 new file mode 100644 index 0000000000..891cb8e0ae --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 @@ -0,0 +1,175 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource "EXOExternalInOutlook" -GenericStubModule $GenericStubPath +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + BeforeAll { + + $secpasswd = ConvertTo-SecureString (New-Guid | Out-String) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName Get-PSSession -MockWith { + } + + Mock -CommandName Remove-PSSession -MockWith { + } + + Mock -CommandName Set-ExternalInOutlook -MockWith { + } + + Mock -CommandName New-ExternalInOutlook -MockWith { + } + + Mock -CommandName Remove-ExternalInOutlook -MockWith { + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return "Credentials" + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + } + # Test contexts + Context -Name "The EXOExternalInOutlook should exist but it DOES NOT" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = "Present" + Credential = $Credential; + } + + Mock -CommandName Get-ExternalInOutlook -MockWith { + return $null + } + } + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + It 'Should Create the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName New-ExternalInOutlook -Exactly 1 + } + } + + Context -Name "The EXOExternalInOutlook exists but it SHOULD NOT" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Absent' + Credential = $Credential; + } + + Mock -CommandName Get-ExternalInOutlook -MockWith { + return @{ + + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should Remove the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-ExternalInOutlook -Exactly 1 + } + } + Context -Name "The EXOExternalInOutlook Exists and Values are already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-ExternalInOutlook -MockWith { + return @{ + + } + } + } + + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name "The EXOExternalInOutlook exists and values are NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-ExternalInOutlook -MockWith { + return @{ + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should call the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Set-ExternalInOutlook -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + + Mock -CommandName Get-ExternalInOutlook -MockWith { + return @{ + + } + } + } + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope From dbf9a3d6c573394a2f5210c0a2da2edfbaf02be6 Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Thu, 27 Jun 2024 15:27:16 +0200 Subject: [PATCH 037/273] wip --- .../MSFT_EXOEOPProtectionPolicyRule.psm1 | 3 +- .../MSFT_EXOExternalInOutlook.psm1 | 39 +++-- .../EXOExternalInOutlook/1-Update.ps1 | 2 +- ...65DSC.EXOEOPProtectionPolicyRule.Tests.ps1 | 134 +++++++----------- Tests/Unit/Stubs/Generic.psm1 | 48 +++++++ 5 files changed, 130 insertions(+), 96 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 index 3745816f96..a020b850a7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 @@ -230,8 +230,7 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') { #following Microsoft recommendation, we will not create new EOPProtectionPolicyRule, instead we will enable the rule if not already done - Write-Verbose -Message "We not create new EOPProtectionPolicyRule, we try to enable the rule if not already done" - Enable-EOPProtectionPolicyRule + Write-Verbose -Message "We not create new EOPProtectionPolicyRule if it is not present" } elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 index 4574834b02..0637347e06 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 @@ -8,7 +8,7 @@ function Get-TargetResource [System.String] $Identity, - [Parameter] + [Parameter()] [System.Boolean] $Enabled, @@ -70,7 +70,7 @@ function Get-TargetResource Write-Verbose -Message "Found the settings for ExternalInOutlook: $($instance.Identity)" $results = @{ Identity = $instance.Identity - Enabled = [String]$instance.Enabled + Enabled = $instance.Enabled AllowList = $instance.AllowList Ensure = 'Present' Credential = $Credential @@ -102,7 +102,7 @@ function Set-TargetResource [System.String] $Identity, - [Parameter] + [Parameter()] [System.Boolean] $Enabled, @@ -200,7 +200,7 @@ function Test-TargetResource [System.String] $Identity, - [Parameter] + [Parameter()] [System.Boolean] $Enabled, @@ -238,30 +238,47 @@ function Test-TargetResource Confirm-M365DSCDependencies #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') $CommandName = $MyInvocation.MyCommand $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` -CommandName $CommandName ` -Parameters $PSBoundParameters Add-M365DSCTelemetryEvent -Data $data #endregion - Write-Verbose -Message "Testing ExternalInOutlook {$Identity}" + + Write-Verbose -Message "Testing configuration of {$Identity}" $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone() + $ValuesToCheck.Remove('Identity') | Out-Null + + if ($CurrentValues.Ensure -eq 'Absent') + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" - $ValuesToCheck = $PSBoundParameters + #Convert any DateTime to String + foreach ($key in $ValuesToCheck.Keys) + { + if (($null -ne $CurrentValues[$key]) ` + -and ($CurrentValues[$key].GetType().Name -eq 'DateTime')) + { + $CurrentValues[$key] = $CurrentValues[$key].toString() + } + } - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` -ValuesToCheck $ValuesToCheck.Keys - Write-Verbose -Message "Test-TargetResource returned $TestResult" + Write-Verbose -Message "Test-TargetResource returned $testResult" - return $TestResult + return $testResult } function Export-TargetResource diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 index 850826472c..e8ea48e063 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 @@ -12,11 +12,11 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOExternalInOutlook "EXOExternalInOutlook" { + Identity = "ExternalInOutlook"; AllowList = @("mobile01@contoso.onmicrosoft.com","*contoso.onmicrosoft.com","contoso.com"); Enabled = $False; Ensure = "Present"; diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 index 1c33037172..371a50866e 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 @@ -33,71 +33,42 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Remove-PSSession -MockWith { } - Mock -CommandName Set-EOPProtectionPolicyRule -MockWith { - } - - Mock -CommandName New-EOPProtectionPolicyRule -MockWith { - } - - Mock -CommandName Remove-EOPProtectionPolicyRule -MockWith { - } - Mock -CommandName New-M365DSCConnection -MockWith { return "Credentials" } - # Mock Write-Host to hide output during the tests Mock -CommandName Write-Host -MockWith { } $Script:exportedInstances =$null - $Script:ExportMode = $false + $Script:ExportMode = $false } # Test contexts - Context -Name "The EXOEOPProtectionPolicyRule should exist but it DOES NOT" -Fixture { - BeforeAll { - $testParams = @{ - Ensure = "Present" - Credential = $Credential; - } - - Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { - return $null - } - } - It 'Should return Values from the Get method' { - (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' - } - It 'Should return false from the Test method' { - Test-TargetResource @testParams | Should -Be $false - } - It 'Should Create the group from the Set method' { - Set-TargetResource @testParams - Should -Invoke -CommandName New-EOPProtectionPolicyRule -Exactly 1 - } - } Context -Name "The EXOEOPProtectionPolicyRule exists but it SHOULD NOT" -Fixture { BeforeAll { $testParams = @{ - Ensure = 'Absent' - Credential = $Credential; + Ensure = 'Absent' + Credential = $Credential; + ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com"); + Identity = "Strict Preset Security Policy"; + Name = "Strict Preset Security Policy"; + Priority = 0; + State = "Disabled"; } Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { return @{ - Identity = - SentTo = - SentToMemberOf = - ExceptIfSentTo = - RecipientDomainIs = - Name = "FakeStringValue" - ExceptIfRecipientDomainIs = + Identity = "Strict Preset Security Policy" + Name = "Strict Preset Security Policy" + ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com") Comments = "FakeStringValue" - ExceptIfSentToMemberOf = - Priority = 3 - + Priority = 0 } } + + Mock -CommandName Disable-EOPProtectionPolicyRule -MockWith { + return $null + } } It 'Should return Values from the Get method' { @@ -110,29 +81,29 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should Remove the group from the Set method' { Set-TargetResource @testParams - Should -Invoke -CommandName Remove-EOPProtectionPolicyRule -Exactly 1 + Should -Invoke -CommandName Disable-EOPProtectionPolicyRule -Exactly 1 } } Context -Name "The EXOEOPProtectionPolicyRule Exists and Values are already in the desired state" -Fixture { BeforeAll { $testParams = @{ - Ensure = 'Present' - Credential = $Credential; + Ensure = 'Present' + Credential = $Credential; + ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com"); + Identity = "Strict Preset Security Policy"; + Name = "Strict Preset Security Policy"; + Priority = 0; + State = "Disabled"; } Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { return @{ - Identity = - SentTo = - SentToMemberOf = - ExceptIfSentTo = - RecipientDomainIs = - Name = "FakeStringValue" - ExceptIfRecipientDomainIs = + Identity = "Strict Preset Security Policy" + Name = "Strict Preset Security Policy" + ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com") Comments = "FakeStringValue" - ExceptIfSentToMemberOf = - Priority = 3 - + Priority = 0 + State = "Disabled"; } } } @@ -146,24 +117,29 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name "The EXOEOPProtectionPolicyRule exists and values are NOT in the desired state" -Fixture { BeforeAll { $testParams = @{ - Ensure = 'Present' - Credential = $Credential; + Ensure = 'Present' + Credential = $Credential; + ExceptIfRecipientDomainIs = @("contoso1.onmicrosoft.com"); + Identity = "Strict Preset Security Policy 2"; + Name = "Strict Preset Security Policy"; + Priority = 0; + State = "Disabled"; } Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { return @{ - Identity = - SentTo = - SentToMemberOf = - ExceptIfSentTo = - RecipientDomainIs = - Name = "FakeStringValueDrift #Drift" - ExceptIfRecipientDomainIs = - Comments = "FakeStringValueDrift #Drift" - ExceptIfSentToMemberOf = - Priority = 2 + Identity = "Strict Preset Security Policy" + Name = "Strict Preset Security Policy" + ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com") + Comments = "FakeStringValue" + Priority = 0 + State = "Disabled" } } + + Mock -CommandName Set-EOPProtectionPolicyRule -MockWith { + return $null + } } It 'Should return Values from the Get method' { @@ -190,18 +166,12 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Get-EOPProtectionPolicyRule -MockWith { return @{ - Identity = - SentTo = - SentToMemberOf = - ExceptIfSentTo = - RecipientDomainIs = - Name = "FakeStringValue" - ExceptIfRecipientDomainIs = - Comments = "FakeStringValue" - ExceptIfSentToMemberOf = - Priority = 3 - - } + Identity = "Strict Preset Security Policy" + Name = "Strict Preset Security Policy" + ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com") + Comments = "FakeStringValue" + Priority = 0 + } } } It 'Should Reverse Engineer resource from the Export method' { diff --git a/Tests/Unit/Stubs/Generic.psm1 b/Tests/Unit/Stubs/Generic.psm1 index 6f3714db41..1a5a7ead8c 100644 --- a/Tests/Unit/Stubs/Generic.psm1 +++ b/Tests/Unit/Stubs/Generic.psm1 @@ -1226,3 +1226,51 @@ function Update-MgPlannerBucket $BucketId ) } + +function Get-EOPProtectionPolicyRule +{ + [CmdletBinding()] + Param( + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String] + $State + ) +} + +function Set-EOPProtectionPolicyRule +{ + [CmdletBinding()] + Param( + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String] + $State + ) +} + +function Enable-EOPProtectionPolicyRule +{ + [CmdletBinding()] + Param( + [Parameter()] + [System.String] + $Identity + ) +} + +function Disable-EOPProtectionPolicyRule +{ + [CmdletBinding()] + Param( + [Parameter()] + [System.String] + $Identity + ) +} From 4467a3abcec1d7773a6d78555b71be07d27363bc Mon Sep 17 00:00:00 2001 From: mario Date: Thu, 27 Jun 2024 16:50:16 +0200 Subject: [PATCH 038/273] update key size --- CHANGELOG.md | 7 ++++++- .../MSFT_EXODkimSigningConfig.psm1 | 14 +++++++------- .../MSFT_EXODkimSigningConfig.schema.mof | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..08b879d593 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXODkimSigningConfig + * Add support for 2048 key size + FIXES [#4805](https://github.com/microsoft/Microsoft365DSC/issues/4805) # 1.24.626.1 * AADGroup @@ -19,7 +24,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 index 9e5fc46c6d..cfeb60625e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 @@ -32,9 +32,9 @@ function Get-TargetResource $HeaderCanonicalization = 'Relaxed', [Parameter()] - [ValidateSet(1024)] + [ValidateSet(1024, 2048)] [uint16] - $KeySize = 1024, + $KeySize, [Parameter()] [System.Management.Automation.PSCredential] @@ -126,7 +126,7 @@ function Get-TargetResource BodyCanonicalization = $DkimSigningConfig.BodyCanonicalization Enabled = $DkimSigningConfig.Enabled HeaderCanonicalization = $DkimSigningConfig.HeaderCanonicalization - KeySize = 1024 + KeySize = $DkimSigningConfig.Selector1KeySize Credential = $Credential ApplicationId = $ApplicationId CertificateThumbprint = $CertificateThumbprint @@ -176,9 +176,9 @@ function Set-TargetResource $HeaderCanonicalization = 'Relaxed', [Parameter()] - [ValidateSet(1024)] + [ValidateSet(1024, 2048)] [uint16] - $KeySize = 1024, + $KeySize, [Parameter()] [System.Management.Automation.PSCredential] @@ -304,9 +304,9 @@ function Test-TargetResource $HeaderCanonicalization = 'Relaxed', [Parameter()] - [ValidateSet(1024)] + [ValidateSet(1024, 2048)] [uint16] - $KeySize = 1024, + $KeySize, [Parameter()] [System.Management.Automation.PSCredential] diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.schema.mof index 4bc0873261..d95b9643e6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.schema.mof @@ -5,7 +5,7 @@ class MSFT_EXODkimSigningConfig : OMI_BaseResource [Write, Description("The AdminDisplayName parameter specifies a description for the policy.")] String AdminDisplayName; [Write, Description("The BodyCanonicalization parameter specifies the canonicalization algorithm that's used to create and verify the message body part of the DKIM signature. This value effectively controls the sensitivity of DKIM to changes to the message body in transit. Valid values are 'Simple' or 'Relaxed'. 'Relaxed' is the default."), ValueMap{"Simple","Relaxed"}, Values{"Simple","Relaxed"}] String BodyCanonicalization; [Write, Description("The HeaderCanonicalization parameter specifies the canonicalization algorithm that's used to create and verify the message header part of the DKIM signature. This value effectively controls the sensitivity of DKIM to changes to the message headers in transit. Valid values are 'Simple' or 'Relaxed'. 'Relaxed' is the default."), ValueMap{"Simple","Relaxed"}, Values{"Simple","Relaxed"}] String HeaderCanonicalization; - [Write, Description("The KeySize parameter specifies the size in bits of the public key that's used in the DKIM signing policy. The only available value is 1024."),ValueMap{"1024"}, Values{"1024"}] Uint16 KeySize; + [Write, Description("The KeySize parameter specifies the size in bits of the public key that's used in the DKIM signing policy. Valid values are 1024 and 2048"),ValueMap{"1024","2048"}, Values{"1024","2048"}] Uint16 KeySize; [Write, Description("The Enabled parameter specifies whether the DKIM Signing Configuration is enabled or disabled. Default is $true.")] Boolean Enabled; [Write, Description("Specifies if this Client Access Rule should exist."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure; [Write, Description("Credentials of the Exchange Global Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; From 09dac74156acb9d4e50c06a447b24a5977cdf963 Mon Sep 17 00:00:00 2001 From: mario Date: Thu, 27 Jun 2024 22:47:25 +0200 Subject: [PATCH 039/273] fix unit tests --- .../Microsoft365DSC.EXODkimSigningConfig.Tests.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXODkimSigningConfig.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXODkimSigningConfig.Tests.ps1 index 17feefdf6d..6b2eb4c74a 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXODkimSigningConfig.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXODkimSigningConfig.Tests.ps1 @@ -104,7 +104,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { BodyCanonicalization = 'Relaxed' Enabled = $false HeaderCanonicalization = 'Relaxed' - KeySize = 1024 + Selector1KeySize = 1024 } } } @@ -136,7 +136,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { BodyCanonicalization = 'Simple' Enabled = $false HeaderCanonicalization = 'Simple' - KeySize = 1024 + Selector1KeySize = 1024 } } } From c3a58410ecd0f379d7ea90a55e69488a038f94e8 Mon Sep 17 00:00:00 2001 From: mario Date: Thu, 27 Jun 2024 22:52:09 +0200 Subject: [PATCH 040/273] Export unlimited number of groups --- CHANGELOG.md | 8 +++++++- .../MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..e51d0584c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOGroupSettings + * Export unlimited number of groups + FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) + # 1.24.626.1 * AADGroup @@ -19,7 +25,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 index 40dcbe242d..3c23ad0ce7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 @@ -997,7 +997,7 @@ function Export-TargetResource try { $Script:ExportMode = $true - [array] $Script:exportedInstances = Get-UnifiedGroup -ErrorAction SilentlyContinue + [array] $Script:exportedInstances = Get-UnifiedGroup -ResultSize Unlimited -ErrorAction SilentlyContinue $i = 1 if ($Script:exportedInstances.Length -eq 0) From 4aaf9216718db59ba05b9c01e26292daf80a593e Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Fri, 28 Jun 2024 11:36:27 +0200 Subject: [PATCH 041/273] Add pester tests --- .../MSFT_EXOEOPProtectionPolicyRule.psm1 | 23 +++-- ...65DSC.EXOEOPProtectionPolicyRule.Tests.ps1 | 9 +- ...osoft365DSC.EXOExternalInOutlook.Tests.ps1 | 73 +++------------- Tests/Unit/Stubs/Microsoft365.psm1 | 83 +++++++++++++++++++ 4 files changed, 112 insertions(+), 76 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 index a020b850a7..6681eb455d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 @@ -237,9 +237,19 @@ function Set-TargetResource Write-Verbose -Message "Updating {$Identity}" $UpdateParameters = ([Hashtable]$BoundParameters).Clone() - $UpdateParameters.Remove('Verbose') | Out-Null $UpdateParameters.Remove('State') | Out-Null + $keys = $UpdateParameters.Keys + foreach ($key in $keys) + { + if ($null -ne $UpdateParameters.$key -and $UpdateParameters.$key.GetType().Name -like '*cimInstance*') + { + $keyValue = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $UpdateParameters.$key + $UpdateParameters.Remove($key) | Out-Null + $UpdateParameters.Add($keyName, $keyValue) + } + } + if($currentInstance.State -ne $State) { if($State -eq 'Enabled') @@ -252,17 +262,6 @@ function Set-TargetResource } } - $keys = $UpdateParameters.Keys - foreach ($key in $keys) - { - if ($null -ne $UpdateParameters.$key -and $UpdateParameters.$key.GetType().Name -like '*cimInstance*') - { - $keyValue = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $UpdateParameters.$key - $UpdateParameters.Remove($key) | Out-Null - $UpdateParameters.Add($keyName, $keyValue) - } - } - Set-EOPProtectionPolicyRule @UpdateParameters | Out-Null } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 index 371a50866e..0c2b3e53a5 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 @@ -36,6 +36,11 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName New-M365DSCConnection -MockWith { return "Credentials" } + + Mock -CommandName Set-EOPProtectionPolicyRule -MockWith { + return $null + } + # Mock Write-Host to hide output during the tests Mock -CommandName Write-Host -MockWith { } @@ -136,10 +141,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { State = "Disabled" } } - - Mock -CommandName Set-EOPProtectionPolicyRule -MockWith { - return $null - } } It 'Should return Values from the Get method' { diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 index 891cb8e0ae..1904003ab7 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOExternalInOutlook.Tests.ps1 @@ -36,12 +36,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Set-ExternalInOutlook -MockWith { } - Mock -CommandName New-ExternalInOutlook -MockWith { - } - - Mock -CommandName Remove-ExternalInOutlook -MockWith { - } - Mock -CommandName New-M365DSCConnection -MockWith { return "Credentials" } @@ -50,69 +44,22 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Write-Host -MockWith { } $Script:exportedInstances =$null - $Script:ExportMode = $false + $Script:ExportMode = $false } # Test contexts - Context -Name "The EXOExternalInOutlook should exist but it DOES NOT" -Fixture { - BeforeAll { - $testParams = @{ - Ensure = "Present" - Credential = $Credential; - } - - Mock -CommandName Get-ExternalInOutlook -MockWith { - return $null - } - } - It 'Should return Values from the Get method' { - (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' - } - It 'Should return false from the Test method' { - Test-TargetResource @testParams | Should -Be $false - } - It 'Should Create the group from the Set method' { - Set-TargetResource @testParams - Should -Invoke -CommandName New-ExternalInOutlook -Exactly 1 - } - } - - Context -Name "The EXOExternalInOutlook exists but it SHOULD NOT" -Fixture { - BeforeAll { - $testParams = @{ - Ensure = 'Absent' - Credential = $Credential; - } - - Mock -CommandName Get-ExternalInOutlook -MockWith { - return @{ - - } - } - } - It 'Should return Values from the Get method' { - (Get-TargetResource @testParams).Ensure | Should -Be 'Present' - } - - It 'Should return true from the Test method' { - Test-TargetResource @testParams | Should -Be $false - } - - It 'Should Remove the group from the Set method' { - Set-TargetResource @testParams - Should -Invoke -CommandName Remove-ExternalInOutlook -Exactly 1 - } - } Context -Name "The EXOExternalInOutlook Exists and Values are already in the desired state" -Fixture { BeforeAll { $testParams = @{ - Ensure = 'Present' + identity = "ExternalInOutlook" + AllowList = @("test@contoso.com") + Ensure = 'Present' Credential = $Credential; } Mock -CommandName Get-ExternalInOutlook -MockWith { return @{ - + AllowList = @("test@contoso.com") } } } @@ -126,12 +73,16 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name "The EXOExternalInOutlook exists and values are NOT in the desired state" -Fixture { BeforeAll { $testParams = @{ - Ensure = 'Present' + identity = "ExternalInOutlook" + AllowList = @("test@contoso.com","test2@contoso.com") + Ensure = 'Present' Credential = $Credential; } Mock -CommandName Get-ExternalInOutlook -MockWith { return @{ + identity = "ExternalInOutlook" + AllowList = @("test@contoso.com") } } } @@ -154,13 +105,15 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { BeforeAll { $Global:CurrentModeIsExport = $true $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ Credential = $Credential } Mock -CommandName Get-ExternalInOutlook -MockWith { return @{ - + identity = "ExternalInOutlook" + AllowList = @("test@contoso.com","test2@contoso.com") } } } diff --git a/Tests/Unit/Stubs/Microsoft365.psm1 b/Tests/Unit/Stubs/Microsoft365.psm1 index e915d786e8..272d7224d3 100644 --- a/Tests/Unit/Stubs/Microsoft365.psm1 +++ b/Tests/Unit/Stubs/Microsoft365.psm1 @@ -84608,6 +84608,89 @@ function Get-MgBetaDeviceAppManagementMobileAppConfigurationAssignment $CountVariable ) } +function Set-EOPProtectionPolicyRule +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String] + $Comments, + + [Parameter()] + [System.String[]] + $ExceptIfRecipientDomainIs, + + [Parameter()] + [System.String[]] + $ExceptIfSentTo, + + [Parameter()] + [System.String[]] + $ExceptIfSentToMemberOf, + + [Parameter()] + [System.String] + $Name, + + [Parameter()] + [System.Int32] + $Priority, + + [Parameter()] + [System.String[]] + $RecipientDomainIs, + + [Parameter()] + [system.String[]] + $SentTo, + + [Parameter()] + [System.String[]] + $SentToMemberOf + ) +} + +function Get-ExternalInOutlook +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String[]] + $AllowList, + + [Parameter()] + [System.Boolean] + $Enabled + ) +} +function Set-ExternalInOutlook +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String[]] + $AllowList, + + [Parameter()] + [System.Boolean] + $Enabled + ) +} #endregion From 9ceb081a1af08aba1c8b3f9bd52b9b0768cc9b8d Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Fri, 28 Jun 2024 13:20:51 +0200 Subject: [PATCH 042/273] wip --- .../MSFT_EXOEOPProtectionPolicyRule.psm1 | 5 ++--- .../MSFT_EXOExternalInOutlook.psm1 | 7 +------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 index 6681eb455d..f5852c72a4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 @@ -266,9 +266,8 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - #following Microsoft recommendation, we will not remove EOPProtectionPolicyRules, instead we will disable the rule if not already done - Write-Verbose -Message "We will not remove EOPProtectionPolicyRules, we will disable the rule if not already done" - Disable-EOPProtectionPolicyRule -Identity $currentInstance.Identity + #following Microsoft recommendation, we will not remove EOPProtectionPolicyRules. + Write-Verbose -Message "We will not remove EOPProtectionPolicyRules" } } diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 index 0637347e06..d9ce69b675 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOExternalInOutlook/MSFT_EXOExternalInOutlook.psm1 @@ -157,7 +157,7 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') { - Write-Verbose -Message "The setting cannot be cvreated, it can only be enabled or disabled." + Write-Verbose -Message "The setting cannot be created, it can only be enabled or disabled." } elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') { @@ -177,11 +177,6 @@ function Set-TargetResource } } - if($null -ne $UpdateParameters.AllowList) - { - $UpdateParameters.AllowList = $UpdateParameters.AllowList -join ',' - } - Set-ExternalInOutlook @UpdateParameters | Out-Null } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') From 88bcf90c20a28c0aa580e4ff5f6e16e817d67b25 Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Fri, 28 Jun 2024 16:15:53 +0200 Subject: [PATCH 043/273] fix pester testing --- .../MSFT_EXOEOPProtectionPolicyRule.psm1 | 2 +- ...soft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 | 3 ++- Tests/Unit/Stubs/Generic.psm1 | 14 -------------- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 index f5852c72a4..2ae3854191 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEOPProtectionPolicyRule/MSFT_EXOEOPProtectionPolicyRule.psm1 @@ -262,7 +262,7 @@ function Set-TargetResource } } - Set-EOPProtectionPolicyRule @UpdateParameters | Out-Null + Set-EOPProtectionPolicyRule @UpdateParameters } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 index 0c2b3e53a5..f21e9a56ab 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.EXOEOPProtectionPolicyRule.Tests.ps1 @@ -52,7 +52,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name "The EXOEOPProtectionPolicyRule exists but it SHOULD NOT" -Fixture { BeforeAll { $testParams = @{ - Ensure = 'Absent' + Ensure = 'Present' Credential = $Credential; ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com"); Identity = "Strict Preset Security Policy"; @@ -68,6 +68,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { ExceptIfRecipientDomainIs = @("contoso.onmicrosoft.com") Comments = "FakeStringValue" Priority = 0 + State = "Enabled"; } } diff --git a/Tests/Unit/Stubs/Generic.psm1 b/Tests/Unit/Stubs/Generic.psm1 index 1a5a7ead8c..a18029efcf 100644 --- a/Tests/Unit/Stubs/Generic.psm1 +++ b/Tests/Unit/Stubs/Generic.psm1 @@ -1241,20 +1241,6 @@ function Get-EOPProtectionPolicyRule ) } -function Set-EOPProtectionPolicyRule -{ - [CmdletBinding()] - Param( - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $State - ) -} - function Enable-EOPProtectionPolicyRule { [CmdletBinding()] From 058ce322906508ceaaf2ec8ba5ca258183f47988 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 28 Jun 2024 14:52:28 -0400 Subject: [PATCH 044/273] Initial checkin --- .../2024/dsc-error-flow/dsc-error-flow.md | 812 ++++++++++++++++++ .../docs/blog/2024/dsc-error-flow/image-1.png | Bin 0 -> 30637 bytes .../blog/2024/dsc-error-flow/image-10.png | Bin 0 -> 30066 bytes .../blog/2024/dsc-error-flow/image-11.png | Bin 0 -> 153838 bytes .../blog/2024/dsc-error-flow/image-12.png | Bin 0 -> 25760 bytes .../blog/2024/dsc-error-flow/image-13.png | Bin 0 -> 257472 bytes .../blog/2024/dsc-error-flow/image-14.png | Bin 0 -> 35778 bytes .../blog/2024/dsc-error-flow/image-15.png | Bin 0 -> 180270 bytes .../blog/2024/dsc-error-flow/image-16.png | Bin 0 -> 31543 bytes .../blog/2024/dsc-error-flow/image-17.png | Bin 0 -> 14716 bytes .../blog/2024/dsc-error-flow/image-18.png | Bin 0 -> 14716 bytes .../blog/2024/dsc-error-flow/image-19.png | Bin 0 -> 14716 bytes .../docs/blog/2024/dsc-error-flow/image-2.png | Bin 0 -> 153465 bytes .../blog/2024/dsc-error-flow/image-20.png | Bin 0 -> 14503 bytes .../blog/2024/dsc-error-flow/image-21.png | Bin 0 -> 35064 bytes .../blog/2024/dsc-error-flow/image-22.png | Bin 0 -> 285134 bytes .../blog/2024/dsc-error-flow/image-23.png | Bin 0 -> 39482 bytes .../blog/2024/dsc-error-flow/image-24.png | Bin 0 -> 206047 bytes .../blog/2024/dsc-error-flow/image-25.png | Bin 0 -> 36306 bytes .../blog/2024/dsc-error-flow/image-26.png | Bin 0 -> 30073 bytes .../blog/2024/dsc-error-flow/image-27.png | Bin 0 -> 315143 bytes .../blog/2024/dsc-error-flow/image-28.png | Bin 0 -> 50228 bytes .../blog/2024/dsc-error-flow/image-29.png | Bin 0 -> 314410 bytes .../docs/blog/2024/dsc-error-flow/image-3.png | Bin 0 -> 26566 bytes .../docs/blog/2024/dsc-error-flow/image-4.png | Bin 0 -> 259158 bytes .../docs/blog/2024/dsc-error-flow/image-5.png | Bin 0 -> 35614 bytes .../docs/blog/2024/dsc-error-flow/image-6.png | Bin 0 -> 180650 bytes .../docs/blog/2024/dsc-error-flow/image-7.png | Bin 0 -> 30560 bytes .../docs/blog/2024/dsc-error-flow/image-8.png | Bin 0 -> 232768 bytes .../docs/blog/2024/dsc-error-flow/image-9.png | Bin 0 -> 23290 bytes docs/docs/blog/2024/dsc-error-flow/image.png | Bin 0 -> 230773 bytes 31 files changed, 812 insertions(+) create mode 100644 docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-1.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-10.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-11.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-12.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-13.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-14.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-15.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-16.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-17.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-18.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-19.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-2.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-20.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-21.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-22.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-23.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-24.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-25.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-26.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-27.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-28.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-29.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-3.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-4.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-5.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-6.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-7.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-8.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image-9.png create mode 100644 docs/docs/blog/2024/dsc-error-flow/image.png diff --git a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md new file mode 100644 index 0000000000..39804925d3 --- /dev/null +++ b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md @@ -0,0 +1,812 @@ +

Deep-Dive into the Local Configuration Manager (LCM) Error Flow

+by Nik Charlebois +

June 28th, 2024

+ +How to handle the error flow when an error is thrown during a deployment of a configuration baseline is an ongoing debate within the config-as-code community. Should you stop the entire deployment flow the moment an error is encountered, or should you allow the process to continue past the error to attempt and deploy other components? This article aims to shed light on how the current Local Configuration Manager (LCM) service handles the error flow in configuration deployment and describes what options are available users to have some control over it. + +To better illustrate the options that are available to the users, I’ve created a bogus Desired State Configuration (DSC) module named BlogDSC which contains 2 resources: 1 that will always succeed its execution without errors (WorkingResource), and 1 that will always fail its execution and throw an error (FailingResource). The FailingResource will accept a parameter that will specify in what method the error should be thrown (Get/Set/Test). Both resources will return $false from their Test-TargetResource method in order to allow the LCM flow to call into the Set-TargetResource. Upon entering method, the module's logic will log an entry in Event Viewer. We will use these event logs to confirm the execution flow of our resources and their methods. The source code for the DSC module used in this blog are available to download from: Link + +Controlling the error flow in DSC is limited to using the -ErrorAction parameter with Continue or Stop when calling into the Start-DSCConfiguration cmdlet, or by specifying dependencies between resource instances in your configuration using the DependsOn parameter. One thing that is very important to understand is that the -ErrorAction parameter only takes effect when the Start-DSCConfiguration cmdlet is ran synchronously with the -Wait switch, otherwise the execution will default to -ErrorAction 'Continue'. For each example below, I will highlight the resources’ methods that were called by the LCM service. + +

Example 1a - No Dependencies – Fail in Test – ErrorAction Continue

+In this example, we’ve defined a configuration that defines 3 resource instances, and no inter-dependencies between any of them. + +![alt text](image-20.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Test" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } +``` +![Executing Example 1](image.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we can confirm the above execution flow: +![alt text](image-1.png) + +
+ +

Example 1b - No Dependencies – Fail in Test – ErrorAction Stop

+In this example, we’ve are using the same configuration as above, which defines 3 resource instances, and no inter-dependencies between any of them. This time we are specifying the ErrorAction to be stop. + +![alt text](image-20.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Test" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } +``` + +![Example 1b](image-2.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we are observing an extra entry being made on the Test method for the Work2 resource instance: + +![Event Viewer](image-3.png) + +This is due to the fact that even when we specify that we want the synchronous error flow to stop upon encountering the first error, the LCM engine needs to evaluate the remaining instances for drifts. The LCM will not however call into the Set-TargetResource of these resources that are defined past the first failure. + +
+ +

Example 2a - No Dependencies – Fail in Set – ErrorAction Continue

+In this example, we’ve are using the same configuration as above, which defines 3 resource instances, and no inter-dependencies between any of them. We are specifying the ErrorAction to be continue. + +![alt text](image-20.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Set" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } +``` +![alt text](image-4.png) + +Based on the above screenshot, we assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test
    • +
    • Set(Error thrown)
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we can confirm the above execution flow: +![alt text](image-5.png) + +
+ +

Example 2b - No Dependencies – Fail in Set – ErrorAction Stop

+In this example, we’ve are using the same configuration as above, which defines 3 resource instances, and no inter-dependencies between any of them. This time we are specifying the ErrorAction to be stop. + +![alt text](image-20.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Set" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } +``` + +![alt text](image-6.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test
    • +
    • Set (Error thrown)
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we are observing an extra entry being made on the Test method for the Work2 resource instance: + +![alt text](image-7.png) + +This is due to the fact that even when we specify that we want the synchronous error flow to stop upon encountering the first error, the LCM engine needs to evaluate the remaining instances for drifts. The LCM will not however call into the Set-TargetResource of these resources that are defined past the first failure. + +
+ +

Example 3a - Dependencies Specified – Fail in Test – ErrorAction Continue

+In this example, we’ve defined a configuration that defines 4 resource instances, where the 3rd instance has a dependency on the second one, which will fail in the Test method + +![alt text](image-9.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Test" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + DependsOn = "[FailingResource]FailTest1" + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + } +``` +![alt text](image-8.png) + +We can see that there is no output in the console for resource Work2. This is due to the fact that this resource depends on the FailTest1 resource which failed. Dependencies are not being executed, even when the ErrorAction parameter is set to continue. However, other resource instances defined on the main sequential path are executed as expected, in this occurence resource Work3. + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test(Error thrown)
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we can confirm the above execution flow: +![alt text](image-10.png) + +
+ +

Example 3b - Dependencies Specified – Fail in Test – ErrorAction Stop

+In this example, we’ve defined a configuration that defines 4 resource instances, where the 3rd instance has a dependency on the second one, which will fail in the Test method. We are also specifying -ErrorAction Stop. + +![alt text](image-9.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Test" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + DependsOn = "[FailingResource]FailTest1" + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + } +``` +![alt text](image-11.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we again observe that the other items in the main sequential path have their Test method being executed. Items that are not in the main sequential path don't if their parent dependency failed. + +![alt text](image-12.png) + +
+ +

Example 4a - Dependencies Specified – Fail in Set – ErrorAction Continue

+In this example, we’ve defined a configuration that defines 4 resource instances, where the 3rd instance has a dependency on the second one, which will fail in the Set method + +![alt text](image-9.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Set" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + DependsOn = "[FailingResource]FailTest1" + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + } +``` +![alt text](image-13.png) + +We can see that there is no output in the console for resource Work2. This is due to the fact that this resource depends on the FailTest1 resource which failed. Dependencies are not being executed, even when the ErrorAction parameter is set to continue. However, other resource instances defined on the main sequential path are executed as expected, in this occurence resource Work3. + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test
    • +
    • Set (Error thrown)
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we can confirm the above execution flow: +![alt text](image-14.png) + +
+ +

Example 4b - Dependencies Specified – Fail in Set – ErrorAction Stop

+In this example, we’ve defined a configuration that defines 4 resource instances, where the 3rd instance has a dependency on the second one, which will fail in the Set method. We are also specifying -ErrorAction Stop. + +![alt text](image-9.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + FailingResource 'FailTest1' + { + Id = 'FailId1' + MethodToFail = "Set" + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + DependsOn = "[FailingResource]FailTest1" + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + } +``` +![alt text](image-15.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test
    • +
    • Set (Error thrown)
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we again observe that the other items in the main sequential path have their Test method being executed. Items that are not in the main sequential path don't if their parent dependency failed. + +![alt text](image-16.png) + +
+ +

Example 5a - Failure in Dependency Chain – ErrorAction Continue

+In this example, we’ve defined a configuration that defines 5 resource instances. We are defining a dependency chain, where one of the links throws a failure. + +![alt text](image-21.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } + + FailingResource 'Fail1' + { + Id = 'Fail1' + MethodToFail = "Test" + Ensure = 'Present' + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + DependsOn = "[FailingResource]Fail1" + } + + WorkingResource 'Work4' + { + Id = 'WorkId4' + Ensure = 'Present' + } +``` +![alt text](image-22.png) + +We can see that there is no output in the console for resource Work3. This is due to the fact that this resource depends on the FailTest1 resource which failed. Dependencies are not being executed, even when the ErrorAction parameter is set to continue. However, other resource instances defined on the main sequential path are executed as expected, in this occurence resource Work4. + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work4
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we can confirm the above execution flow: +![alt text](image-23.png) + +
+ +

Example 5b - Failure in Dependency Chain – ErrorAction Stop

+In this example, we’ve defined a configuration that defines 5 resource instances. We are defining a dependency chain, where one of the links throws a failure. + +![alt text](image-9.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } + + FailingResource 'Fail1' + { + Id = 'Fail1' + MethodToFail = "Test" + Ensure = 'Present' + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + DependsOn = "[FailingResource]Fail1" + } + + WorkingResource 'Work4' + { + Id = 'WorkId4' + Ensure = 'Present' + } +``` +![alt text](image-24.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work4
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we again observe that the other items in the main sequential path have their Test method being executed. Items that are not in the main sequential path don't if their parent dependency failed. + +![alt text](image-25.png) + +
+ +

Example 6a - Advanced – ErrorAction Continue

+To summarize what we've covered so far, let's take a look at an advanced scenario: + +![alt text](image-26.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + DependsOn = "[WorkingResource]Work2" + } + + WorkingResource 'Work4' + { + Id = 'WorkId4' + Ensure = 'Present' + DependsOn = "[WorkingResource]Work3" + } + + FailingResource 'Fail1' + { + Id = 'FailId1' + MethodToFail = "Test" + Ensure = 'Present' + DependsOn = "[WorkingResource]Work2" + } + + WorkingResource 'Work5' + { + Id = 'WorkId5' + Ensure = 'Present' + DependsOn = "[FailingResource]Fail1" + } +``` +![alt text](image-27.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed: + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work4
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work5
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we can confirm the above execution flow: +![alt text](image-28.png) + +
+ +

Example 6b - Advanced – ErrorAction Stop

+To summarize what we've covered so far, let's take a look at an advanced scenario: + +![alt text](image-26.png) + +```powershell + WorkingResource 'Work1' + { + Id = 'WorkId1' + Ensure = 'Present' + } + + WorkingResource 'Work2' + { + Id = 'WorkId2' + Ensure = 'Present' + } + + WorkingResource 'Work3' + { + Id = 'WorkId3' + Ensure = 'Present' + DependsOn = "[WorkingResource]Work2" + } + + WorkingResource 'Work4' + { + Id = 'WorkId4' + Ensure = 'Present' + DependsOn = "[WorkingResource]Work3" + } + + FailingResource 'Fail1' + { + Id = 'FailId1' + MethodToFail = "Test" + Ensure = 'Present' + DependsOn = "[WorkingResource]Work2" + } + + WorkingResource 'Work5' + { + Id = 'WorkId5' + Ensure = 'Present' + DependsOn = "[FailingResource]Fail1" + } +``` +![alt text](image-29.png) + +Based on the above screenshot, we would assume that the overall execution flow is the following, in order and where items in green get executed and items in red never get executed. Note: in this scenario, the outcome is the same as when we used the -ErrorAction parameter with value 'Continue'. + +
    +
  • Work1
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work2
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work3
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Fail1
  • +
      +
    • Test (Error thrown)
    • +
    • Set
    • +
    +
  • Work4
  • +
      +
    • Test
    • +
    • Set
    • +
    +
  • Work5
  • +
      +
    • Test
    • +
    • Set
    • +
    +
+ +Taking a look at Event Viewer, we again observe that the other items in the main sequential path have their Test method being executed. Items that are not in the main sequential path don't if their parent dependency failed. + +![alt text](image-28.png) diff --git a/docs/docs/blog/2024/dsc-error-flow/image-1.png b/docs/docs/blog/2024/dsc-error-flow/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..860cce0116f48e02487efbefe84f61c8c9897bfe GIT binary patch literal 30637 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

!E;ub~C77cVMk1P%numj0 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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-11.png b/docs/docs/blog/2024/dsc-error-flow/image-11.png new file mode 100644 index 0000000000000000000000000000000000000000..3016864f40cbe67512ba580cc5963eb825dfee37 GIT binary patch literal 153838 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 N=;`X`vd$@?2>`_B1uXyo literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-12.png b/docs/docs/blog/2024/dsc-error-flow/image-12.png new file mode 100644 index 0000000000000000000000000000000000000000..53c41ac7cda4565ed47e0ecc4ea82eac9248534d GIT binary patch literal 25760 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 E0z^gD%K!iX literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-13.png b/docs/docs/blog/2024/dsc-error-flow/image-13.png new file mode 100644 index 0000000000000000000000000000000000000000..e93e8a05885560e4cdff343ea34223619e8c017b GIT binary patch literal 257472 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

4|dVr1RX0S7(XD5aotB%0|S6%w06yVIuL$} z;eNLLa==JO4U9cc*>XzRM{;S(cI9cv`=0Com-*BUN ze?FzLvjXcKJ^lM7y1C*6RLL6Y%p}td9n_c89h8C{w5>vj(fVHf{b8U98jkWSAfC$G z%;U^rQNBXU4xt+pIKdC4N_Kk^va}!kA<0 zd4NKVxq-|jP4CTiFasM$(SP2V|3?&u{+aoJr3*dayGXN}ra`pCp z-%*)64R@ORFkgwrY3eVPUgF|p*tU9N1Ux4Nu-)~u#WxfN_Y|M(Zk(oG9hYK(lGT=R z-!2Dddu9dqsJAtz#V1O8G?T40{nD0B;o)`l&cJ7$H2Tr-z7t-J*NAJCQ>W>)80}Ju z-ij(xDa2#Gq}h+VnFngW$8jomgn9PAsd2Vc$Bz53of<+=dYDu`i+7`w?JbP+Ghax{ zqf?fto0v6a7qhep#_fmFuOL!lAs`ttHkSEz5z3YprW4v(b%ioEiT#l^S_XVALc4-PA8^#-e~ zsa~N&M>HW)Z*u`mcNr*==oi%HL#x-{9u`wJRxN^KkrV57r6c4>nk58pYB=l(f51s_ zE`Y`yhE~@tkRWjG_Y`m7JknWwA;x2t4PE)z)fEJJ)wn1o`*zQkx@gltGk&l$1q2oO zwWAYLY2#zze$H!{ULIg)6MF!_C>+fvDl2&pj!gW%>vU?9cZj}G9Q(y_g-3burwYeVb^B6&eQuex ziQ0>VH+-S+9KW$vzmjzP`RI2t<)qaw?x3G7?DRu8zF$pY*L7daRFUA(E1t!!sRnHP z$AN7H1-B3Ej@;HyrxUUGi?O?&i`_pbi2svBSJ-_v!b_P*R0Z?%V*!RTO>VG z+q;zK7d9Ox);}YGns5mq0a|7ZJVQZ&@S;%<_;M$02bepRloQU41xi~#lpnkEn?|LT z+@SjHM&^GpyI(E2xE)~fSnAG`-UK5K0-xj9!l0&<05rJRdF9@X_>6pc>|CMP_k^gv zh!gJ9j8lDRNlLkN{C#xPA`yVWUTJ150($!YT=NTSl$Z7S;uPSv|Gf9#f8YPL`sJ_x z*Ec*bt$j-AHYz6NDNi}r^Ud|?zI-*Wiar2{(m$4|D)x? z=)et}CrirhL2Hg4%=JP92xK3zx^trZz}~u#hUPzk!5+A*&(6 zU7wnnp_1ZgABo0e@XdJalp^u^yxc*`#iZ6oGQF$LX)Lr%O8mXlqHrqX8;_*0rU0ml zr>K>(z^m}?eH5Eg!MNy8=Qy#O|Dg344lFt6gLtVl%&g9t37WJ4_-6JD#+UN3kB&rL z#R}uzWbrNl&(KoWw+>Gu0ole|ku6>Li13*23+Nz8l2-qNv07?-TYjwn(-V~Cm9`c? zPR43YKndM;D5AA)?1UlhL<;Gs-Igt%bvDYbIAi0UxLR0I~);en#_@R0CYNG{Q zKA?xms)6wx*rSarCpyFDeVijlGdddry-1*)Duqa0(OOtU!I2_9?vc zazl?BR+MUd$PO>XXH7Wqs|PcD1Qpe{2l-J+`5FGP->R9xitnNodH0TCII%NW2mw&j&y%QXY%TH zU9-9h{6QAL!j|h%{AZ@6wQnWVP~;j-C5vtg2(b(i0KPW4gE!q^33sq(rrQMw#-7wd z+A{PfX~lTMf`KZ(y27P=PMs9ssdKLYWlrh7MusO120lO4us_)!kCEI9-I?{H8J_1C zyK8PfdDQ>r_$%1WGtZ$f)MxaO!P;z4@D(VA*cPb+8Dv8ktn%R0N|S&={_g18W^S{J zXEz>4VQ-`XGdReOk^=?0Jg|iCihYzv2U9jLguXNlZOOpOEDTeDJHDL@K z4xnLYN~;+rJvPu8zg~2JEwq)5U+*>uU|j?PJU<=|X@(i;&wQ9gF3H8@s$(bnvh?+l zFnNwfwKbiGUU-X;d8Gi#IYll0-C+=le@A{j59trYz~SKzSoBrbQIV`V{~xPSo9V$< zp~Py0{YYRDt=l?h~ukXYS{Mt3CZgsrmm9F;a-`-|qv*x2A zHtfDdaNf7vFUlg(CSi}R-6WSBjJ=}+2J?!Kh)#|@T1gL7{BMafJpKco=#6eTH}8YoYeRQ6v5^S_L?%@&;PiMoWi-1Sosi@`}m zGL7OYGz2rV@L^4H_9H+}Pd|K!_qvFj00`dq8Ii-CDh<|e$!h+XEG`YdsdzD9n+*&o+2asWh z5Oy0m^mqzo`KqYlLd>#cS7ohqMlWw0NIVPx7(pGvbtEtqt|bTbKGP4mb}D)gsm}kngBgEQ?QV6Oy~Pjj8;9ni4(fn5d!qt4p~1&fTi5wO-Pv|UEv-H5dOJOr@7%@>FJFL&LD+K{G zir_hQw@YjnnAytb1%Lp=nUb+@Y|Ae}sXMFdA8Wt6+D^yYXqyWZ}5G`QD8sMZx; zZ}zbBZGSMV&7fVLc=!HM&k)~F8GHLzo8D>UZyg=5crg3>Lp|JF)fPA>Jn+C7fR+~) zT>^4B3fF*JZ`U#6^vnBG>rc@1C)blWsqIyZDTQn22icXIy5VA3r6zA01;CM5W_v3TqvtsmB>q@^!-a(pezDRV6 z@m1OEgSkSxtlYNYT~N@`4T()Konrpi1OkcUbj}iiW-630Kd#ZoG{mw-)|w+M(vWUV zoM|}Q^9y3M!?M;j&<8K>uEF=a+dwc=dsWaUtBq-MnXgOehv$O~L~-=)MmLzp&W_{| z4%gpV$(5=+kPwX*=vLl_JFRuq*LL>072$W5aE;LdQ1HDq-SCDFi;Wx=>3jM%TL*(C zu2k{sTmsAq0Do3`>!Nzym@%;J;eqh{?d!^$rN5B7kr4GU`Afca3UX|?9 zB3DKz7$JAhkj(zFEE_lpm&>So^n|DWV)3Gmjc}*M@}PmtiY>YT`C`$=cU^ZharhPM zTag+hw;36WPv+AGD`r!m;>WGQ4sJx9_PcSd{vS-B*3=48U%!Wr(9ujjI<#p`505w^ zIn`MRbkVSI!mMnRrydG?4N%mrbb#41+lPJ3!Sq#e>!j;sF>-|o?&oH@m#+hq0>8Y0 zs?u+FCWS-XvW$U>Sdmw4kd}(hk$wM&L`KjBqD5MSW@(sBFxxr2@&0htdj>~^7fYK; z{TA@cSSrYIexjB6yT7;R2=W7cU}Z8s95%$er8TQ_;aEX0w;vMNg}&b(16z*I+2=)C zT3|Dv^Hb|r-e~348H#ke99uL!j5Um%ZtiK35Gm;Ez>dzDw9Y~o83H+0Qs;wFLR1-D z2WAGT%Z|u>O>lv`K~ZY#MTV(2_j6LqKONQ9pry4iF)QT3=I|x!hTgQ6s`W_M5hy@e zhl!r>rfUK$i@j-9BOVfJq}7sQ7^r)kk-WR6wGVwR-l>6W2fmxr zSzDV}0<<`IqyAe&ddnZYun~`A$8cW|Z_F(j|8U9pp!3%1IxMy%RhoMgGoqq@SnuyA z4EIn_VZR5~Yi6+El(q_DgL<-0ZF>;dW{Q$MA>eNY?$cG&s(p8t5N;`q%X#vFO z`NN{0MFU^1e2NgV9e`BJ$tHVs|HX)TDrORjblz$z*cl3^(lMO6Haif0$QyMwxx-O) zI72s2W-tJIqR(dk86x@nv#%Cirb+z`_~K4!L4L@zHND_Jz(^zZv`b^0Dc2Z{-IcEi>*YY8u~-mMnKGm$dte6r7(l zx_M3uBj-)zq8A4K%Sk6(d1c0$^g{bF=rZAW3o{(h8wKjlZ_?t%f1>9Ps3~rV&0;l) zGwp@uSbA9v;epDB6+MJy#XMJ^ zO_7fJdW+^O>jDXY$K|yEvhwO=J<8(?R_o0(`dU+SuBRebc`FgFW+4VZ^CH~zx2R(p zGt)>*D}pEjlEEP!P~p9olZ z3{@WU=Cz!UAnOP1heMbGlDuBCJcBiN0%$gIzBWI>g7l&QDP5#a;We0{7yX?ZVmIGC z7VzZ%v3MC{Ud;qR>x~%a*xcE-?6SH-dIBNeUcqxU=JK4N#b6-h@miv0R0fL(On?9w zB!otvi);?TjsC{Xz0O6Am*{u+awPiRPwLNO=72Umpta6)7Z#vfnY*8D61TP{0rKXI zL73Mu0I<3?TGzX)f;HadDH_f~6_8v5sI{;0N!*YguC19n9$|u zc*nEq-z2uA!wc#dIR_cBLoZYRa?I1?LO+_@_rO%YHpuliMbG0c;y;vfq_gD|CW z%i+*(kG+^GG$KQ7?xyuSdGxp#o8#Y6XGHw4kLxeCgBZL8ZS0()>OSAx@{z5NvDUUF zRG?xU(1FoIz+KH|_c1Mz!E3i|Vjfi6ebNu_gy$kTu`9Ie> zu@4VZ&TWZM$=HH@eT#!kT4=dhWhJ#(KmtNV+&k8;&ojXWzS(%LHz!TXfOIv79Cfvi z`?lp_f5Z8F!HnW?%QeMk^#6(n8Gj7AVe867R&m& zz)pk_jWudsjd|OLw(BCSyCUaJZgmf-$qIYbjXZrhHj*w{<4Cg&UlOMnsPo8;?1pg7KcKdL zspW=U$K2?SaIqAuxgNPIeh&mF&d_kfs%ODDB4BZY&a9zXj^=_(8yEWuJIf`g*!k}n zp~xmVDll9Z7)+q)QmOPXsddUM<|58Nb3)GHQ8dfj>waU)Sw{vZzj5=vt3BjIh5#+~ z-mX+`1vF_mV&VP=*7|}p0s=&ykYogD+>!TC|EvpKoU6p{+KF#2Y+mA_BVRcV(v65^ zsSRlw8AgGfwmQT4a#aq&kjFc0(2)xYrb#PLe2y-SwlLo5aX$x!15k|m)2psIc^4MY1Va9T4 z1GyIfpmB)P$F&5jh2}v?UpT3s)X=AY(?}cqT54wY!>39`{L_Plmre|us^z5>d#vqh z-U(ZHc3z%u_tM+t;oz*^PW$^@yKBt3>aj%a_OeAq=)-ms(?tI{ZAss$b*{m}<3`4A zk%6fE{Jy@`fu+Omchpbb`3M5jXm2<}4M z$dLKu{1vFaKN93R>3(was#tYOdu&?H@0=2yA@`a?r}~@fJ7a3w14r{cLs=)4az474HpatU;~QfAOpk`BN{;b8r39)gCR5SO{}RQLH|p8h#9!mKnf5y7#o>MVJad@_K$m3+v2IX-sqwY<|Js^_N0vM?yv zYv@*=uhh#N)o` zYjY!*gqYye*}|iRTQGa6^6;hmaoSw$}haC!t}=SJGfc~{M%4ivUz)Y zrKG&mPdcvj9jSIQ775h*)8ElC^7+e_T-^!~eakCY^0F`I=gK^OzdYZ;b~u_QhVpDc zh~_{xP2F?7X9#!Q8RwrgH9b_ab;D~R%N}oGwV;n=!ho)aj-G={OQ$2~+jObsrZ-(Q zg$CpXV{CX!bjzo&h!7}1M8a;4&Se?;7a4Vq$vba!Q03VStJ)xSG_0oR$gr!l4)Qs) zb+*Am!Lt!ZgyII9_$~&}9ArkH!tBFLM<4;2Gv}hq@osYHd?w&E39>BV-}FKTV}#nM zc_n69N-LD+o;O&40$n;vK`>tv!vz2Z$>y8L!b>niFkik<9UVT zL(l6UO{@9rGF02c8T<3XgrlnEuNh_^USD#XxRiJD;J4%E@3fXG-}O&|b}y;Z4$P|j zP<;NG=y}Vr!x!8hT}eKvgH$}eBNdv2E{pD6l16iS9HUcFj6>3UeZ7`$sm+s4L%sC} z%@BwOtZz8Nv_T*7v4v1vR7*VK`PjuH?kS$hI#^=n9sy`HW#ns%0#;o!un1TVuHzctA?{2c|{9VIXK4U!?DZzr>^nI#t zhZ-5cvsTjkfL$zdMDw3@v&rfzSuZSMModewy}^*_;GH~;iVRZm!mr&qz!uPeuRi2Y zkxonKS+~O#sNw^QcO{p}r_G zX7l?i(xmZ1rNDqHnW{%@1H(N+iFtOV79I`*?T@n#UUzSrHHr!by*OwuEf(Ze9(?6B zpFIe<@z^_oRsKDV)5dhWC6h!(;=pG(TFBQO$;jiC3z~WDPkWp~#{$s!{BVocw#Zb0 zyJI6N%QUd@)drHrY;KufO_aFkp}U82TyxFWUwP(00$1ie2EK>KL5C%wD4_a|1hiK` zP}g4p#6Sn3+seq(I)ZKFs3v79_k91@PI;+5ck=^-n$tG5{%W{tui=>@1H|}i(}#7& zG)O^wPZ4(aBlyotYWHJbv6mNot=?<5V$DW@`?r3@X(|n2-zhvO1cxMuL;K3=@)mwN zD<{lqMo|h4b^<%o}D?L5_ZkTJi6X%p!C68(jq=?BsVI zLS8ox>*^t#?KYTli7KV*^zPR9Bft9OS)cA}y_pFNq@_8pEDsO2eV|pb%i2dvv>5ki zS3^Z>7Xe$H#jn-GP zsc}Mp^nC*>LegpTnL~Ak!mZcnj*?7Z)1~ellEPucbKBW2vc1ohqeE_s56~}VdbDi> z#2rI|jthScig11y^RR~EG@3_j*FetShE&D}by$$s?oCu%jm7*BKkhwiFD{B6G(4)& z^6uEF)1K?C^xdhgS&A*@PnfmkJ*^vF7uD3sK>dcHY~I6v=cuFVHgQJEaAx6~=SyGF z01FSif*1GP&SMzsnH8^|Bh>FTk*KceBB!2%r!K<_uxy6sKuE*Ff=8R02OL~maq8HQ z`N%@PAPcRjC2FRv^f#7;jZ;4~kGjD<7H)yh4U9~N-3Gm%aw|iIy8By%6~`SB-4ua~ z0fC>_xrYAi)(StUxup#bSnb$;GmHjUWKwBFqcnJVAz(;iH_$aS)?XF3`HoL09Jj=7 zs2Uk3=|5u#q5)oJn87g0UeJqQ2acLRA3E1S0A1+NTOM9M@;vU(E2kWcm=3SlEWIzZ zr(@&l06%$W^LOO2uQK*J;4YRcS*8AlS;7wf+Hldo|M0#6t+vMgr0|)<%8kTW^+f*J zLgEMsKJ5~pf{WI%x}S@CWq3A#C%+4&j(8O8KhU9$7DT*B!^`S*PCflHVn`QYz{f7gAbKLS=% zNMG}fu`a+?)6)Vc*qqtB(D}x|yQQ-OKFCGJ1$!7O*5^#Y)+B;aV>(|VpLKv4m#F7+ z^Ol>GMOvkC&QtNj#&BcqWRnd~WnU z-K=V1?ChQts6rLK_MxY0biRZnZIZEbg}K?mJqeT8b!!P!|Xw@C7SQAX!?64%*+ z%0r~ix=UT|dJJZsshw9^=abq*IOVaK!zljtvJt$rAoXZRqGK#;3w?1kFd27EcwHA! zs$QqdYUl9_jc7oJKa@}FfS}ots^I}AKIaun3k%uA%B#>#FQAdF$4bnw{3=ajSymtE zp}Jq_9>xpS4&5O@KCiGNb#B;l9<+WTpcIRcs*AjI3xGsW3$XOKOx)kJ%4`)y zt#K%Dd$vWfKM{Vy6&T<;NANi5-$LCehgTUjUp`PZ-g~t?lgaMrN9ueP`zuMK$p}7s zhw|t7$U!54~#I$NVPZEi(Cvxv3uBceiv zRkGfz*CwSc1ifk^i5x5Cx*;uUR-}$M0y{$NRWkVW9VrK9t9*mFaG@wF7Q{i$#42~4 zI^#r5p)?vYBs8AE*beaM&vAo#*wU;ryK8>N;#WdqLf>Qnp0QdMI$*B%%aHz$D#F=B zG^`enatQ!hPuAgLMdI(fe7ZcLYw67M>#TD;d0+n8-^+t7=}U%B4*Ac#$rEJ}1zsCPvj`a{Be7;t_>%OF>g8~EpjU>cig6%%0GwyD0o+f zkEiazAC$I?ARQr-u|Ex{Aa190$4ZyA=n-2C4mCm#B<5!msWr8OZlKX_G4g)pGw0rJ z`2#>hf=aioCYT1|;WWv#O2^j#uyV?WH(qlBKIVwY0&+ketnSDgecuBoR^BvIy`v^y z^f$G!U@eynoE?Y@!!#i-g%%u|%IVI0O`vy+b#!Qb68bwOf`!bh2T)u7;lQyIw7mHs zeYiO9u_tIx22fu{??aHy?AU(Rz2C07j}=-S?&rC5eR+c0u(ufU6!Z3LI+reXaD{_5 zJz=eXU0Hk@bQOJ$R|4t^97??HRjBzY z5fGNi;<^@!L<=@zzG2wsv7A={7H)NyvfIQr(j!*E+5`t^jHiykaoeMbFl1ivTJ_Yz zua&Wb5iX0ScJtN7;UP!?objEJ9CJA)EC~d*#$AkQ&gL3)jz!L?g!5{OIA)ePj5weH z)Tno9>#>%TT3Gf4Ls$xyR3~j7#g2KUU?=8#r{?E?Rs<2*kk_Gq4~ zCG~~^AqK;d50!BECJxo-fFNF^i;#8m zJh~&Bi!lx)z_%x!`{saQ*?u?EW@ zoGopu>&XkhUV9A-YR`_FLd^HAZM8VV#f5K>=ML(osytb?4u5OVN#r-AE2Z3Jh@o>& zH3!7Oxxt_XfR5*IM&!75yT*T%h6%^UiWZeE+`ON3v}cJ*B73L{VJ@uz^2w=;-O6Jjyv=;@LRX9SVEB)G-hMniWvz^hMhJnsiuX(uDy`uPo&{_5NOMpz~ zt(!*l$GkWQl=I!kP9!v+gMZ`&k10JX>=*8R3D|<9=F}>XE-#fJ&#LDC_(@6%a~EiT zUK<^c1zT=QzPhd8yB~m380bqnuYvJi^Pi-Huc(H#4*>tY+*taBH1YL2x3_*pNqqf| z)PG7J_?klW?L%u{yx;#nb9epq^**tolG{pJXwF;XMxcTv#q`@Y)r+hCgC(|T^K$qJAbq>cJyICyTuk$azAS2f>~2aLr#^=1C? z!wyoPr|j$RyKxfm_W8A=4m~o~Vgj}{^9J5bD-bjB-kFFOuPmgSEH0!fE56PXUs26~ zulsrP7q1-f<1fen6W>jQvo?-e9O?vE2on<$v;{xUV+1)X^BklOAss6D6&dB+O8>Qa zEjyypRdj<>$b!s!fGX(J`AZKZsC;FSZ}5Jtuoxfj^Y;7TCA{9K0J~GO?PWyXr1u+} zU=m0*avz-$T3`%aac>7QVrk<125{QER?URQp@`xv_tio_pL7I`VWg{N{fPs50a!?u zdmJvcK-q!N#h%O27^W7pU(@sn44y%*dZN#Y4%}aT6M8N6xZZM>GS~#~BDWhqwW}os zXaiHqo+<5g8T&dlQdi<;@KUt+a%oX6WIEvr`kB0HjW<61U_`!ivb}}N`28%ULKay* zJ{hf44$_*i+PUJC31`0D7cBZ-r}Pq~ZC-uaY0?6ZPq9V*@BB=x4dTIJ19W1tqQkVm zLj^4vI;#2AGF5J8)YGBpUiupqZQ?A#r6rIn!bZSf~|?{}B@3O|n!8eq8*96Ho}lM4m) z$2B~?9xW=t_rbx*dY8vF_F71MHwb}aZGl6}6DlY8mztA~KlvX!^x1erX?R?8CQMJK z*fv}chS(6J#O!u7REj!n5eGyf=eI`*>DPKzAEr1mS5U%h)?$WeE|_p>CZ%%9_?k~x zUz)2l;>tYYkiDndOqO1o5P)iUlSMzWNj(_IB)GO=sv62^zQIxlGA(s3#^@45EPNYJ zSVt?=F}>+p5q zpy7z{?ZICT0fvsOkDy)Rf&`EpYAc1z4SA^65A&;_A3{{0R+J^q}x@ z{{zUiJi3bC6=^e>`OEBO}%qo zFmx+$%6N+aStla_Vb$?Hb8p}Yw(w!tuHD}@xvCaGH`J()6(b&UKy9mIuXGExA?-|s zm#|8umZip{2VEyjVODjo92qIHD4BsbG+@9!AU3 zBlIkan`cgg(K9BKx&a#!=3nF?R~;+$T=C78aPQNh?CSl64MlEo51IS)8t8+FxWkA& zu2cghK`5cBvXs0WtrSwY;^dL3+?8EucI-WGixOY zEFu0odbvr-jgepe>nX|38}5 zV6*Yfss8UN>3>BSdvko;4VA*Wmmj9gAq;(T+U@&6%NT`PpuFvuTyFJ94!=wp%_2k& zXl5FYQX0~1fMQos!XqrYn(oqcoou-zze97T80|i^SOXvG^vgYA*Q)A6ZcaAR$RZT< zj9NzRN8<$Y^34nJM7Tzj} zq-GLs$7uX1gwGr(V0vsW4zy?WU}>|j&Jo+Cv4jI=O?OF7#_l;*i9-)OKbfqvT=bD| zlGJR)EhdtZEwXKRMg4XJHKx=jz~@0yFT)vA9QAxeQnU46RhqZ}TNvLSB)uGCrECEO zg&NQEIp>^MO%fguM#0#M=pn2%@!4a@DRmRIgcuvSXRU^^_yBwV+{C!QoLO*V6OYqE zEmg^h({0JpCAXtWOOhuCc}?sp_|Uie(|cKf1IE0MWmxGBH2$ImYF-Q_dFKT6`2DeT z5g9d1^Q)uJd!&nlaxQ>)G`&-QqkMyYPRc6=9Wm>vXE=inUp5hhuuY>49T|HPZI)Hs zpEmk;JkBv$)h^sgjDg)lMG?>Y=4Gi=SPZ^=Mq&rZc||InA+h1NMxi*qGMosKAhGv0{i8FT?@2NC=tFqD zBV_tvn}Ldo!jZWbAnB!CTsWcK`oJMntEV*pG&~yD_b_?-Ff3?r;lv;0!g|{9Qq)I) z{RvzT^P~J+5XP+IWQnSVs&G>a?!+VHtQ(vX`t4A>j0!?XEu`z3V?96k$7GgndF}U} ztTNW?e{ISGEBh4INq>OIPLJm7cCXW&zZ)3;a0{4bJkjC*qAPyN&>v!xY9X&=Hjl?~ z?10LY058x$I9^|EaU$ttFP=CaLAAB)cl7l@dr(LA;5pq%bzO_Zq)wTc105cHRUwKF zsk#%3(|v_{%l3l|*#d*GOZ#*_G_4S=*bQJ)?1OLD!dxFvFc572xh&{T(PBad!RC$s zu$p2jXprdiOi~sK>VBuUaYFSkKWWcF!gThn7j=#ChrwY6H8UK@tsy{mSIT2{xH;qj z^xnJEbLrh@zEx}*b$Yttg{z}*#{G>WCE#fo^Rj6=aE}ehOF3F`)!L&hoRh8tgu7fR z+IQKl-kmf#QJLb_nP=;M0k|eKEBXgJz_*5bv&FNoc-^Xj9oMEE4NS8lzHPV^9%$R` z+w@~JFuR~mO+?TM3-9uC+DR7PyzLqmpdZYTqYn^4Hm;Gi59jYP`NlWy1KrtWiq+>| zXK)HmFn;_i+~_d_?mf8R_G;jb{}sjn5=xy9$UB-$xso)1DbOm_d)^SvDY(FjmJcz# z7}sxlS+S}F;B(qDczIS=y*l^KwQSS*R~N#y@nI=PCaHq+Fn#_&&F?J#o~HE0RQcn; z{EcW1CfpLXwBoF^4unSzCaQV)(q6;8kT-j>QZ9-w`$CoHSHo!XqY*2A@@^{E^ZkEy zlZhC>gNpkOTgbmis=yEn{facAen?cznzSatGKM=)^{QCHJ^P3bOvH6Ac7&J5>F6*N zz2sC-&J?WrY{sfelGE14?MDDXSs?Eyy1$Y)WMzf26Zwifv*ryaH{rEOehaC?R$Gu8 zEVW4|%y`$H!#sRXwbJBwPiixSV;~>0wXLE18|qu*XQY8KQ&i(kWyHrZDL~#G@P|XR zVCg0yJRRb-=RN@O7udNFmsmQ-3G?^6Ddze+X4hKsyO3Z(e!E3`WOPpzaJHx5=Sizsx%!k(N zjLLUrdLVLMWwom}7%%(X>`$|Ab#Pts&6P;ZyhEMbM(#=x_F_z!VsHr>`?%fnMOZQU z?#Or8FspwZrK!>hjoYj3+K95b^gwh?D&r06hrjgT*CNgTq|V8k2oE|e`Wo~&ybj}Z z)1Dn9>H3=5qy{xwH`bOX-)ajAvTU4>^BVv>4u!n)5B?^=dNyYf!u4(*jxQLKXs?1} z&5REdbDQBo)#;dnm1ZFj&5C0 z5+%LdpT~_jAQ&9j&M5Z;@iQDXH@7J%T?pyyGG0e*B_AY{-)?V(FC_+ert0iso%XTD6(55K_u9IJ6#wg5RbYO7A9M*S zFFb?wAylku^1JD`t9zO67>*b^!j-o)#|))u4}C9rh>R4Cz-z+tee8O6a zRvydB5F-`H0QASzC&0CQK`u2IyKgsun$a64`l=0fZ*q#d?ynHn1Eqkc9b;Hjm~MAW zK(~8AeAy%%jwEY`mcDLdD8v1Jjj~6sjviMiOU!jK zFiECZ)|c>(?TygMiV^`iwvDp>0RFYS1sy%ClNVe^f(@y3S~4}i9;=j2iI63pa2}?` z@5&)ZPOt9ytvqOhDXB8O)?y(AmwqP|q-7TSDU-AN7c(2I{`29^hg-;bv&%JG3ew-J zcr0e85|eF~Dqx7g;it#7h|!GPUWkbSa0t|BLyDB^bYf1(!d>)(F@DUvhAY49=+b~~XT{^mArGbK725ngO zb+vV(>pg!cDxqs3Ea$v65zbT~4>iZWDLGkbAY3KlJMrc8mhMcG>@%OZi^ywEoiWk8 zy}`vG;_}<^)8%k=n5iLUX&~pI7U^W+ztoc)LrmA9R%%uL2%o3VP{~y8d{&_tjO=l& zI3{{X6$M>=lbQt$&r-sl4om%DQ~}JU+}_;{S>_XyAqJ4nCm}_DJ6B*p>m7h6A^DWu zI(-@Bgb^Loff#xkqr~onKdP@baDpz~CnmmmUV+R-rhrP3Z0X6^+}$y2N{KMg{d7#OENPT~-lV zucxwaIzhC8v(pQJ$VV3Y%-6_ArKNHM`ufTL`(n$z(v-f4VnAIasKd5)$a^r3!7f#X z3~DL|%)E4xB~`S#ZvK1%q(}rXUP+Tgh=K5WM=#Jurx>d1wbY23zkcr9Dvq_)n)n4f z>5M@Bn+~(9hUfyQq$q31^H$o?#h#Tc0Tq7j@R9}?=dl^P{$>%a^fiIvl)>%GvvBuo zOMPKBMqGcpx_!=+Y}h4qNS6vWV&u61+tUSXPxH6!Ip2LyYLfk{Wox@XX|8&yv|c913ZJ-cmkFH1f65j@3KD*W0U6 zt{q}6?}>!;(+KXUhl_5LW?G9`E^bSM#k^}(+(bPwUsjEr%BVe{H=6N4{w)0lg};mb zSH*Jad)RBcZKdjaLN&qZ!qvJ?to5AF?)O6-1sR4%3@P~ODahw_?){E`$TyJN=-6_o z9$ZZ^D(!0P=*2pIQOL^`>rH~vAXrc#F^&*cB5 zY_r|y|53Jq+gUd9736EzNm=NJNYN9kCGccm97zBq97x{+O|OwBKZfMKPrbB>q@Kf4 zEVI$HE5h)i9cuW_yZsHGNVe5IB2+Mt3M#uS!^p_Nf9fG&-pAb&>$>l!EWSNUodU$X zaZ!%(ZqO0+oe`6COfa0enAS!}*1KDorBOE7Dj+}9&*HOFX7o$}?L*sJac7hfWN@Hw zbma`Dws*CttOMh75XB2H3y=}dVC2ZZO>h7`WLcAz4D|UN6NcHDK#P(@e!`L9Yl)ne zJv$pvKyqUupo)|~!R_tlnpwo11F(;s%biZ)btvb8I^glia-tL$nM^%oGwcI+g&}Nn zbN)Lql=}x85|NWL`gRANwH-s`L1JydohD5?l%L=Tx}&tb0<47(ANYMH3ln|tiLg>< zAi6Ic2*DK2Mo{DRL+VDc8tfW;4YRUEm4T<+f$OnO&nRE@n zef;^{^8zHIac`Sk^0?J0FHZWEqb+?A<>9k`^qmV>*XjSUrnV1lc9^HMYj*>}3_<8W z6!E6%5saR{(Pv;!0Vn)(YeqY@TE%awFg4($39Y#et9pa31JOxXy}uzgqA*D70$o`I;#k^gf}dNL-jUX z>z6MC2j_;FAymwO-K|L;+Y!;xt+K+*Y>N04fhcD{`pp+7*ylR&@mo~@!%T*ue#rMs zna{iRbZqlJqeDVK&6R#r}+2CTERcc)Dm8>WXOpP(nq|U_i(X| zs+a}zz*PG|3p9EQ4zW;^)0!qxzWg=wT@lO_B;J5tJ2U-mHoWCi(^NfnebvEY*+S{O zTaHdZo>(6vPY@5NK1;OOM>EGvy)wF=I1Xy)MQI|2-t*rA??8YcY69G;O>Xjz^(J#> zMfo;UjZH`ZMZlkX7`DXBWOcve?#BW2BZb~w%FHGWizam3QCFANs-OICHPt|#bKiD` zobjIE8-uYk)VyJem9DW{c!|GT0ogIR&G9(0;b(IdK+IkCL8SGgtAM_vd*XD=8>+#1 zQWrw{|Fo>4*3>@p_GspO?|W z%Ul4W{2{NR>Z42oL>dYpT>)k7n�%Bx8R#Xc*2f1Dr69-j93`Dwn)ZYWehA?v?Z| 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%0A)?Cl=bs0i`C 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ƮNsoM#|DJ?U4hp>{p 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

-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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-15.png b/docs/docs/blog/2024/dsc-error-flow/image-15.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf3c9283d63abea7888c88739a60a6bdba71d19 GIT binary patch literal 180270 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

du=@h>n%z7L6_WO-fgB&i6XdmX+P&F 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

Gs-)+3P=&!p>-QzG675gEcmBJru4 z^3{xBZSuvO=2fdSBT!|dbmK;dB%0kgJ=X$qoAV%B27LI_+8`#9z^~zyRVFifPe~C7 z(_yN;TkSWpKw3SGbiG-+61F^N5qQRHvckbEgO@Ksuw|Fr<#?{$i(+dkT3BqfHcHPZYI3-GOiFMHvc1+~68b7;uCax`6NaGri~KvZo`oR< z9Gm=cRe$^$d>*G5X@y+fdCu`AI2dBzaivsCnC08nvw<~E7Ocs0*bR+9c04Tsh&(g! z@qwY%*w`b}KN@5~A(m>;uCK`c1E30T-5}>1Ovv|T^{X%yu;m)L9cHHre)|!m_5fVg zoz^3)87LZsqtMQ!jQsT)xk&SO_PDL}$7h0^Zv5EjnaJ3&lL;HDwKlP1#Ue=zkcUhk z>otz@vVE&Xt(d^?+)Z-aXJ>p`oA8c-xMB)BgKWKOf%U>i9Brc~oiTJc83&{?+5;GQ zFOl&2C1Rm%@#XsQ0g+aW+68W*AZW4_C+pavzY~wy*ODZ0vji3T>`ZV$LY|y!Ha; zp$AnXvH?OOeM*gBZ-1h@)**)*Tej}JYK!k(wI#T0{qdUS`E8ln-!r9t^p!BjlPLEg zd}{n2XWcIkrz5FRI8C2XGz>Eag(Z4U+=w-1hWjOp>A>yqfm&&IveARS_+VquFHtA^ zUO3)Q(wzl0o03U7aLY?VaYh9M-!dn(bu^{=@@jXkeO1fJ2V}hpI|k+P#AbGN9Bp08 zrclz{YG;2(GEHG^Mt|HoLo-VWYoNumV3j_l+4%faA*FsHOOviS#T=F~gy;Km^R75n z3lXD?=cme~;#Ni?%PX(bw}>lD>#DX-;r4oP>$qcLq5JA7 z@0jH$B_*9k&dTR(1jU2N0)3j|I!zyw^Z_HNJAY96h{K#0L2Uz| zz9YEHakF5}MWf|q4^1=4Z{|Qn@r3}w+*!w4HE=67D|@LvbVK?n@{)B|k=7_KOyQc9 z_rB-<1aRL4d>{f1gPy~p=N zXBP&}I4j zcY{B^Zsl*)kCZ$(?)0Vo{rAlybbK}xxdF(p*#Dukh)?hMV|MdXQqbn=ZWY>?)5`(b z?;eGpI{y{g@#Z=D_2%gKZdwYT+-D2To%J3+t+fH5{+^G|3lJB5`^vxn9p?L+HTe6T zf2UmE^?uu09v`hczrz{buFR4rvDnQ}2Qu%oq}EQS)@D`|neUSdd8^M)f_EvM0-Uas za6oF4s^rsaU^V8}Jb7mWtGV?oXnk`R<#1ZRj74wFR_|tt1BnYyRe@8C&)VO=fnIZx z42s*CvLH7!O7WR(?h?k^c?;E&JF`9VwHrv_Tln}o&#zpM@Tv{S;J@qI`2!7&V`MWxsPggjI~a?d*R1F0b4(F^HEXIGL(MZ%K`9{^SdQwx-TsLRQ zK$d_i<$$m(aJCCU>!XDX+b=;i-Qou}W*Ug#OM0E7SND!D`V%S9lp0n9u+v@@q$oA> z99+)8Wyzc;5VV?-CC}ZYNCc6bG3rNiT^Ga})!M|_v+4Nv7%A9EK$`)u7idp&^-VOu zd|i?Y-`qnA#+LPNd#6AC*|K`l)u<*`*!tsthm)$ZB5gt*f_&>`O^qc>8oP}Db z&{xhPW|Z)2)X_Fmgr{@{Kykc=+Q_*Pm<4^WEmVmT?z0r2)g1*@@dIZtDM_FXKd%KO z<;fp*Q2~$IR6i^Pf(=|KdVdJJ;K?hafkjoeU(`prQIbL3ArTK*Gp^Ij^-_oq{@HK> zN$G^@1smrYahx&}C0aG;7&{nnCzL6zyQZo^zn<3Puk7c3GZ$$wbmh%pjJqMtX8aJ! zJ7KXJ%xbEQXYUxcC#<+M-y7hN+rK($t?Kvj?xt_#F$H zO`&LU@408*u@tv5pU#Z*bp9Er)c-FmN9^<^)_d)FTPv%atELQi~OwO|r1aD2ejk%7PT_*b7F0(n0zcRqhAf z&$A>YS*$X8%u%K@RN%5mDwm}6z6a)d3f4R#9bSu`oO{+<l3g{h8*6RyRT$emw z!r%Au7(SRBllH$6K`89G!yIYN5(4^JozLv`3w9}o>bSr|_ES|4@uM#%-KTy-?z#JH z?bs*HT;-#=_C++MuKoxy-_p;~u?MPu>@86r{YrR9+o~1IEDM!ch0IH`CT(#-ndukh z%M$dogmQVK?*;cw{~Ni(cIN*=?f_{XEsg^ERm+1dyNoHL*&=Z5&pE6_g$;ucAb}6@ zm7!P&FqLx+k{|^0mnuMI0oB3(grb-}2|Tq{R?NDKlEJ&ky@pGV#o=8N!*;ZE6#@8J zCa%3f87&cH3USjwczUIG<`wYVO*sipwUQiZreVeP4QC?}C`6CS^ehBnG4u%C*43eaQ8B6YeVp@GGz_H=05aKXB z#Fo{h$vEM5c}rF8+zKPCMIOin;S$-tPEJ+Fh{5nMPC4EpN0Z$Qn{TFZ9H98|aQMY@ z$%BCspi2?IHpKq|#P4+J#a|^;N^R#xRdJgG>6x1SPpD3_C{1gCbg6j+a$gt+eU9{Q zTsyX9vt!Ld|4qZ>eWhVK8n21mj~u(-Di6>w_-{1K`$}{7QzwxdSvY>x+7el#xeX;3 z!IrFU<9gak-4uLD&W0fB?D!UY!bs@!4o@y6q}9JbOiJ8Ddi{FkOShXEy6)UEEplF& zuB>-IKZdl-nQz%R7}-grHe;f9svDfrHIAswymL`pX_t7RU_JjAM9TE7 zXb089sD4A-`mB~nKqaBmG+~R7h?92$s_3$bDCyRrSSJi%E`j`LdU~#y;d?!avHf}m z5p)l@0K)GJdtS|%71rjUW&0uq<}Kum(t!HWyN8`X5x|gMEVYHtR$xS|*n96#$AMZ& zTQu(k?BrI}AR+`uM$V&tX_OK%)*#+DUJcC6s@yg`h2S2BiNB;%*XJ18_b(<_? zCcIQ2rv6yqb5w6d{8mRKEAPu>g;PkSUP_TewRbaFN?ZQI!hqjEU_|mlrjGR*o#az2 zEelaHv=4z=$(@daY6PZ+*K9fB)i=6<+m=R+e~p;Bl_=_R)-7VnK@neiQXcdLr-yFtry}z@mQs(Rj!m$crWcx_dJH0?Zq?alE7m)iYq`$A?5*YeYS>R zZhWq-MC5Pvh11*ZVu#rIEYud5W9Q^8`pRXCil@jqa6&cOSvFx3Y*2Q2t-GB$o#ubd2`n=3 zBGQuCHBF#x-OBg*^!Pg;^gE1r=oaN^V)oeqBl*e*Gor2A$9Ua_}d zmHyQt<@uDX(Nx-^we-SAz=Pi#oDS3pF4W}*8Xf6FSOpZOaAv#gL9-<&U#7mBv1M&x zCL%F1mS#SMfIE8x0OW*NLfX<0%gE%EW(sHMQXK5j1Ko6iy!nQ8 z*_gZ{*l4bn682uXYf5We`A-8c&JFqgkaSF(Sg;Ai`#fJJMj8S2_>W)=NUMC(ogFf+ zu=Bca`_ygv`*YcvIVnSGZ&$OL?^(Q#_7d7ch?f%Hy{rsv?+-d};+$+^pr_`T2W@9Q zNViO@F><~f3^5pLN8Kp^i~{;MXuVsvqz3O!u#dC)wp@S}gYu7Y2QERb8j6<#M6QuU zrBqrpXMZ@s=mfwhMM5I(L;#li=59~cU6i2gh|pKqGx)Kxwdc;-jJ)=~(2P4dna8a9 z2H(d2OBZr5nZ%Sk)%U`MU0aW?ZT%2$*7murQK0?5ut|U5{OSipF)70tU$0oNldRDf z-6;zJQGBd%Y1;0*U>QG!fqAJ1Nu*U~rNndC7#lphkiXmkT~M@!&~mz8!O72XG*ON?HCG5f{o~&VdkI0i@2bz~NXxKn6BQ*DBXvYoj-0tX9O%xjaHe z^qOs;M(*xj9Q8P$X29UlgGdb3wN0*>9<9D=tGD5WG)o=w$r&yta%bA~9NuuGkZ13( zXXj&o8hMd6xGp}qa?YYtRdW<|y0vdbHNJCjTdk*G@N61oU_P2q@;Ak$VPQP^QZoyK zSGTZa-dbg(A|!LN_}OZiR|3`6{91WdD9p9B;Ft96m=8p|DL{vE*gm~PiKxwKIlLc22v4AVEup% z!aey=2wTgxb}9+0GMw%~3}fI%DUVfyR$S(DS9|HVAak|QO`BZNOZ!k>wX2EI4wZmX z>Z{7cNhJsyJohI^y`Z^Y@uo(3Z|yH7{5r%%^-GhD;p2-(0W*zu72ozd0Unt7hkELU zJ9ExAO}t_fw(uHLPzzszrW$?YJR*|4Q%j`b6Sk7i_&s1gEEqpOmA65wvF%do9PTuM zyo;Qv=sEOE3kX+IgYw@2$S?4zfzqqlXLGL(iPz8sJ?e{fdk>NB?~53WObK^Bevv=d z;;q88(yhoxT82AWT$)oRWE%iT|LRRW+W$N0e^jjKe`mgSF@S)6pD+a{D>c6o3R^X+ zUom=^6`BGuYzrim(bBvK3eq;oR9J?)Rfbo zHg1i=A(G4>7Pzch-9gh02({Aj(E~S~?*f%A-}OHeSGuQg?vvw~{yPHUV~@9?83E-Z>I(%GXot?875FQtt5ptbfvb+2ux(njd&j=RC>sI1UdWXvT_cpITZQTBogm$F!;%hL@=psP^>qO}AF z&4U49ojz362WcA_EdStW;a*61ZeBMq=RHzGwt4=-De{!`ZD#qcg*q?dynCmfao$=n za-m=_vo+N9rqgUg;nd6J^#w->^)&5u)wEh2rpf5|d@=_$={#REox60GoW|J#dRwXj zhnU%rsc0SlQQYs1P=PI)JQB^?x~8&~9J&^{j2OE6=nV4;wr)OA`RFTnK6*NPu?8Y? zc>V1jTzR*Q_2GtNcU-RHj=4-MfxoF{Mnf;%>BqwN>79BY9ZQtDQ>RCKcf#mXY!uQo z0JN5*I7;g*PAUgf8itlchD=1IrsXUVgnkP(N?7uiIN@=AnJj2s z#>SB4S|ewdlA{BTy3~g)ds|r2XNQO_g-%qce`VO1@ohsITfgybWYmVtKeY4;VPEp{ z{H2{)9HO4@*M%QjQi7k7E#_xsH{tGl2)b7PN=!vjWgsRdwFs3(Q~NTzmLo)n>>m!c zSeVKs{eyQ)UHhS?oIliPgORjfuOy%wf(9(TJs%`mUUG%dJFEV3H+BV-GWwt$U_`0& zSWpFO2hkjIDnt#h(oh~--aj9v>?By(8QZA}i^Q${(AVbOZ53jJO>bPy*72^9%auiT zhmdk`0<7tU^&*v^p!4wuA)JHF7PEH=~p=#aAAd%%{zPV`$)9 z%7Wef0F&|k-}OQZ-fOE`KRGfFFR;V7y5_G>CSVM1HL*MTnjguj3_LkO^| zlB(<8{-^F`q^dK+3zp(V6H}Z&gorpsvY9TcY+Oy;>`U%xH-#e03PG}=a%~!2As$?b zvm2A$81xmOGe*Nj*9x!5Ei8uHH|Ga(pNKC=tX+0-`_+r*gJIKux=PlX-sT?dq`5JP z43A*++7e8BrW8=q$Zz)^hd(ntpAa17K2c{n_h?%eL+HFza+dDe`u-GA%;{1HqavGs z;0l6iYBAoT0jz|p_0C>407a?Y_5MXnj0Yr;Tm@A>c-vT1>}Kw}{$F`GV$w{oL08 zL1nVG_7X8k?iv;f(P%3XMp;56iTCNnyT!89aj1OTds;yvp}s}wJC=l z*<1~m8=6s4xI7eJh!RS3x|zFj4RxP6)ru(sUuZN$xs+I-2}RPs!a{H!`cdqv+7R{i z-4!{>Mc89!yIf&(1sbc$F^uQ3Ha1^d{_-CJnjB#M0}2RO(|Em{f;=i1YRC@yP+w}C zHCE&;QTd2glCLA_+sWE^kS*7*C~Do(XInrB{n`ixE!;L>0xfLp7<;+w88UptB4LcDG8(<5bKM$@Edu0)Sls1jj97<+Pb7ibs3=1I{%tyQ?! z=^dSsF;Y_)7#dVf`GcAnXfe?Hjq#+~D_bvKjgH!-{q|M;HX2HjGd^>*Rh6i`rOlskNG5)rQFPsA@5IAx>aQ+hug63P!@1$~K=>L@=6h zxI(uAye7})0f53F{>W3}wYKW=lyI@svN^DqM!*3ka&NX3pKHpZLDNjYf~+50GpcMN|rjc_?4SsT$zb;=tX zQPGn;0uN0 zeaYb)vA>&(&J`S#B4ie4iFvK5ZVa{*1(I@#&2>%K1cC-;C0!Q|xg46^Ts!Ot1N;a- zNt~OWCfN?KaSVLW&=UieZqUKp3yy~BFeI05dAhosZ%PpwMJL2pf-|SRyKhI9vvSKnE+O#@NG|6e)Qx_ zLoS?Gxf-`(=yTK6I;TKH3OIXXw7xe<(g8;P>461gsLVA2*0z-vt2s&&gh<22)N|1( z1b$E)Oh$~PXNrisAj(U;z7?Xy>D&eEoubH$)qk-Gcx4@2cj@Gt%X#Ttdh(_0^c5Nz zUb%JsmJ7>HKL=f`yIhsXx!3B4vj{vboj!kRUfg|-Uk~*YOk5?e!|&9|d)(v)mqVf~ zoRz)vaCfw$vLb^*ZAyEKz-Ovt8=V!fjMGdN)mMWbY}kO2%H5r^MVpul{69CWzI`M1av0US$q>kWC|pRyf#uxavPd!oAS z)@GR;O(G|jd8x;|u<|-nHDr}(&7qNm9pdLA?r{>560yl8s{w}7HwixXXmj&mOGMD@ zUWZ=J@QKNrZR{t`1yZ@PK$#E8b4t_oK6kHqVLM8zv^O(-=&tsV#6XY?*`)^|jN3k= z%5b}C#?Yg0T`t`*;-8!yp`-Qs@B@Q)KMZFOd1`iM)?bGY#A()+MPQ(1dVf?@^F6vc zZEgpwg3tomr?im&nJOV}<|6U;ylYDX3mIjFa92SMJf%bNzUT|4KS;6bq^?YqnI&Qo zoUB`tk~`-8VFDpvRNl4JhKrh-otzgt4=!>mSwAFAcdrI~98`XDWiqB)yK8xm^L^gx(SfWqr%&#ZuIgTf;zMBRLwv}KDPQ^_VAu_% z2JMpov>w*NQs`uN)zd{l682hEb-$?xI?vWHop_}@B1byZL$-62`HY*#KMs1TKD(oD z$G6d#JbOmPqVB<0iPOQs6N{Kkse}I@O@T?OQ+Ag+(=02}!hcLYqqj@VO$Uv;m)d^$ z1%Q87PPy+HJ_OK#u8qlu>Z1QCcH#we?2@Nm%0Qxp_&DGeU8gp6n=i6S98m3?aV4*I zP6NE%?8eBRhX<+*@9=YgPdvFFJ?)&#dZ+Dk(_CwT^6c>FaC0}NbBoJy=j~)sxSy~Z zT!fI{spNw|X$r8*U6*aeH`n&O0V?#qDVm7W%jC-ltyA zQ3kypxk57Lb{PLTCQDnolHE8Qg-wNW_wcDBxEb@^CM(O*;<3m0Dq^PN5>5k*+){|* zVLqpS$)etT82swBmwa&dXzRlNMZW^gyu1CkocI2ZUDH5o?4X@;9=FFS=nKH@0qypw z9X;9Ou7%n#!=k>i%wNsa__qFGrdHwq!^6W`+h5uMD>l?dx)zGlxPfLai#(D2r$S31 zs%+1zj)b}@oF)&;iy-f;x@&UY?-I6r$zP>r|2S)JeNknfz{Q<%=rCLG>-hsuX_C8Y zxKh8Qt`U{mjgQeR7@!Q>6yX!QJd)73RS(fxTWvHx_W9VeH;3%uV(`MQ3t`WzZTD<= ze%J8*Ex5w0e-~U8^-uGvgV?jP)(pVsd+nw={3R z(bu{R-62DnEFPZsMF7i<;U#NI)@gEkcsmr09XfB?0w&GN;?1cW^Wu4;FzGk+W@Ad? zAkcibaey5d`3ZZMVBe&dxTC%pHin(?Ev||qKLN8!jsANAE}OC?(v_0?WN_;fbH)bk zP*M}&SDRMKAknhqd<225l?#u`^beCe^^$7SnuR&y4ReqBXnVyd5ijN5;b0?v(eKCimpFdsBS(A0-0zS6eS>>vp4%YF*C^jk&*=UXq# zHl=LO*Y1ulyxpRLEPk^ATptmuZO#RBV|Kw0Kr5Ho`v(p+2WNokZL zc)F#)r?=4SVlqxKhNhr9MGpsp5P;3Xf?(Sfbj_))aV0^R-~07x!kcQ}Ukil>h7VO_ z(es0GD)i^)6+fS4Fv3Itf4XRRcB2U!_p8y7M}q&w^evovZdUj(;7Rw)ov@Tg#NTq6 zPr$M=+*kMUJ!K_*4vVlzW8;r6548tmM zLNmXJ$OqfAZWu_HweCZnEBvx*BZ{FUt;Xc3zVaGtXbsK^!h`&06_vsX<4Z>#@6x0< z7sqt88By6nFxRb(u%7kOMO)TmnGsF5Zumu+Mq8M_NtwS>n>kQ1Uj=Esvf}m_(y+4l zemba7yboB_p>Z2-jVaTSF_2B7&(9VVbB3Z%10`U4`k`Ab`GGp3`BuBMMWxJ(U1;`W9SSkp`H8eXTs<-t#LCbT;c2Ec5?t99S-UOh#-3 z)NS)fw)>E4nh*pvL}fUe*v?)>QuAs$QdT+5+@*uOiHK^Y%rDf?)$a;2u*ki0V)vxi zhh+h%%tbqdUhnR2D%MNMP}nLda9|bDX+;bEf8~Ybh!3EB3Q~0@Ef84YvpvZ2mDvxP zo}yv*Qfp=5K`D75Hn~wsu0taIoWsC{+v?u_^*gN^GD)7vtsNtTk`|EETC zK?l!-ncEQCT~!CCO*L}fJwcs94>zbzw3-IF%TP{Y1Sk@fh$*Oj^R2aLZUBV-No8~?Fmq^ z@a;dBP82}%3v7FPZE-SiHQ8l*u>K=-NAkw~IeefsK@XnNv4-Lx4SDf{#&R}?@i_6g zv3o)<7_d<(88=A1p{K{-Yh(Sxlo01A%;xUs=wv~%y}J-PKz$*m3A1$erYPWd|tz;tX7J9-ZcQ@U1AEGml} z9~HgtO;!iABNK96?K6PAN7NRzX-oppZ=s!GDYf&P{^!9eG|GAQdLenOLO3OUW(WL~ zrZU;kWe;OEU&jDfXnuJxjDOZn=Wtty)4bvPb`9HCxqfgELlXY#ryJKPv&b3Eo z=Uf}3+eNvKpGSrdMY9!=jJ#u!XWT(MfEu~!SR;slwF2UhQ<>sD#MKQ1+<3_5Rg45| zQ55jx0$Q=+bteBa%muoluKOjmS0f5S(M_}tXo0j2az)z8cbwiQUiqYKmo`;*vG2TJ z0Ds((ii+=`w*-^QLQQvk+^rW5wP8A_{k9^HFe^d-OLIHsjmdK2lYF}DS~U37hPj^^ zHftk_kr9c$G;Z}^YR1RV=LV~sQMZCo}}-B@P}g6E#O zdtFPemf`vqz`aqC?f3x}H+z}rxbXk5_uf%WZT;Ra_JYc`(FEca73m^^bnFPBND~N6 ziAV_%=@1B5wju(Fg(g*nP=!zuI*BL{rAmMRp(zNVg$RL!5E9-6?)^ObJkNR0IrqKy zj&c9E`NIJ?#>!fA&9&BC^E1DnUtg$kms?Mh{yR8LuLUK7h=5CeOFaTK$|=~titzj& zx|%ik9m$zB{G6ckQ^r_Jwp`GCx3i2kOa^UG9E5n)KmFkvI2zx{Dmu7ZyOV}8h4}-n z631e5LUyCddSMYC&_U}8%Vj#`p;4k;iCGA2 zwZ{yZvTYg2%-OuHenT+OACE(=t9hk52v*ZVvl?>wLQ^tt{U?Din+H^F;+wKl7Emkc zpbJg=UGZZ0k@UUi&grf6_N(-g+CTzM6=#ER9sT7g0D2WMgxg!$m(#6gCC+t*eIk&+ zW9Goi$x8YOJta&CI(EcD$3D&Hec|g@?dpNYtE#IpgsbA_Y&s|V)Se7e9z4ETtyCei zGqPvtR%pT(>()LR;{v^@Lf&}|owah8oAva})c)7bsy~oFf{$nhUPgKB=OIna22kl8 zR}$8x0Qb~3qIADUkQ4e0gYVvI>YAaSL=WySIhwajtt@oRRc@3|i>tGXmqILe6nRel&^z`kM)zCEe-@+Lc0?E3o0n1I z^P6t=LZPC4jX9S6&eq$OwfX$7&?2&l{IT`(>h!I#_yvy}HuOvbFG3m52y&Ue5u;mA z$K9KAe@)As4Fh2i?-q=WkXiK1L#9Qmc1h_OSY`2nFuQ!yEEO}OfRAXie}?JuMx2gt zkpor(ts^PV)6eMb9C4r)MTt6fZ@s67~EY9 zv&k+OM1H%BsWsQjADO3z2oCU(YbSyGfZwnIs-hEW(4C}SN@REp=pps6#}m_2KX0rR zFUsY}MA5VKf-Kz3?$3T{Sf`h_Ayuzp#f=h8D{&s49j|sG6ZFm{VyCuJGqy@z37Ijw z@%J>I1Mf$FM2+vCB0Y(CIJ}D5mR1+=_MF0a=CoN}>?xjF%B5HPIfrjGG~wNCrZV9p zXN~f)fLN)8-99#UI8GSTyP`C*Ls9YWK$ZFgRQa@WThwBuB*U}mZGy^g=TkAvbGnI5 ze2nrVI{I#0V>9 zmte0r9+jRcWFL50Khmb0#R>g6vzMT}e?TTCdj%*W3@;_W7|kJEqnC7p@L$F6k*TJ@ zSg^b{FWVk;gE-R$4+4op2hE(GdT zlsOb-3R%+B@;~P2_wvvc8HAR3>4-)d>ghq0+B?%pJmmiMfs*L65S(rG(|dvcA2Lu-XOz<)NO#hkSD|rXd&Jd&IgUXIK71wEJ$Z#3W zw%~t~;$t&C=pzU^FGQCNV7euNy591=L_@Fj2X``CcMSfcZ@*?Xy>kRRAJTsya3;)D zgSNgb-KiJgy%|RpOy0v}=vu!U3SPuW`@V%lS8mYDwo@Lz+scG#b@p+$UK)QsI%+lv z8N~$+kHt^cqVo?T()LBnj~T^*FoJr4`wcjgE$1V+>ycQH=Tw<>IA3*1N-<%;7cQI8 z?R+I}DxuhlVU=^>@!Q(#$rglDLs1_o7iq~rFs`|xAR#cC1Gl^1p!1GI-5DO!6yo94 z(k4SLQD?c=8jX1ZoU$tE<24agfmwOS_uW?p&WaR^Si|Dg8yBBR)pYmfc9i@Q^BKh8 z|BJYv`6Xl_2#65LKeN<|wB}K6k+$?iEP?GiBxj%4V;nPp657N&UqTz94I4K^R;OzF zmSYosnHw^e%4ZXRb62LHZ?7NdlRe(xtNc&9pZ`O1t&*p!l=z%VcW8|B@!uMEam(P} zc1q9uK@M!#wFqdK-(A@?K9+9f1m@josR;eALxRVIg?e*Q{cWxSzsaUq#;uh3t4KS3 z29_fGr;BK^2cSx?GI0uysW)m9Ci;WZR_1ljsY<8?N?1GZf222iqJ89hJmI)|?+q|) zlL5Tcf=78ff8M7I-Z|n?_GAqok6HTqc{N#=p=lF3-s&f?ad4*waJPyZOmop%QD1*J z%e-V29}{`v?^1NIH%rDV;taW3BSUysT=>j-fDnWGSrVD9^_G<)?CRgg@;VpMmi6x> z(>zVVysx|{E#UVNr^=s^@xqytITdAs4g6#K1!58=_NtM{sn^Gxt50QL!giSJleX(W$Ha``XF+0f@BY3|w|tv73;h)mLVtB7pmaFKmyZgA&kYy+V~ z3SMb8tB~nDV8wMKO1+sS`3T*P(NWhPhscC6PW#IW<>2F(7ql}16nr@m zA2O-{eVCEsU8UV={Pz^0P12{oQ%=;mC0vIc1yi1Nf%ibYo*MXG<+kGc&#PLN!}3L1 z-8t--iWg9WA4%%a2>nsjzdGsqBm0X{^7#S7+LJ?nngY{|*G+*s^#%W1Q=lKqOQ0Mu z1-=LdOo4*BiqULoWi$?2gHiLwF7m*N_0Cre+-%q(=T=_%w|P+e9wLSu~^2Eb-X15r)W#SA9WJ%WmT|!2Br|XfSCwE-AfK2{0%j=qTcy`D1kVF508!Z<* z{`*j(f$m6qqHwvrx+ydw(4i{{1B4N^!&xYffRl~iEpkT$7)oF;(0npxZM6)!f9z>V z`9EUVFr?ym1mkLyVwl$9$U>T+Thb1Nw;T4rrm~scU|vXvR@Y~|z=%lvbRHRa^!mGZ z!J|K~Ql%MaVa>o8@vhrX`1}}{%&%(7r>VewiS@_DSANWc~h0$E@yMAE=wF z^}qK-J<@;B1w|-z?(&|?a+>ey*gEMK@WXWLQlpJKHmmYxhdEZs8CVv1R48`HyAO??O-$ajf@QRg1(G6jz8sCpzBBwXFg^l z$!Xy@1aU_4X&*HolBarw6WT=B z%}(TDo9kp63$k^m1B?=pg;e92I~Rby)fqAZm1SJ%@D}s7-fmCY_gKx-I0ZvQ0|VfA zsOhsv6r~(ktSiv^?H`sxQ!iit(kk^l%4LUFlYdDHch#7_c{vEHXadWCs}9a4yb_W9 zA4m#!h26DG?6ur(4$rNSis?>nO80H;p$)>MKP@a}H(7{X8SkaAY@5;IczEIQcT!wm z?RUDDS&vIGs3;=rGMM8f8!fgF9`|~s@AJy|r-gu%d9R@f(|HSE3u1OjPxwRvVe<@P z+6$IpDfek|zB6A^9!B%k7&hj4#eF`z^u%=_W&@0_20!mc34)F0+uHEJzr~*a3_acv zg;|QpR26&D9;?m2r0D6(N!ZCTC_fQEP&ZRqa$psRa!yuf;L;7Q;=Jwh^?@{`_}`c( zUc${fUtcYZz$r$oth(=CA~aM)QrX^LxE4-$oMC}K;kVb$(#-IJ1dS75AJ|^+!gi2K zwjxHk6b^_fI}+pOlJT!5eHY8i;p@XW;S|Q{Q^|3(7`+E0&7^`wI^zadW-~%3tyQ5D zmSDQo-c(@x^Q(jZ35t{%*P54-&EMPhUOkpf6sn(z^}EWiHDj`xy5;g3xD+#>+2&2Nsx@Ib>8x8!qz|u0nK4DjYg#oKxF(IaZAiPV+bN)`m=rMQb$i%b&E?N~U;hf%B6T&a=nnmOwS=y7y7Wc? z^3xU@(aKlpnSHPJrrlipd$iJY)Js%LOs;d6>z~oe^6`d~$+{s{sYPMm?Wf8(1UCpU zj0=Aof^KB|6F^?9zoB>w^H>EVZQ~3VhfzD7I008|<}%|GFyZFt{*{sn?O60@u;2)R zVYKv8Z^mKP7S~OSYXa-0hi1f2U!6(Ht}Z`&NBD zBvdHV%$N9pY%vlFQ!V#T*8kak_5_dY3h(g-SujV*TBTyFc86{sV?2pxKSho zwqh&|CJ?-4Aoo|$79eTF>Sq=(1Dd%IUSLl1L^v9`DTM(5^v>*4@vg-|FCG#o@UYx1 zYK_`869#l5jhbH>%#j27K@0L)4+fbHA_7K6B4=kif;@iD5BObB^zpxDFsskU{FfQb z3X1LjQyEOv0AL^2KmRXhFn@iCKu{wt-~V4D>Hixwl7g;5Z>K%=kE}JwSkn((JLuUF zI1&;;tJE%UJ!t=RbI@t^zMn_7{=m6AyUBh1w*QI7PMyl2<2v`woIbe)tyB5jf4g{a zx9)za<5Hq8>QCIfKKWoOsvhciMD4&Xozar081a;y$2hwZj4Qn7XhE!AB7?`L#+v)F}mQ8DPB)@90*>u;`pw2iJS~fIdgAw z4{%CHEavQ6z|02`aJZO(QA>Flt3uVjphc0cpvPb`!Y1aA+{s}*Ptk6mZsslNxgQib zw(Xu*z37YV`{J3Ub(emYwMhcch!4Usx8VM*Zbw`J@&|n8vQOPS9sbaF1K2&ozZrn3 z*a&_CM;k%>jU1oHET-adakQ7XtmC?iZX&PQzLDykWkNj~`L$L#yMyHld)0KABQF!0 zOZ_uEo9i&Oi&Du#hy*;jG`1#Yw!r`WX$)OKirKebs|oe`x6YFSS*<_oo8&v^u@AT7 zhv=pdT|gme5p!$cFYEeT(el1WE1rUuz9oaoaYe{c>$Toq=eWDzXbnh`Xz_l`&&27yU1&oN!9ALLdswnp3Rk&nzAH)Dk2rz`i;0RzaZ$hjX-NUm=L&6Hu78B&QsjrnKA- zt9ZtZLS}7_w$3O~;svL9M!vusWR!yh!$KP!P{|+_W$IRen_Jr?eH8B>J^oGNFI7;G zjl}8P$Jf0T?>9N$WY<42AnPq(d6R55a@8lpC8R;ybL!)5)7qo2AvaOz#+9GIZkk&O z@1E%F{bQOYxn5W5srvqb0Pww@eq+N*wX+-fq!h z6Z*B*4Gxb=Pc-_}k+L#Gg-owCtvTDHk*S@Zq1je;_DH4qj^4nY(j9jySoPOpTgpS! zK+jua55k}XCz>-f1>|hufsNHa5th87dm>Sv*wYSUIUyVem3fXY)9vJstOc7?znIt? z0Th&Nk84ihvpDju9*v8uH>xA5aEn2P;(Rr52fG7IFOy<+80z*eBy-mej00#U;i^gK zwed?4i4&N^P}^iPOXA&y2>hr3Z^0A#N4Df?S#rH!4l{mb~NI>}Dz-!d&80w>mA}nF8>Rog)coBhdg||(X zP;ecdms7r8@pb&eG#=lR!zTu+NPeh2YX);DFQia4ZbA7JAD17&jIKfL=U2zymfFdc zodAyyXL?x}wYV3WOwN<5E^)tiJ(~*Qugad7kdLpRu&A#VUdUYn(tN}fA|AVpFc)80 zqxv8^swEz)%w8#qXkz~=ja!+LfB%A+pvH--JAe{QJK7feNL0bsh0$)(jaSZrfD%k4 zQX3_hOqQ!94=0sbGj873B^AAFoK;kKYB3f7v-dJ=>1`tq?%%S>?`phFwCzc02BCjC zABv+IGlWjr)>NE%=4vyO?+R!dQLl|27WJ5x|FEM2n#RJkJhO%ptF-}U-)(?@U39fY ze0S`~Y<&=-D5;HW?ZS-x(KJpypDvGPH?tx42B-u~b64UEC!+8k^@|-ee+QzCy)JKmEXuB6$4QY=LeccrcCa@wn#7SyJ1%vl=4%gcZrb6#s`6tbsLP6;;Al!c+L_@+rIzm)?p zwr2`K5nlJkpT_YqtD7L1)iIaMy!1?ZTsN+yz)`;lw){v~U84?nzMbhY8SsMKxpo%i z8Qn2I7LS3hUr*)?Xm;=|orE5X*GJaE;5Le(-+;nb+t&28@5Xm)8SX(ad0HsWOL1l> zimm42M-OG>Q;+DEP_mR?#hmgS z@w0#jfJ5mXmj~Fily_%G!>7HKZLmOFo@**DRq^W3S_i`d0!h}^A8zjXty%Fh=W)*9 zXlV|OdlcPGfnKoSEQQ$DT+e7pR8)fbfCVA22bOt_74C|AqaH*xX9&y1=U}eXpO9{L z3Mgv4Y=2+T<5$%sId5WNJnyOcivz!^E@AboI#nnM!=n)<5|`r3sVTC%JS*Qh!H-F$*78@4WOP2`I61AQCqw+kU;5Zb>B#p*-4+jbd5dEhO;8x7WLP| z=e@G8h>U|pw$)YU+8A-yb&bI>fUdFs9W>v;t!8IYX{=yzP>Ea3NTx}{%?q)cLd&_* z4Q5>oJh8g+(1`Yx0DA~l@BBNwA}$-_YsLMtw4WYfcrRDX+(|cPr^5_g4vGV%TrFXF zGI}7ypmY%1KO1^dx&0hIWRNNP!wZ4m74aZsD(M=U%T6w-+Z0@KHgGyZot-%RLQYTl z9F25-0%(QqV64vaSb;PO2L0`YownK2@kFq}YW0n1azOSAKZ7=or4{uC22;nvVd$iz zL`?Zxt>T(tOlzq2 z2_tjeVH~Y8McicWW3b~-W6fh`8kDE%Z)u+9j!2Snxu-e1`GOLaW_AC^HGbV$pqJL= zAOp}yq?yBYWye{z$Y~?zS6wd?sBy84y|TT9%Hn1>z9TRRfrrKmR6 zkUOszF6uThmTqgHHg0p|b`GZ=tK5I1y8W#0TrpE7o@7yDA`34dlbu4TWEPC&*A_$C z6m!cv4)qVooYzj#7{QC+=ovy!S3)C>P^J1#nNK7xeE?;jPNo~pBsnAcqr zS4`j{3iCimu!!!d1YGxAcXkZ?S89&7Ft>oVU0EN(giO;!WKkC?8&I; zN_;dE5x&PIPWoZZ&!!ha*`6K;r-_~e6rj*-`qE|u40M1v61qbW^`qq-p6}W9Y^l`$ zcM}h8c_8I+Sj6{ZchemkpsB;{BlDx5wS&JoKqg4SyM-4YJQQbm4bLB8Rp3psrj;us zLyULce9g!R+@ZwHTjPw4OezGq7T|k#c(=c!X<1^cF44&khw)P!S*@#cVrQS8yQ8`9 z=AKadHc{b@e%{1igZ`pBmLJ|Y$1I3U@_OxCag#rk`Le`J;hmCu!&*D4j7TAP1}F0UL3Jrc6NKG6-vgPRoG_G0=) zf-EhsCfLN{!(3APwpRu}5)TEba&BHofx&^JKv@o)^bb2Uqg>H;&v@q>M|w#U)#qKt z5!4}cR|KsNup|YVhQ`fM0NQy`FxnraXN~FIIQ%Oz>@x zRx{-0Meylpb?{}R7cv;iRt0uC6r1jlJZyXJ7sj4wXQ~X`KONx!Nl;5oesY( zmOlUJj6uZY8Nyn>-qZc)yu|7JiAzRcqu$q7fj3^Gf&A|BUIz|n|7{VrWk?@_a2n>A z;IilM<(9T==WTu|9JTt+QttDZyU&H3fEN~mcVL2(dQaiZ+5<9h*d{>Th_tLKxN9_Bk^`uySfm|}bRU%(H&C**Lribw z0k(=Y+Wz6Ou~7Ue6M4#GmU55NlC6ZLB|M;Gp;~T6)kZ86s@)krPJKP;Gr$VOmuB?j za#T?I2&5dn8_LJ$uQ{Z5D_z~Lf%WJoy((d|W)Q@D&L#gPHb9FPmTbqi{`7Zr3q215Pq0wv@;fu?4$-<2mK&d5&|H7|Q zOD-#VATR?cwFG+p5-~>!1I&%i5BB#cU8OBJr=Wf;beGLqy3~9ghbo6hRQx#6+wPYz zoaxrj_Bv?KeJ(r%-u#>W^cx$HCwzx=&m0u2n@#nbuF~y#M$c}rkX(|(7V=bVq)r%d zA*Sd+i5dD+{#QSRI7PVesH3#!v>Vv5^*SrF^=uO>6_iQFSu&xXt=-&bW|nZ}a<>ek zm6m2nY@&NV$!_WHK|IuSDmbFC)IeV~wybV(Fo%K*TkD!xsxc$wFvgqulYNdQjtq|> zJ;WMIPN_W^Z_d1ItekBP$<7NKZ+7I$m!M4K3dv(1UxpcCt1{Ik?eZDaMMxJ}B3nq3 zyC6a&W}*T-(K`@}-gch)z@)!8wC~6XsBIqE=V(s3)UOdM3&+{_=-p#NT%n*!W@Fg6 z9?ucx(P@C5S%WR6Vj6Rjub621{w_E7OWcTb!TRdIGs#7+g#QvZb{7b>z4r%U@KSzb zEMbgCo~hM23}vM=eLUbw$!yW-s|B%B$1FQox*rd>gkP1W84MNT{8yta#@;N5E4ycR z&sjz%AXBXw>bHQ4Uo$?8m*G${`=IQnUumouza&`Xy4^GuLn0cjXQ)W4-P>~{Wo_od z2`2GXP8HT+bh6|2&{j!|-?L6`VVehr<_V(*C@R+JiToUfA@4>tznuvCy@JwNpcLw| zCv>b8`pd)jAw7BXc1t6XR@A6SE$%7hz-$)MQP68Y&zX?|Nm}%9zo29g{UYINQH-LZ zZjhpxG%(>Y4)`0-ck(&DBYw_k&x1Z2kU?gP0GpiC5=g-vmzqs=x`tJSHy_?U2g0!|zY6hJa zdVAGNdH1uA;fJmp>WBH{sH`>T8feM1|p*ZD&N zzt^1m(^*Jva9+?rUW}QsHlVM|W2~WL996kQen!O7{6Oj2(At!;6mgTleKB4IIz59w z!(?uF3TLEm{=@b7?Zf(X#JcP8nP+N!#OnOH3_e|-XSSgzJl*WQ+D!~uX~|fAz2RN# zCE5HPK|K6t&8AI{ejQw;#I_w&Ry|-b?8+JDtju74KWY2tmwiZ^kN>ltk-%v&!n!o_ zCMfKL3b0o8$lU2a4UoUK0>b&isb8)p-%r2aY!CLztkz5`PT6#_S^Ua)=SD zOX{1qKhV6FxlgdlLcK&Rg!f4mCqZ((1U1uKY^NzHaJ=k`F zh8(>0vr!7#cjLs;XO1?)g&^61)?CO7BJh{@Ru+|2gl;=5TlqO_PAP%{SQ+oG`aBLw zsF_qPa(aX{pd1$XCjM;m_OS;yrY`eig$U0bMWc4?P#fKJ{fmwM)06S|f!>54U@lNf zO0D9fwHUuWl(@PQ6mi|=WzMO@gheVTRWK6ff$rh9}?GrGUPv87m9?5X$)a&JPuEKtP{RT1L` zv{>0>h(j4LkKk4AUz;-O9Qq_$GE~BVl6t9CX%1{U#W{8T6T26Gzuqk3XGHKy;#z_8 z?L9|6BzE?a$@4}XJu{;Z(lD7cT=oh4)Z4W9s*^L)&8z$1E*_xJxeRhTKmhojmd)sL z2cA;r48p?%?3xFF?x?VSZ&`LBu#V#cP(3k58sj=(#|4&Pe{ghv5GsgblKsuwbG;bF zx!$zX>yRQ{^pn#)KB}yGEG*jR?Dh%DP$McpRQ>@nk7zgI@b1G=iRggG1dVo&Pryz? zu55awvYWHPK$!PM>%4u-6hGZ+(e~m13X0UX(WYW8a4`yQijc7Nffo$z3ocq{M6V!kZkO zl%yMSx;#Q)aV~B7ETy~#6xPIw_Y}%!zBH^f=tsLBgoUl4cYNg6@g`c_J&4d@1pD__ zEuSch2=jYcSj!S5i|c3^X}`JF@84iXzMCDuZ*MxEn2~4#u^X9@HC-h^GnzCnf5K>o zvsc%c(-*CSrvYq{rkzG4sU_j*p3r4$M;}5X|4z+t+zL^h=u{J@humy)02__joa4@9 zeov|u!o#USQh@ptA-7L-u|kctLrxQX0jNdQa9~HXV)P{=gCMZNF1aWf2dy{EAcz$N z(F)p`>t*>UC~Q_pf4QJyj_N+uA0_dEJ!TiG;c`GP-z08v%?ZJJd!VkXU_T=(_rJj# z`?BeH`$pcnDEpqH7J8}#I8_mVRKHTY=-ejevvW7!FgBg42fB^ovn|`zJ_o}#oz;8( zX$KGm;(il(;CYOfS!q_HGrB3ww9g$L{Ywq8++}2DT1UTE+BB! zmHz03*4@&!0?z%ccGzrRi#kuTD`rt^O?+TA#6pf93|JV=RD)`hS~5l`Eb}m}ekRn6;CSDyza+0@1O-fhCRCM3r`GGSMn={vl>Lbca zzYi`)5XUEx79H#Xi}YAC(#qrb*Jj{|#4NYCyT+dqVg$vr+~nX|UyNQa@fiGptSC$CX(2y~5fb3tVH zmv1q1T33N9r~9i4*=A&IP~RJm%gt%jOiO7PyUZ&*i@#@6woIGC=i!!;_`M%Rw=!=<*dE|=($V_Wbh(m$h%Dp?lt`>NYL^V^ITf0Um#6*Rj zw?O8HROX?mJT)|Dp9Y)(uT^S(?%piw(`o-aJvZ1vbI**+5o}L(LOT@*f@G3V5`GB! z*if#{)e2?Z@Y|pRs4vdNMa9^HLi6C28vGC&*rSC!5``KC?9o|kC!D(*7;uzao2roII=zI?BXW-z_E@thd=<<49#8{w>?gTE}VRGb425zeNld7p&wO&&MW&B#qt&j~8rIa^n>52Wr_yg`yZWk6$LUR;IIJF0yy=FW8gu!@8*adLhYr;@L`t3A$%C z5maVxmSj(U2JhJ*4>xFtyLSN87EbAv|z9kQv~O=K0a##-#)EfslI$WUGG z^$x<&qY)uE0o%ZfvERppixELA{vB9BoC{1@k|5d!Q9+ng?{^<=zAwH~s43 z+jQD#RrF&GbpHK%(W7xGi(%3oCYyo4+#?+ed-Oh#$Z5*M%KT*&dT@OdrkdAJnlgOB;~y2IK2X23hF#*G5P}!WRgOc-dgy) z|H;5=MJ-vCH6o&3)&56XMEu!>_(@Gp(7#?9=$S$J-9B^VswUwQ zg5`|ye617hii$VYfcQLRfE0WeN|!Ic^eWWB7mjxerRM=Wr2Op$Q7d?4r5%?ZpqWfB z!`8(0U7b7qL{hh%ZsI!Ei?JA>u0Y>|dfvtw@ZY63tCq`RgFw?g6^v8X!g&bOsBx*8 z>qR%(^LPr1*w-{vnS*z76!oG}+m6x>U!6|!T&R>;tJVZCR<;7oPfe@k(cHB|ovBnp zJ2|ppnq2Yd(0FgnCl$^$Ll@vud!2qoIu$dZiQGw{7HQI}Z#1*M>wvA$# z9=dZg|uR)7ehw{Bs4U9Jj z9y?f()SK|Y;b7XZL5lEI)~xMxx43B7+2Wwf>G$66hhOaI$-)rEgl5ma{c&&2B|8?IS~#_lj4o?M_d)7EDZ zXy1DkXOn!U2EVK+OZh!>K4{1rS%$*$G@aTC@skd1sHj9?Nx#uZpF4W&=m0CraJ*oj zmcjfCxI7+cN598-wke);B9Nc8VCz{S`_G1K3ojD0OSI>qN00|kyE8tCvW}g5;=?DT z5jApr7hT1a2QiDYmvp)63#?Q?&Zx$3*9Zz0@2DEaVfzOz7g`NW2I#0Tlgdac2isMP zvWML~1{c?AW>h$PTqN6cCW3>UGm~5$hRBhK^iK}-;LW7GeWEdG_wvdT_a#jKM)C2r z@7Q%^%WXqMRoK*zFWc<`uI>%TKXQ`qc{F}v-zl{aYR&BYRYobJ=j5UeeE!3z5rD@Y z$?DhVOF$(j8MbC>_7azL>nf&|2{}N0*WJ!owI%47HCk&3z=UbkICF71LHeusXy-T! zDdHNV!gG2FV#8@M%`2HER$JxnfyEnlg#sA~LlqYiz}5+uwd(cBJpM6#~~3Owe! zV5#W}JX1Jrrf;2s&FVOL^o@qan#1uGl=2Zjeft^TZ-^FDjfz%T)dtMl5!MJrB)ZAJBrrF0VAB*uR z`_V;})eEk{^UJfw2hvz7YTIE%UJ`^%0hW0bN>gQkF2{1Eh3KMrC?K#+P*9YRa|V<8 zm$Rg1jMcn!<$A-te4GLb9&?=9!|Q*{ZM_ z9Uix9$r%ryxkS+Ks6PFb8ri^L57$4G=9Ib@5~(gpap`XYJw%x62n~|Nz#m1MOY9+A9bZe`!u6HS{9XKF-5NCPQ^rq^~WzZK`G;zQd&4&LJElHc4_!Jq{XKV$yG zfX64=-jO{GhzI;aRt!bUL&ZGwHLz~^w zPRLAQxk)b3-GcqVasIH<^UgG4kSI;LxB>~PNffF|9%$iDZr|J_2r_LqgXbuV;uX47U;)$ymD zUlL#XCEHP9(Nz57699b>iUAlk`}xXG_cjf8U_6zMJThK%S{X1k`WdwD=uKJCf~Ms5 z%mlkksL&Kh#x@Nq98L6>j&EK()?L^k8&MkuLGM8baG)`Jzi8nZsh;=Bo^t4#hU44c zi+(Ou|G6Y_$mm~i9Hpi^UZYe9sG(MmalO!#=r;4Qoq{vk_l>e|bKQ$^>#^NCvVkKD z8t)aHt!xjc0^_RZ`c5Xu`;8F-ccwJvKbu*>B1U)QtZpt^aICJ>iB4vcq-eWx%E_!6WZNoeoLETNMD%}n5WO5CF+Dj_o#xQeGq$6sdw1V$0Tp% zrEdc_zCdnu=yjKQCu+E?CU*`q>4#f2g1Q%wl61iALs{H-2xxv%>9TI?i?p@5>G<6} z2$FddIoc?Rk|{>Ftv@c`Zoe|}#!ctJ&n@OyLnDvnO)WtS$q)LK%b&ixpP9U>wD(EcLjWi<;85-vE8jy(PDvy;f-AuUFit!lag?Eh~g&YlN2w!n6HDx zWgnio$W8RbA{0=0dF9n^A&&7&ueD>=+X_FcLC)a*_>0y_W+3wXlEju9U86YZj$b09 zUHU7YE@jxeJ%e9lVEsbImE%c+V@>Tjz8#%wP$y67G=(MJq95PBAD7_+|2@b_4xunH zv{=-#U-Z-P=N{?lJjnt@(UBY@Wn-g_?t>O5j*2Iczl_t3T|zJmAW~Fan-#09UDB<3 z*k283!&W+BJlKVzl0(x=-!$ea8IN8L^ED3N=cdvAB?>+z2Rr2CQ3DDH8!_TeGP99Y z3oBdOzjHV}H6Yz^Z1&Z}cVCY7bn2?z4fv|~ClNILw#CAtV<=fU;PY~xQC`|vU(U!G z&VK_0PvT!*d6=Lz*%JxqkgwsneHQ3ERx09d2hOENw#3Syt{Dc4XpJ|BA`=q2G9^if zltO*L3llmS5;hEss|nrfI8P>MP?T}r)e{xr$1#zF(S9s^k54eyp_odRP5cAusnH~< z&QSqg79R0Z6^TEBi-o+tjUqm?r`5Q;y zijbK;M?Z|Q#E>P-_KNDorUI_T#G%maDISmy1)#AIK_ zP$XiJ?lfj&vQv^q0KT z`3o}P6Z5^*PFztA!nmi$T+}9!vtW*#336tX>@oJRQ}}{crX1GG%R>IiHQOfDo5ULj zAYGldjVoKf0?s&d1EbgYw*a6#Rsd7ndkryo^2G^6yM;`l*xB2%W|@t=w0YF4%v`fs z>p275F1*&_@&}&v9ATqG-@M=LR@=GRrXAz%pyRF^ctf# zR3o%BIUr3^j<=a2q+cnjz1m)3-)hCG8$b#XoD;7P+d=7WRw+q^Lu`%oQ<8qDo%u6( zv|D{;bqsXjoJ+W^O`lmS;A}iaq4FSF2;G^3AELAG*T<2!haA$^aKGujE09bm+E)IQ zk7b(#gk@ZnXwVG^1WVgAB_yQRB;>qU6)4n^^m#)Np=T(wb=ga~>idN}*+~wF#kc+O zvrsg`I4#c0`c;A??myB@Q|S8Wz#uWh!b=*Yd(L;psT9Gf)g#(`@iFocQWT&m13SXtJ~0g z6ddH)>BwAz5z1J?lTPMRP|GsLpGU}^MEVE4QZs34ZD_WW8rDDWg;n}E&7byk{OslV3lCKWM0 zRWl0s8mq9`&qOPL6KJ=z4%mb=J&(L&eJ4&>R{{+1hVL+&$QJ_XAXnA^7P?-3?euOy zhxq(s_2&EXf5V|yR{tv;x*OP0TN{CU=QgP2`u^R$5F~KZ9JKzUfLA@Rv4W$2vDL)P zD`5kA%Uu9J?bddV;00VzmPf!0-9Kgcs10CfF#fs>y$sOs#a4MZGt>BG^DKLZxO zNzVNG*lz4ziG+Z_;NHI=>!1HEF!;etC;V5c+RO`;jmEjp9R1Hx<+o%}Ch)2Sz{hjzoRSG>7XOV?lF|REPj!9mI0~ z*dNzIac_ea0w(4a0vwWje+)jDk)vZ{Zb3O`s+pY7_V}jNYov+M4iS_TqbGe8lGv;2 zZBIpZEF_oAs>o1GfrhysxIrSvPOL^b{+XmQJ?8&#=pxtEBR=l2ssEBgU3+4btro%* z2C+zyqT0QNT^N6QhIlE(mP$(J=HT39mFtMqxP?qb8zOkI+6mHSVdt6Q<$TPUW#5d1 zg?Q-w#1<-!UGwMD#uJj zJY$<#`|3N?gK&Uu(Ejuje2HHWidSAWnuHB}qxQI)^HATW@6|#U8yA4WFq2*e4wenE z6|iD0QtMr+X#HG=pZSLxu^*-qM8EAIQ<`^>bFIS;3=UB;1RIerMT9Cl4Zbx2-o@2W za>_kaI-?!pn1FO9wt3+1dR8=kXsgn6}MTC3-aV@u+?a~>)|Q(GYx91AUi!ttPs1!ulS zy*K~Q@>fyB|B%0mQ*!!m(pQk3i~k4dtE$HNJ8)Q)*TD1jGGo!R;l9lHg|QgA z-}?az!XEqet7k`EpgZp~x&TIhZxhl#gWKtW9g>@qVZGR`a0A&?y*L(-FL{+Bg`|cn z{G=cLFo@E+vsu6)WdcCGwWTh1|3l@4!DihLHmuxvR<^unjxfYrB+qFq(63-A1-Qg~bG-FFO6 zr0PAYQ&(%aKFo(1?C%|+-3ZHx+TgVn*Y#byytq8EX+ueS+z|$=_2%3NRj^j;Ml&Ee z+5lbR2k9*3+MK({vXSd6scTu`m;_ZflAmn?xUI#f|CZZ|Y7SH4MM&VqXJY_Wv^6(s zOQF2A_*7X|)YwLCOcP0?N4*1-H$RcVYE$rf#p!*UacDA)jHVi+*2rl|_TFDMkiiSl zL~Zrdbj7rVx7F&49nYmizhq<$_cZ%3ltN5>*D+~xt8Tdumdbng1MC+ZUwfr|U@c(t zt9dKugm`<|XX4uDXxRZE7#`izY&F;C1z_k2{bb%ev^vKZvs?eu{I+P!nv-VE zN~wHGCH$7zo7e3C5EQ$Dt{LGX%sQG9iRp8fl_9}g;mhu~3#zA`6!TQbXW)3QH!|9F z7nXX7(*<9GEYs2DUBmE%kbN~}up~n70}~9+`NMb^hV&RBZ>Ka53kP5StmB>O5Z&nT zS+{IOFg~*5JlOs)ywYv>XI`75t(F(;VJinAwk*IxF?p1Hn7mH4_;}-_LfNy<;%BtDGeIgBz?1VppKTS zq`xyD&4I@!JDjhP{3g9DA|=dLail%Us94;ZtwG}opDTsvsg zWQ7e)csfbKuD+|e=Z3s*9uAhfbE4`5iuFk2eKM=$c`fc6GuYzk*% zMy=;IkbO!qK4&OJiml$c9N&wzpees1R`5qePu)kk%oszYBYj)fipc}*u3FPlLm5R& zl%WP!#p#2+rY3skzI*RA{plIz)&*)xjcNIczUJgHq;`pIW6-dvYbn@pQZelqC{ z=asIbrj&^h(8R}Iyx&<3?RcngqNHcs4_SHgxE?*0pX{RuCE>M8tP}1K;S8crWQAnq z_ymbq_yq?@lnrT$3Z_&=a{rL4 zDpt;M)GHaTjW+BkAu;OSz3O75E#)#(XTLtr2B-%9t_-ay`tBFXuP?fQHC!} zA|WR#M!1WLN+~E@yEfMHEb^`658{pJ%Ex-=oTr2Edh(YIb$<56kwq6*zrFYKj-88M z7`W#By}?kGrzZ)PCuU}IT+Z_!HO9SNMof)y@SfmG0swOW^)faAdC{X57`)=}HAK+# zK4;N`%4b8@y0*;7E#3LGaU0!vCXf3&=+)q9b68?$lh^RSH z1~?)P&;NEr{0CUhhJN{R=^IFS?;PmuzmjrY*WMiala#x%beKF4Cl$mt;|%AKUYqyB zm5>h#tIFIQbn(O&M=&)4ls_cZlE#)8BfbRJ9n#i&)jUvf^i#R4tK;sMop;hl|4!5G0R~f?c{7uAjHj z`{ZH8uAwF!%28j*r}(dQUY*(N0StvxC0q~nUqlg0WWVfejGqgc*NX4hdadhgVq~s) z+_X_*f5W6Z{3|uL1p1`<6hgco-a&PwR zn1osYK%T^bhL9U9ckHI6B6u%GI;ip;W;Gh8Weh%Q`k^374~3zh;g!5xxd3Mk_!nNg z7_K{SHCwgYrOtz@8)C*FoQ`K%JyIQzEojLl-JMIx3@vk;sm3O_`55W3$i^ z{Byb6F53K!=^eJM7Ca0xQC&Xebf3Rtlf=gF=v=)b>vHPTKVf>-#+OW*&eaDynxhJK z+scsG&Q@kBT6fI93_qb(d@OwTwxS$Gf|0ydf|XWK!(>*);l$5;W99CNSt|o?$+n$~ z?ppEXyC7RSq6p8&E}-C>9Lbr*lAAo|Wum^BU}a|K$PX{30jNy+J3|N#rs4G331HzA z$wkK+Xb0!|a<*<_PA@?4X&cP25czAT-ynVxeCPC-1fTZz|0o%XNxnV9(hKzH4DmqyXwZ%vk)@fKI~j3U|D}nB900zFs^H!z;ZOvfG9;bKCb1{Mx;fGO`h+t}i(gn08f5HMOe!;hx1C40K0XpLU1l9y`5wI)&`~_gNQQRhkR?{xOhQgvY?l+@(?XWEZN=e*By#NROt4ln$D2bIr?QD zbqeZ9pUnlvN-#|-Mb~`q_>A+um$ztotC*xTp?3kn5 z4{;qEJ}y|GGN3(nZ+h)RuDkJbshI@w9Cs^LL^O;HSojI_u#OlV>4!P=tH;OK1F!e? zsCUZX)-ubkgtOA2D>kO`$NEZ`tGAu04IbXZn?MU((SOmw>Qe5a>ZD}44S+yV&O0U7D5=ZEhbe}6iNSm&j!uRm zh^~28a2|t{@Kg!TCtXK6)g9Ae5SQiVic)p<(}TE7ZsTsMXC3ZwwdcuN4Da&RQMx<@pE{lgMqgZTg}uCu@KPeur4042U`HR>KxqGb)?I=ZA}% zdDZN@5@egahG|}ThKlJ%N=4n&Ezdpn)>iD$#>6~ACb2io_K`K^4S46s<)ERz(&rWn zmWD2y_w0_mt>|fA<@PQOTN7lb1vwqFNpw3MlaXYVe5hYVoF6eyt2iT3=8;sm#HZL) zWfR{^eCEcQTpr7Z>$-|n>LTvHnLXGL4cEYtyIc|JNBcE{(U+(0LQH6uc?xQgR9pfd zix(JofF3>T6girLW2YT<|6Km1VQ3{9W(hF#9-@4a9?E zBHwQV56m==W+BYS4xeZ~x<233J2LiO9`3SiR*@QtLw(^4emtD$c0a4izSCY)-8ELpZKerIXHXx|(y3l= zR5zp1)CfKKbg8F!o%2tlgn4(m*iAbdlu`BmiZ;>6v1*>fs8+NFZ@gVvHfgNF2hc-G5ng{LSL7?uI~j9p5;)jhY% zv?^7nx}RAal%qPps4`~+Fk|)4WykBLZu`!?UV)SBs(I|JQ3SFU#x7RR!_@Pjk#8pOq{+fUA8J7OtXy;90JkTFXC za!q?LqC0vGgTWJGc z1_|DKKNi>#eJPjqW}E~FtV?{2)l^GPV4VYFBx6xUk@H+i=(IjD=j#2u!S#&&IsCNL z^JTddC#LoxAj7sdJu+#Dr!LuHVn^zk-rKZtuHL`atA{SSA0l_QeZCW}B`6kVddvh2 zfAA$((}^*v<6XY+#OZG-4-~gzM4xScW^MQmr8p(!{?uB32Ev(u+rg68lzS4zelnrB%b>19 z1cuF8Sive2iE9B9&W`ppA~>ed#12H1$mztn5aR)!(I;JMZ-ZLcy_*!sX8-wUM>CGL z)t4tMZ=m@5_<=Z8=DT6LS|1U362(T?S1}!Pe|AD9V-i^ywo*p@x~ONNuXvoW#yshI zXab^G!qv(%ep91{ZmebGU|Dn+eaba1$vv)OEKANAmi|euI~Nbw)lyS9 zYI{+v!jsP=W-p9GkNrf8TY~(rnnEhMU!-bd3T*e8vokX^4{>gTK;u{P+wN~U zR@EVBG4Mh3A2g>Isl})4_!-kzpUC@tvjr5R?SC}##|0DO0=8GLGst{M3`rz=ODY1S zu%o{eLZC)kBHL~*CVT>X9@^~K`$G@=>T-m~wtpuQAoY^rvhua74{iGCse&v7Sw~+T=eB4doTA_M4O0<3_j2`)v<^&r2^8xGC+jm3)&ZHxWD z>T|UV;Rfo2_TDW6`B)=@xu%+^)<|jvJah|rQw}?;f-Y9B{4vtp*ad2e|~eDv4t%LJ4cNGY8u zeA0_&PVoDjs*oH3!R_ieGR{CZPJ(kGG;qQz9~jhaTgteIhyK&*#UY7m#$e+OwS^;N z9j_p?Sl9Xx0w(0SJtZf7ziO1Pef)P?sX>GKm@yILT0CP3TSHCtrwR?HJh5)CA~$A@ zvkrn2S2UVB8LKL;ojEi1jUoWwv4lh0H44|2ki%;H4+DQ%mWseU1u2Dh4_JeR#+mj^O{r_cPoNw14_zeTo7Lxku_jad1I zX&sD4ZrNxFX4$bHvaUT5K#j{^7=M6fw)%cRYJ=0-*^I<`i`x8*!Dp=A*4$P!#D=`* zhz?KcjEn9{f97E@4!)(3(mdC8Hkw*MW(ZM?0i_8mi>BK)bZgCTL8bbI@zOS<6VL|k=ZAK2^x%x2y@8A+B#4YQbrg>hoYdsteoZ{sm}m=Lq& zLa1n;Z@zDQKToh!?mnPC;nv(}VX~O#1WQaslVNX-ILh%{t~~+!izf6B`KOR`(P)Jj z_QJ@tXAJ%E>_z;ax)^Jc+O)f7E4?HQ{Z4c+BhJMMQ2bQI^Bp+0$USiZnlP`3224Jr zLBV51jisl1(R5qQfc2_5P=H|7@M<7&*5jNQ(3nS34)T8+^9|p-19iNoCLT?D(t*>i zoZ4Jp59x3ODuZ!!X7#LUmxln&V`cjxf8DscQ%HC_f90E{C2+EV=m}b5_mQ!_+9KV_ z$rT)%gknQRLGhsPHnC!?KH^SdjH%#+4po3ydwh74G*X0gs$M$}CeFo{4EcT zv|_~nJrhhu4L6EMORyc~y~;swmhx;GdC}26ct|}!%|bFp>E7I2QD)InEHpu{FP$rv zWQkmT55>Fp+*H@5!RDS7Z1Oc)mGo0Q;W8FA5esje>#1@CMGspro+j zBzC~!bkvgo?)tz=Hi;>kwH||qOmXR+{MiMbn>xwC+q4_6tFNsWJaDXpbV_5; zEDIfFDTdz0)!gmjHVnJWoUrz+nvpYT(px7KAdxuC`=-=)H!}8L0A*GAB(A}iHVZv; zuT9op7^!@=0rUC3Q88+I>TV2B-O3jXmQt*aDlRmwQiIGv3zvL0E4vs|Qkw}~u6k=4 z=qL+cDFCHP#c59gOx{-@Uz$71<9x5k@Ut zPY%b&KtL;7>>Z)8UKtYcz^$%KAgbim1-gB7(p+*3(MEARIRc(HCbP16rqRSsSu8A$ z`l9g}L;Q=nNPYf=4r466a$qFZQ{|woz3$8Sa3QnAjwM z^v2K^mNs$D#Wso~@GifuaEBb3a^>Qsw=zm!@Y`Yfe8TbQ^Cs`~XB8XIj@h}Y3Oiva zxN~Cycb@`R@LNXOL+6)MfGdbJ^M~G(aM_TqlGs`yHG}$Wd*R?3A*sum6M{;%=?zK* zb|g+bDeMSn(C2GUcO87d)!7R$>YDb@H*Yb(Zx>wQsZir8EXhBq_9x%AcSrLdd|OU< zyPY&%`HeYcs8KN543iVRVV21th?h>wsaxKkvcM4Y!o1-d6DQq^^mt<+UOkJ^#K+;o z;07+eI0-xy#!zkR%{a;4?=-v-&hD3n}ws^9?gTSE%_`qSWIbOAF zWx6ydJ26cQlo+(XF7mB<>v!=j!NWX>OBEfEJ-PK>XGm(5k`LUC`_I<$&jtOEZ3fX5 zQ}riLBun54t#u>hu7ej0)>lxu62|<3LKgv5LQP;cgF$t1Cl>NK^Qt$5Gmurh>4e+x zrG|rm9N(-yTiQT&5=zFkT1&h`R^X%>v$aH(8}z5RvEY!u*QefOv&_x8sw96EmA zgi1P2ho!00Q`{zTLc-@b0ST|Bt-}GkgAbyar*W z-z^{7<;b<@4Ax1hQEn{5TrAW0QzNyq88P+Bp&4r*di3l}gDEPmCb{Z>>0Y~h&)E_B zeNq5FqH=(AXpygh8*e~qLftF#2}}2x!uPD}3f~c+3ZM_J=pjwkGS+heLB%u%cX8NB z*J7Awkl$qePH-y9UT;Ho7QoU*xDV2BY4wk}3;{ub31Slc98PTAhpG7N zU0$4zU&ZPK$Q-Ct*V5z2pnN95!jT1K(b$my+<3~05}&4SCHJ{%J$2N za4qjXU-s+msa}xi6P6>-lmNFOyjVk%)Gf;_{wz8rPen*z`XITmi*H#uo~Ax`3#W=4 z=y;|k$jMlp3L+7uzu-Jy%RgQt)rBrL=)RsnhTdxm=O+K?xAh%f$qA5vUh>K15F1s| za$rUcSU^m;f^e&8EA8p#*@_@F9Mgbs6J|9Rr0~s1fcQ8mN5y@ax4Ji5We^>*3$UKj zV!IVSI;>90U=R>Q!xdX~wkOfzR2m028v7Y`Tivm--lCses=b~}w6AND@CC}KtrXOLg4eF40SRZE>zioe2;YXYI=}Ei0F zJ%*PQi4K_8-JJaGlveZ9|9$DnqM}`Q%Xj6l37Q;ebW{XojZ#MY)aU^=cek5L!jQKXg=VIcnD{ z2Z-o}Cl8qI=&Ae8w+qZx{6h>;T~?(u>6%9@;M@|zw97vZoNDGL*Z)sk2DcdlqK3)< zAZjQMbA{pmoy(xi0UVAqcz6yU$fmkr)ec7DV0Ccg@)zkvz9#b1*Q%-?9=zBpJ|d;% z1cd0FM|l-k5>#7V+2kJx_C<&9mf7rkrdR|}Pshn{cE7JGSa_}X8XPD8uupr#X|i(U zx6fce*><5q=EK`5=h(*)xr$-Hmt*U_yr!GUIfdvjSn-?ikk?#^MP7E1!#W}Iew(i2~ktE-Q67U;k|2qLI0!NtnLc!y@!~m{{rdMAiu5 zP@3kcI6|~T$+UFvlbqL?xtyrs78uF}-_IQSWViaYK&jB57LP1U`b^xdFCYRc*b&ex zYT<_v_ak$~0WF7%gQIthneT<7q`R-%L%N>%97haTegCB77Kt-&i3UtPk}!{IO*)0k zV(%1sDZi_Q7tmIEQ>?Z6?PormkRk6;+GXi>C2RrhD$F1GinM(e@TZ1& zzRuovY2uXMNz55e1VLb&+`uxeOzmWlnUmX&XV_|vQTl{>&hKI43da~N$ZrS;F;lf% zpGhJsW1ShmOU8+h1mfkbDPLpez}(aiq}CZ!A0UBJtiOTOW4OZY1ou_9je@%ExKP!A zITc?uKFHHGB97jYzl!$l@EBzs8T#R)cVi&A-Mznp^GhQNZSU!4yZhE%Z(zS>HzcIp zb^Z3>f2c7$+B2{`%8e%P0TRg;yOM1VkoyO?5BK*FpH;dzE(e_qE=4tdB+UB};I(u$ z)-N}gf#^RinG(pY+Wc$Z?jv*7=es8Tc(rB;&6hK8lQ;=``AOn3IzSlDY6A`WiVt=_51s2yxqvYO5v%nP-ImT8nz(KtNijRO)zm69oN|K} zWp9(x;Mm{a-N@&z#+n2O1sk<%!k&2tP|x(Cm-+O3)2A-1lok{SukdUrkDqZ*IJ}6K z`doYA45By~kV8Xe z&uj}4b8pMx#1#j=v|A}a^XXCKmIsnxbsl;aS>f=g9s(m)1a%1QE0&=uAHM8y134kb z)fg>%c0TW*%yJ=G+***PV}0BbQH+f>aF9+P<(BTzx(l%&#f=+mCYjXl@zI41i)X23 z@wzhEpN*Wec!FD(*7DneOZ+t7Fw3D=ro(Dkiu(mACHCR7A%EKjR&;D}Mi)z#Y@uaz zAo&Sxb%bV=O(Flli*OC5_Dr%!$}j&+5ulvx5+l|lAQkHF820%q)Q0QcqhAi z9T{)g%6PBG6R=<3Bh6s#mL(-p~Yl=&1ZRfp!p-)N4g~ zB{l7p&0pw|_m!N2mO6J4IyK)ltzdrw?HZTtB%rQ738;@~Vm5N4oluWxClLu$9FFf% z0t8q9joQtHv#;E_vgXx&UazFDNE-qbHhxFik1wj0{a;!At)%*Mue&1u+3zn_d8o8A z7HRbl(b##5E8$AVT2f^EkNxBxNCDdc{@_n5zT?BIUpaQnoA3EEdYwu89bqnPAEbyH z-KpA09K-(f+-LC@837;-1+xRIKM9Rro@`MxwbUSIjzaT1Hh-mAx4mru|IK$TocJ`; zcNM$y=?W)Ikqioai{oX z334$e>6bFVEXT2)s=PK0SPMQ(P-ZmB11bb}q2%FlFv~=s9yoc9YIFtP-cx42gjVFX@#rXAy4<_>pq5nSCA48slr&T!n&`4rqe_JiO zKmI%TZMJJG_zj(-cdsa~tcFyaXZ8Fj^}A8rn16|IBXm-ia;9}ho^-y#I=3CS zr73>N2GfE_AA=$3Y)=1&(Qd;Ic=Ltl%1+=oS7)f9+|OA9^su3y8OUxk_yB#}GzhcS zF0V=9$S?2h_=$puvrLu2%_=2flM`|n*lkC+t&LUQm5BdiSGxY!nC`J?53b~uE$_>H zHGQ_BpLn%{!Z<^}{T}bqcPakwy<)<|KutE~>QBYli`n?9lD^V4eP7t zeNVl6*&w#VgA3(7GaJRy@`Pmj`;UHAndfC+?lwvvwI~yBJmzcFaR`7j)(p$V*zQf( z_v>QYNl5`W2;!{i3urgMO-@`ey_O?FO&hxmt9w^~y``>`q^ThimE;HIFlu-8Id0!S zxZT`>riRdjTmjK!Mn zo%Vxn@3ld!c(M1qzYO9)XOX}nqSYpHMMd*1g3jG7&bm^++RN|v-OyaVyGt}7&oe46=30T{o}0o6+TJ7HVA1TW6* z-uZKo7aDBmw~z^s_ltkn#p#br**;tvtlz5G@{gWzK)C!rdd3}N9drE;K{-YXzxpP`|XIAP)>}~gi?4~1%Soi&ZZ$$9y zAC+4`H8wz^yrOu^boiAYPF{hmK%#tQe&)$t{8v(!+zVXmIbJZdoX(q^;Lh^QZ+rzf zf>)O+{Uv!0pfaq-<|NZya95;(!Yw6O{;u=}J8BcE53@~B3|3ccN9mI7H_UNWyy)3e z^Kz_vL}Qy0FtVyU2aGEW`+v&%56t@!( zAtlNJUR~PD$IUX7+G$frQnGFDwi^Imt5YKwb0&*d34k;|HzH5 z)ER(1Il|w31~F`wZ^$ovv|-OCBRhg=dXpOi6sFpo_C9Xo!*>JKJ&^Tj=dB_jK%9;? z=jM2m|H}>wDy8tQ61?hTEcXQ{+Orh&RbDx-H*pL+6|?4yJPx9BClKwzUG+VkLv`hK zeB%bVCmRIO5!svQc}~Ya)6zMQ51e=U8%0gkN1iFDJ{bqZ7D4S`@$41AIV$B%$?`Qk zRUNd={agFa!=ct7e!a2su>kTdVH2~ZDoe@QB#IwO_Fy2J3_FnhjXF^6;)30{ThmGG zG24nQzOelfTNE=AR{0%T6kzRvS2S|-2HsH3|6Sq)dlJ-EBI{8nWh*4v#&4gR3~A6% zy5jS9%J=Vk63xu9=19q^uv!hVRo$W4%T`@lS6OTtij#l!qZWzVybkE~hM9V$z`|q8 zFx$iMyusV8J4YuztV9Kx7PV%ve11tsz~}&^qrKT3n8os}16#BFXz#y?10o_WmRA-p ztbM@MS{`HFxbs&_nT+Kf&94`xmM&Q@kT$?(Yx9;%3O{ohfF?#}1CE~C1m3w_#ViG6 zu*&=7tJ+O_KZ3kJ^RrwC*NwE0r{$%k`uhbk`9vk8B-77oBVrVXCd{aKAZVFEX@n+c zEPUTqSG;B}t0Px`xowzPSLf1GINYfl>Z8r^@cS}YPgxeSoY@KRj)Pg6$2h)sDjAop ze%*)0_=o)wvlH-|9stb46l>*<)24xK?{ZSU|$r{y~h%Mq9^8}xo>bJz2$x&v!= zP{jZOJje0yl*FFsMZoSy%Mr2TQrOJ(^=h{3>teGjLpRwEuP!)Xs(~UEp^kpD-!1JL zMc;$$*J>{n?3_%JHe?wcic7BFnb7o&)0XXb8&E{iMLS zmcHeyyoxaszmp~#^p>3X63n{4y}pN}vD_91T0WIr&*ynefoaF{kGZu0_w54afRY~j z0+8W{$t%Wl{(HKbVTdrZTPE_>3s)BvTZMlAQGYx${Ddsf0LgAVX+5@`KsRGQI#9sn zqkj#ydgUO}CO7V6-A}Wfk->qqv(?f&u(ruXb@H=j#{Xo7QztJZ-fgdbCA+b6C`YFB z-C0cB$=7J9?wPv~8C}nuX2+!QGm2dO>wI|^Zqj5=5wUUe&Q6BHh{%u)A0fdP7130~ zKa*S^VU2eFYG)0EnR^;yRh~a7;nT9@UYmY)HS@9f5_a(Or=3#0Y;|7mbx~^^5r8!f z8%prEHOs!2yZn4K4FacWc-SNzp{ zmN#|3<3FGVUALYzoIkHwWdHGpM><#5jNndY=8M~evd9m<#EA1ShzKNgbvlg5QC&uN zD)Uch(rbOE9ZdNv28CbU7^+VDj(xo89UQUtdoLeHWe!aEePH~Y`u%~ZsR z_`CK4=FRh-YV+3k%wvn)@R+NGZtriR`k#Dd=1fgJ(MJ+#=*^$EQhuF+Ki#LmHo z>YaaY!^O;C%Il54Vyf@tggg^_uSM*^)o`_ME>~q;VNb5teG?(B_A8bmu>C&W5Gkx} zSoIyVu{c&muHx%HJ7PE<1=-=$p33;}Gi*yjGE~@lKq#LrK6up#+Z=8Ofr*P9A z8eOlVINskdGz8afsh z$PZ_aYAs36Z3ZCMR-T8zCVAljTJTowaB%3?znTO7`R({-%}H?ycB#>c2jV-VSYqG* zNH$XlVEfm%aPZ$141P_-#c%)OHSu>O9j+_M0Ri=Q&%op|o$)Q0Hr10{$|gha29`{QV-8&|dAuFihU? zL=A5<^=IWCqP-?(K-aR!8Jmo11bn?>bA4$k8A)F~rxgg_k^j_rdf^!vu$(XUy#E1?^(2Y2g`~zoE2!QIs;`{Pf`ALv!@O>#^>khp(Ji|2z4yt@WNKcjaNTQF>r9 z0?vEu<(~9AFP;Flss}Hveh}YF2Hf3aqx$=rG}cO}1wh%TZxNo-jcXg#2>L>S)5a>0 zh{Y(LagS{poYL7iM(#u~n@uC#*&^V7+~Ahy{_o$rfg*8N_N0={PO;=g1+b|%X|zDB zp^PO`%uY5wI^9#LOi1#Zy|RzOy(dW-WP93(CqL(iTb?N@dE>L2`4?ka0qYZs1Oq? zT>f82MPr2vduLlrt^JTViL9DH;zsA<+(3BVNcOU=<52yLgr1;z4tMT3)b+ldew4IQBGN4 zNC&|XQtx&o;ZR`fO*M+8gcx9YR>)_S+!!&-mrfV-^>xqJ$%ksJAh3MZKFtf=>UouF zR40A!;Of+oXkV&#)9t9`S7`VVsJ8ub>CzCxTgf+~|KjEVuJUF9@9`)+8x|84)#`~E z;Fe6`J9Ae_wFEIdj#2P=ofj67<#W4IKC2rbAaAu6rI-@c)#^Wgszxm(*bs_Bq4@gU z$GU+`=!418g34u5fzB!T8N_W$G7jCLbTMTHF`5(eaygdR`pOM31lDojubaz=$@!RM zd9TQwt~UAFAWzdlPJ24aKsYgV{YR7@7?m2n^s?Z*bUn-OkSDLXaN3Vq(MkYkjcirL+1qQAQHJQZJ&9$E z%GdqAKKO~0%B;^3y;bQ8cl){E={S|WR|LyQDQsCm0jJxrm?`gQEe&;t=AgwMVl6)! z&$QN5gr=XQ|I7dd_x)lRHs!83JD>xGG(urzR6#7y;J&e2XO=HrHxFe^i{u^aM@jv@Lb+)cVxH7Vq`Gq2nFqECzC9$r_Y!gO1OZX!JtZCZ`h{K;4N5Wupf5edgC#msP5%BiZMYH{l4(y^s%)z@W%G{4#H&GbPddt&TDnph7c zEU8d-ma37XvNsw6#~OLssd{ClMi(F7em~M+Ms>YE#5ES_900oiRtNN47ofdwAgvZbqWM&dvBtG>jZ__4^ecqV<0O(Hwg~XtUDB8q{o@8d z25zt`=srC$!^Ow^g*b6cym`{u?7(@Mt3oDyDk7Uz>1Q84994P%Y(dlx6&d79xjJak z^eOhfG;vn7y%RhDu{&jqLfl@?;IpU}hH*;2#t)h(Yj-C*naFJOc7`e>Ti*uCniPR+ z<;BOR8d^CDea?K}3ntp_y=i=$QwGvInAtKqwMfc!CFZWF!Lk}&QtS;7#dBwXd6@)T zR(LiUMR@(kRl{PhX=5h_Ijq zyBB%V4Z)t1sNY>3I>XAop;9J+T%T|HoXh6hT#Ayp>X&o%#kXsaX+vq6JeRoHuF-G_ z-|2#`B+!>L>_!-~$4WVX=OiIy{tV^*q#TacCyn8=kjK&2P9}&TdFO{nk82kc{^CqE z^Yv4(&=QfduY!|Sr>$lTUVtkDR}IjlJFW9MHekipdvLUS4C5E^!Scd2*#9cBT@`e0 zxjR)lv#hk3>y9)@sop#q&0%-OlRL!IvR&x`{>m|l9pmB}4L*~sbAY|6szeMS_YvNN zm7A`zoH}<)*0KWSYvc(96X}=kxV-es5?k94EjtWtEvm%L`+f#{o8D`VgC%&01dWmu zigq+|*9UKeCUk;<4QS{l4*Pn&O%P*wuXWyDAB-VO;yZ{r%ECxuF%R_DQI;jt4QQv? z()>1_a{nc~p#-Q{7gXYcT1gMFZ+s?x2&Rr_zJpijf;4RgRr#A!I7+itx)@PAnrk-* z_HG&P(eDbyo{ym`>&SIJ-R#@UZnwfiVdzF*r+HS_JVl{u9OWcLzlVYD&{ib$hf;>1 zkFmZIW5_V-85wquv>?J!CTK*;>&foXt(uW z^})W&37zmb8K`2I9aMVxRDsl~6+i4IKkJ6RtWIk|K6$lUUJTlxWb(OPtKMHPW5 zHeLTcGgQ3+aOlDMl-4OTo(`1*?Q97Wek;q^9Dri?j8d+~BqMPAB2- z2WkaS{Z0k+!0lzD_(HDn`cxLgPCWlJ@k!dT6&>%6Cxy3Y4`^6=G^7;g+f`R)P*$nZ zI1C)VS4rt=(^An95D+Gcri&2VAmYUcRBe|vYU^#CvPf!EyS4pF)r?yGquzA4tH|K$ zY5iR7tiIMH*zMbjkv`q`W))T0YeQwHFWtKU>S?}iPtoT-M~&!L9>&HHdj$)}b4qk5 z_R&iE2p^0BIebnv^vTxg2&Rlk{J5lM?}iLr6DgDbtqKDh4`7k+c26CIbaNJQKXn@g z3xPVy28dgWjj1e^0xwbH;%9G4Q&M}`O1!SNQ!#GU3T6o+eX1fAJQbPTi)WRP@S(xw z+y;HHNyj7%wpo;w=-{{$o;VjH1V_F4n$H)Re2j>n1zRmup?#`)Sf!(0(04w*(tysbcM2u*`ZNP}{(0y4~p33jwmjtr7El>TP@ayFRyzJXTNpr-A@_6-q z;y&BQj)+>k4{(W*KPvT4KMFWcUU|u#ufK3Nn}s;36@>imic(hMs=oaD6bfAS%@H6* z@ao9POwIRd>%#i{`Dqm#Lu31GYKC%$jfWSZ@fyQ_zp$~ei0$Iu@%{3ZNdy*nvAl98 zJ|K#o$TnuL>_umNb7J}#Va{S$FaIm3nzs7qZ<%jrW#4v0ucl*ebFj0s$8Xh(rAB;7 zrgjI%@BIn@*$n{Z@Rlx+NU_IYeQmCCU@+ADs`=h&lPaJgB>SM>vz&$H3g=Hi`v(*B zdvr<#|L^J_GB4!6zlvTcp-wL$40 zU1c{n8PF2^mPg`41)z(-Z>xDcx?db}vT%G_T%R$w(Y#2)f~q$?cTjk~ZM{^^kgFG0 zt!$Q5XB?k;aHdJ}u^PFeojs+7(VrTRwM!b!Ra zaq`Lhftt7+)Zt<%QM*R+*Ok%QuRF4UVmb10R&{8`wmA-*aj zJtg(!QKoPqn@N-r;quMauGvRtsxWG;R5*J6A!=>=fq3NUma9|OWyp3mMwa*mXT2$- zkqN1Lqs||rP`8Vm6tT%XgR{P7-Io{T=ngl-+7nQ~G=8%K2=~Y(zL*%jdhXf$eZ!?# zMn;{M*h3aW3y!s{;yKv+oi!T{W|tKI7klp+)#TRwi&8|l6%hqQ0UIJ+RFD?10Rk#g zq=XVABF#t#2?P);(zbM@1c89m&_WLZ6(Su&34|)4w@66>q;MbhySMK5-234_&bVWo zFK2xL9>~L7bFDSkT650d{Bd_|E3r|{*OD1j_37pmiH3eH;^^9abil`y`K|#T z1-X=yZBZjNZe~)E-i5xl>6&R{Nu9?kD*SDE&BS>9yTlqqy84RL@68ThoB4wzp9#n6 zjf^yYT98PQxBbsd0mkr}o?TCaBkQtv{>3=Pdv3D+ligD2s=+!tC@Y z>Lx5d2U#K17ePVeqs#CjpEu;}D#(g5x2Lcl>*X3x_$>yYkZXIncKc@YYwrjV+uKs~ zR9{p+a8@BRj8_M8ppohIytVSIi@psLS82zjj?1<7*MdDGKWBn~j?BiT8XJ@58$|)k^;Hc9Wa# zJ>!Xyj^b}dM>!Xazwq-MB5$?GEZJ<*7?=ucEZU|?W@(4!W$ldZ&({+<50+kD91XoD z!4Gd2$lN%0r0Cq}vA48?r66*b`!DW8lM~0cp;0u^;cPQgbQKGSJLED-&H*rk1V# z7s?xfef>1G1bNwga#&NeK2OO;UBT1?yOFr*L7cDdrYnrj#ugMx$s%Anup}+EaYj7N z)N+BZ;Y7V_C9S1!g6W7*Ra9D59Hpm;Rfhji$yESPf#`>+b36i^> zOc`)oIgIJNnYr4Rzi2!+;QlS1%$xKuT3g z7&S?_)FJC^lrx3d%TJ4|x}N zQ-8a^9^D}lEsZ8A7NJ{)zcWvi@BA_UjxcjH&N2J zugLjM{bM*3a*@!b3|Z>vijqZcAz>-qH|8%?pmSN_YX+TQzd3gnuDotNP097^`mMRS zZJo->U^6?)Oa&}G-epa;uF;FtLkMg!g7F8;u z7}(KWzpjonbry@TKGm*bX}Q!wq4fI%De5mhEQ}Dl{VmjiwVH zH@dgen00N*cOlXI22t>6l|%e!ml$!O<}+y}e=Bv#U@;+sPS_?k52DzGIO?;d;fGGs zgdzU}i%x}gPwo`Tq6d_kasc07FpKZvGbmaU+w&tvP5k*$)t_UG^s#$4^Z?2{3FTZb zlR$xsIV@>w4w;UGRGGf+iSpHl5;hu9+S_Z4JcESesk@3w%I&+tKB3pJ9wir-EpufV z3Zbv-)4m8J`qA#g;8>Ky`uWW}mUL!v2B$@ZyO1pk_7Xpm05JFF+AL zrJ_+!Jy{pawapazb3RJA=SlmY7&YPM8F>p;2_vx+3PA1W=N)%^*sk|AQI(x@P zYwkKQ+TO2~C$4(Bcd46|ed-E~eM@%_tD3)Z1HP@AI^Mj^kd;U){^}Kwo-%nag&YcS z=*ECyTh^NxeyZZijrx|{KT(QkTiTxG zIoy*e%31eOW3t1|eKcq_sBM4%O(~uknud^j^kI_1YY1UsGsP~9T&tuAEIvnBM;IhQ zx4}-sLie||-joRfYFS3U_rR;@EF_^VqLMPq9m;mCJgL^d-33+YSsQrNyy6l{p;#_+ z*m(=#KM|lKX{-|bhN3@Xl_8<0?_>@S>>;;8JD=buH7KOVPw8e?;G!hETR;&(m6DG9 zh)GgF0Af+va>%7?#m!{fwA#FSX0^&IWiH}_rt|zIl((4w6i`Kc(Y<}1E~^147AEdl1o1yTqmvC`J?;f)R(S-?r5{Qi(hjfM!u*nc=m>nu%j z6`$!I*sYw6Zzt8$l_f5Lh#$gNvt_TE3V|ddf3UISHR$L>d`}r7^~Vk=HV5nQMdi1L zV!el!tD5*@dp*nhYD_O&N9%%gEa$U) zy+B;PSsGdOS%LhFUc=smLNOxkM-o0%$Rs^re&ZI@rfua7P5gnY`|!Pv%b*$9iak0& zlDC9OtwcF=9T)GEC4r|uracBd)-!~cMet*D4?L(ZNio?&a^R1e0wBE(YMm=Eb3Y@t z^CoeC=Ljyy{~hbLy+|7*$n`kxu@fW>6_;N*OeRP}a!ZIg`NXWWOxU_mYER|}#Bfow z9+XI6Um^kEiAA_X`gEL#Xa}Py;UE8CMmaD*^H+L06~! z#dk7$m&CLzJ5_b%3VZUrMB1tBds5L>lSj4;t!g${(u@!anA1W=z?c3=6u#IE#sOvhLTPIW3#Qw@lUuo<&dl zq1h?N@u8y?C)=neJv)6;$oSZJvaz(U8bo!%+&5}vVHWTloWzf9Cf1qN;-ay@h*YfO zkGRWeLX*V?ah@>f!m}$L>;Z5BmaZVxVnzX!6>vHSP*!rE#ti9cYEU{(hI0Nz8e%>L#bu@xi50@?P*9W7DJ1dVRQO z)~8Yj#FhAhf>%U5qq*Op~I}kA!Pk8`z_d z9N=mE5h-dD3U39+7G_s!dXpk|_%FKmaK3o4(Zq*qYDxo^r);WQ`)xtla&!C2PsE8h zz{Pw!{>`xImL$5LzxP6AaliAz#5zf0Y~oe!WnHQQj+aCSK2;bu^9jD|BJT;Y%0Q`S z)9yF$CxjP_d`r4N=S_EuhIuRE6#-M2gjysIXA~0EdwUA-cYJ%mGoT^XBGCU3Z5JDd zS`PKR#i*wcptyRYi0(I=M#MN zSV*Eg(aE>u?emjh6CO7a5IzN9w&A(7u@==I*6(9Ds`SK|aNfi$cYF`v>8^3hfiFLN z4U_;KT@s!7D%>t1GJ><5j$jrnGF(b~y+A{^%klpBDpQy_Pjp^+L-Yu$Qb&r+JZq}MZ z0WmN5m6ux|Ae03O-`K5USc?LpcP(Z1TQxb{ z^SgB?dS_50fk6$GkdXD&dw2cO<ICPdNi-F-{8ks3BPJo79cItS&zjs~ArL)`Azs4C5|E-@RMPq(w^@+ZcMeF&qjqk_Fq{#i^2I%+nYLk(isoG zV(OCY{zG@|c|?@>8sU?BhIe2=5+y-kk8!*JgedoJ{X?aAJa$!aRe5F+9*3X+cG;pi zw30N~2rHOL?71w9_GYd!H?q{UteOhQ#7|1!o%;j)931H&eBap~VHMsf!Usi1C;d%E zg%nWRqwn|@T@=2K;?rAI^Z*r710M2PHh(dkaR$v~NRt-Sn>T90pz_ltbZSg~cjC-Y z)d;HJ@&wNRFS7*hZ>URZcKpjEEx!qF+duF{ekJ9AF}Ge90Q-eipCC(O(cT2NDhf0WDT&PWEaA1O;r>(4cLL^v&t z+zS{SVuJ%Coy*EpZi2WRpa^Ztrv)HzN^*R-umpHUN7m6m6n5#D>5tH$U%fM zF1TwN3u?hT0j|!j5j~eVWt}M0Dnbw_h&ZEQ{0?h6^qu^&wL?wSG3y_7UDA+;kC_WP zWFwN?ne!v(p9Fb$v$nQB8ldL=Oe~k2Xg;n}nT6g~sizCm*6!bt?yI0p55>?*^}vY<}Onq2^I%;FKh$4_TO66~H@Uk*q@E?Eo~2 zRUj#Eabm%RuBeEAlG>AXJ_xgRAJBso!%DRTv{7-!#oivU$aUttD8}itkvj*o%aM@g z1Z&usf;btwLQNqN`N+2xHWWP>c_OY^W^l`)`F@|rK(JJ@q_8*E@XAeaH7%VO*7t%< z^NyYm69=FyAJq!JZc*o`%Tc-O6YS8{!)rLxNJXeYo`|SlKxw(F0;Jj_l9JFGBfs6d zjm2zcI#@@NbjpCx4U}+sew9 zwarf;!Rxnc%b)7xi+J8?cSZXkr7e*LV{eG_8D{n2Vh%_SO)T|7;GI^RAVNTzF09)9>U+pD|qg;(mM@@~$6teE6ys|lq( zN3zfsr7?xFPsH?lz9FVw5-f%cusTfer{U1Ma@Y%T(>5NIp@q-A$5K9uKEE6ar4~Rs zj4!)J3QMdHo7g&2&ea}MS!g+>cB&@3-SC4 zK{`?V?waM_5RcS$%)4@6sGMqIe8rX8<3Rcd%nr5~89Pc)zmiu-yW&|Jwds7^%;9#v zm*_j#b#z!iso%&tyl!EU#MYG?W2;E^n?g6mrVg-bo4(aN`F?pvv$HE{Gy5~YGUFm2 zmN5Hg5qf~DWF{kjVZ_w<=;6s!_hHq~@0a?UQ~H6;;4t^7(UMxEnG0SY+ZhV%@`Wz8 zqj#WQPu0VnX}o|z-SL@Cmp5pY@dByJ7NxqkuA3C{bEF2K?&$$+X)K6@>HE}cUt_NN zr`i~oJ)4;GR#muza$OhQy0v`-`8rL^!iKywhDEV@p{V^{+H+F^Cj&lMwiP{?M;P1t z`j!#Tx}6Vvugh}iKlLZ7`i%Wo<&QI4)v{VnInz2*_D=VXwk4!lUdBm6Ts-Yt0=E$Q zQ-)Da(z#(6^2w5Q=lStGcq~F!ZNRzN{RU&c`de)Zn8Ym;N_FO=_6tih za6sYZtCG=HFY-j{_T4?S`R*2g%k=It~k*4FFfl>CMC2+jUZ z>)u^OuYEMNyF7hEc%J*1SsHxtj;nZ($~|kES!mb| zK2>`6x%bwsq>zQq3fo7URE8bHm=X7%uw473)XZ|jgKi0Tf$}~mvq@8Z+p{`|A+}d^ zCy_e%{jY+Qz)yd*r@?A}*XsP|i5oW%N&DxAzrOy@p8N``r8MKViSjpzK#*%~CtSBh zlx+X-?_5icafteMeiyqIPvLOex3ATo;*f?6oXSZZ) z30`9a(M`N68~8Sbf3#^b*4Os{NMbS+#dx!jara+ucjE<)eBI#t#Aw6o=X?(cnFMzx zXtGvod5w(!9JIi7(!x1knDXXcyKek}9mloX;iSZ}oy%ZltQzMFc{{OqBAi*sVC)&qjU$<}rOE zfrUg#CVXXBcp%n++*|J^R=oHPY1LS`*eS0O}FG zPPOqkZPR6V|7#N08Jd*;$kgpdKN5J^+|jrA(!SNOO>}j>5jub~QRl$n-c;i9twyLn z&%t?w9(P}-vQDR-{p~+b{rWF%V!IA3-x0L;zTRJviQ>wNSE`RJx_jXD{Y~lg&Q`PM zkKyfM*8vGC21ue%>#Pu_^H`=%{o^mnC1{iJ!sgxbY{-cz4ebMmWm0Rq?nkv6NbxEl z_no)g-@c%5Zx(SUMGVuVVuVAYMi{K0$-H?GsV^XUPwQU+)W3viPz2K27ccC-dEwgK z>*Cs+obdKNw=O8ZQoBGEq$DM(4d@qjaEfHLbM{W(M)RO$fk4CK{F_rbW;T`C7*kq5jo7LI@F72Sk5~GL zhEy`=X6`hGE3t=^*-Jqw60T>Ls*xJkb_g;5ZWj*$W{GP%E_`2s1^I1DDA@D zx4rC+BUZgV-y1de%^KYY?*+L^y2-{xa+$~mKkzm;B4$ed)Z={E42uS|_ABK%~&2-tJmLNNhZzgU7dt}kufF_UR$T;`0%Ke_;R!V_G(_ZZ#}t>?P*RN>+UAeq$a6!HzPo#esA z(CgZUEhF5-`qF2-tuHEsCa>IdGmJ11TjNY2Apt*5#G%OWx%?F9#pwC;EGA1M_h5F& z2a^O$?9;p_OjFBydd3XCwM+yRQFPAM$ptLzfJmCFu5T|`Vz8}xX#UG&)4*+bMJQkF z)wrJv0!B=*PKtt|KcJpprVFdqQ@%KHbT=IErJo(IT(E;yUWAcLg z^X>TnH)KeV$MyXhvktG-pwww@hnM3K8UeM2f11cRWa1I&Ml#zQbfd$GyrybKT@CpF zgqLI7Dj0mgF3*XfvpXTR;zhd%Gg8w%jo80XI zGiLlK>#06i!`xG{80~f7_FQ!orgPx@0jfyFx1 z=l!lm!BKJ6*6py^fr-jzoa(>;DO}?L5-5)3qR&x%AF8iL+7*_I?fY7s&d2k3ARE^u z)rSuNOC!7EY=B{@K&8OrVJ_h6hI$}B7Afu^nh@zjx77nK z{YzDJ<&Wf3*z?}_>x?|Rkev*VzZ<}u^5W`Msl&6*b`7@=7=2=?PJB=cTGDzRvhVhq zZyoo~klk zF0B^D>=RgLq>o>KksNRj3rvz`l)O_lAiF<9mdxged}u_WyU7WY zL?a`b!npfn>VXv{vD;fy2AY9`>DdTA+qKVhA}YA%S!GvQ`d!web1X$#&)nTikkc041k$iDkvEeupWMoq|=lmZxA$*H-ou2yI@z^=OD^1p& zqth>HOf*WC^_yszqvy(eu3~H7a(Y)QiMF}qBD*HTVKb4X>iN)~D@;R3UwU@Yuhfd@T1VqB`$TJ$)V( zZe$Y_KpV&l~ak^>QHd@&S zc3Em8-gFvC8r_u2)kjy{{aVw@-eTqu0OD|QZ`VM!S`_3GJlo#6RfE{?KjY#uNGvau zh1r#xM~XxBT{U=J?2DBWXa)E*J-R|gD!^P3`3mEiDT8@WTK7Pd&1hs7U@}4NB-7vP zB)m~%_xD?Z@4Oq8bp&yq&&|bsWx#qvv4L@q0eK<3R>E%Cwj6P7!XSq^y8r-DiORgT zU+l?ye{^(kxQ%_#gFJnn{MhpSEeOn$qPrV4R?a}R-~OoZR@hR0qk~tr65r5v<@Woo z%O`bV_!EeP#^~y=#{L%jit(edLDOzbXrHTG&K$J<*kzdG{Xz*MDY0x+qXyUam->IQx|PHZ>F*!qg6s zm2V9B=l6eoeF+$m=;c2){&OVGMXMJ4z}fWgIsMx>1AlhS04QNpe8ZQY*@q0AJ72?{ z&O6WOk3y!^Z;ar@4gwQ+r41iDO$=;E<@~KR;DhU0z>(zRwd+9=ji1bl)3ZkP=k_x!lT9cd?i1^TjC~c2ZHurZ{l!l5ZV2lXDiRPwr8wzdj*xx939iZ zu~kA4tQCLFwP_H1wB=t04Y>Lu{?B3@e<2!y@Pa;&=@+!VKH8=uRZ)pH>4DrMj9GwmRldEw5tbKmzupn;h9}v*h^i3r2IW z7O~ciRny~;SFV~ajA^9K32u&cpFRLs`cG?M0+W`2X7=_hsIi!hU0ADLoBbaMp6gcF zdzL0K@dK~CuyS!}U1FTp1E0rQc0As{S{0CS$(wGgJk)uu(NF)mU(MxvQlI4QWo3bM z-fW3o2koRu2RYXK0XEq!7dIBIam;h3@?`5y!1?di85-P}DtS$}(XB#c$x@R&*%UYw zxJ|KP&mcB|Kmb=zjuKXzlUv_uj*e#iT+#V+pTHf|%!?!O1nzj|yaE64zvo{t10aFW z-PZu14>ga^=3J|Prc<#&2NI7xh^M;Y3XvalO7pi$t1yg)EtVI?ktP5z2VyJsTGbTWo8l-G$lb!gMLLV=!6&@jvQQ^HVzy zA6RBMx}HJNaKw9~n8ky^!ufNAer&&T=bR&Ub!7%ri(u>x4%Y+t>00_b9h>-N_1 znO9}tg(xM{Seg!q*!(gvZD6Ae#f(kE*84E$?@saIHCF5^vKLu`TmgXJKHc$wGL7m9=uR$`$AFRO0o8Ju8i8Ne(=K8lVb9FZ>?SD(K{QDS@rSi zZWch<%foGSi(h|FO+EStv{AU)!&1LzUY`nHV`paty3C`^7{V5`hTHu)5hG1Y?Rtz% z8g|l8*uYL@%JEJM&q10fPW$Z|G>a)40Rch=*~7o>iLKAB0~w)Q4CbqV{TDwSydlgd zbcFIVGgul?h*UyY+wMRTPsG&Q7(%A@hIeu%>vq$bh;R>Ib!tlKYrqv*pJ z^M*LUDPJn)1f3`-9Dio-q5w6B610kh5v?`|9jpB9A82UXVpSoZGw`C5l?S;IAAppaX3 z_1+3LoJX{uN7kfMZzv!ydoFW`{#~{dZ zyJ9BR`8ZDdJ{x-CKAWkGY_setjlwI$#}jV1fDZkh6J@}P4x12x8wq}1zVbB| zR-Tn#q#x#9wCjEz+8F7wxhPwYGdprr;jGxF9EAD4yq~b_>_uZ3Y(IpJUC>yji^2d- zvpw1ba}n+zoq03rM_)Wo;NtAVd7IUIux*@uyCU5>rAcjkJ%vTT?4rc#-J`438( znK7-pc3JYm*ZR*T=ggZEf}(27L@p7C$Ma!D6T?p%6C#BIMTr@+^f0t zUzY6j&aIJsGDkl+0lteH)qLewq&8Xkcp)K9%mdkDgKQl`c#Izs^h^fG}Utj?a4hP`MY%2K^P0K&%{d{CuSxCNofy@8Oe59^;WPt0*uCY+` z`SF|2l@y8vI4TDGMeUgI%&f&@S!r9RUY2m&*#DOY@jpWtoWytW?K$hCX6eXf0rL|w zvyyJza^?OC7u&`-->M<4-(WJMVN23pIxD^&cX-OOFASU?eSR5()=>oj+yi6Bo6*NN zd2eKC9C+w;;AZ!!U-M$;z0W-N9r+1)^(0yD9i2%s6N?oGoLtDdL{aW|cpzrXA;`l| zv(w`Z%KWv%PvAOIo*BLLjkWe%OdQr#d7LNm6V4pDGW5RFh}Iyop7I9#V!rEQAhnkv zbd8KsihCcKVAS{`?`(a>@7rKQ!5>0jpB_y~t z;8zB_#t;B{Y%-w1`M~3d0PLr`T}PkzHka-x0_NRhPjn%a(M~oq@E7Ga|C!FU=eMO9 zKLE_Nm=Ec%Ftr za)M{TztqSv0ATyMFKo0`lo@w_2J+yn!in+wY`e({Zj#=H8XDQQ+#^nIlGa0Kc!D=q z`r)jQXLXIE3jHZzLO+)R`totXvuX)Z*5=h3w zl#|=)OO{fUy#0MGqpajACl*?d&^n&*xRE1c|0IB4Sb$s&6&%)= z!RE+?yKbsZ?08uPbIuo9rFqy-^_U)h!=qLdSGbLv#jrPzv|Uc9jAj{c)x0peV+={H zI@*38j1C;blHhlybe=y&8BxVH*F6|Wco(4#HE)29m>ORw^JPSf+Vh?~P0P1BF=p9f z-V2qH85|?2Tvb$}3FAB};>}XTJjrmGo?)SWfY1nUA_=Q41W3MqwI@55l&te^*Zbu% z7BX-lyS&`%;s{2k8il9kcCalaWzQ;e%+vJ!EQd6)N`kh>`F=jP1VX(#~T$nB8r8xrj_r3Len zjD}LCBAu(*a{W>9At$I?X=~ji=7o5)$%krI39&p9QoY_Z3Ps!ApF&|46}9K9^<`wS z2?S{roeK4SM;JZZaO9WT8V~@Kqajic=TRat@-R>Qzc4=>4T^xPe|+MPe>lbd^RZL^ zd!dQ{$)|pWFMbKQ^UeP*CTIsA^Y7Mh@c%yft&jh!jo-QeZmR!>=Z3l_4o=V9iNy&A zG2?t~w*RV7x~>znN<;_kaSQyn>w%+rQ?P4$zHEDWMU5jRgzMcXg9>@J6=w#-)o`24 z?TI-YGYGifCTw?YQ^+`u&Uf_(fA_V)9B?EA_ZVJ#|96pD<=0#zf$KjKY+QHhH%I9h zhSh`8T=Pkt(>pbaHQooYA{IiIt~?Dd`}L9rA1#P(L0HKSnO+nwElq>kNfg7$_B5%F zh~KWKriy8>c4}>H`IglF0b8ksY)(tmXWth*q#y7zC#Y=e*c*i(c8&*yuedZG z-j{cq$M_b!6AW(k)CC(wkM;pK%XTejG*?*p$ke^3mUD+(MSXj3G2%v zI|$Wq4%-zF9<#6iE!mNYQ<|S788wFFR)6b?5%+w5)p9Hnuddh_{aXr-_H1R_?y)2k zP$d}Gpz(#sC%tiMckPpE;|zk~sR-WJ-$FS9Yb>L2JsAW7RKxAAee%9X;Zdv~dxEI_ z)+b~^`(M|tr4j)ZbDR=+TgcJaYn6rX)DRq0r_cwx_{8!5QY=UN^xxIAA=FG>-1^4S z)V;uc`@UKD7jf~*e9Bi$Pd^V~FW=6k%XTD$>;^!tWX6_PR(9RdmxsA8+QIh`2J##R zb3Q%ss?>;E<7+%~wr!MRP}dXB&KV!r*b>*XY{X#Zz9Oz@Z0D96GaT%amEy&C4$8-6 zZj=_px%5;csQvTG;%2mc&DQ#DGcBZ-uJr6H*!OnWif|Fj9)Jnh1)=y3<{*p14&CY` zsUMwMeV{g4zB&borYM#K8uf2g7~F*2Aji6z(Y6LgJ(lp4OdFS_5kd*QY*oI{a}XSb z#rK&n!|$P2q${I9gc8*-^8L9DoHtXrrPZ2Q{|+-l@E8Kq>Ot$XH#IQ#U!S=(~$cTwBk3-w>pXD8AvYSfT&K7NXVp*lT0m3$K#^LEJZuj+Ry@Gi(to(Ot_ zAKcvEx^;Z$izBv8gP`SUeUT>UsTH(9t+`O&Oy~wqp0hyBA%WJLQcDD;AD|9!Z@rJU zi@htu!k7jul*(Aq(E+dx2B8?qqXMuE9@!Sv_auPp*Ppd18=j3M@4NBA@BrL+1Vu`2 zEy^BVOvIB+I!eCYp(aL4iG3f_XMMLE!V@&gV%tDx+~@rlp|ES??SdWTSNFuq zFK3cUiA`RaHBnSF3z8>hz1a7Pe#GZveQYbZk;imTH4{aU*?hN*K_pu{4Z3LRFWl~; z!p?}BP5bs5*_5D*;&KTJ)f{L(SjHPdKxkT}1A~xwsb>#oxJbfAgOTCpg|3yAXoW5t z=vtzyvH0U69sZf}3q-NIb3kFckG@elTv@kAUSY*yV6(lBRha@ji*#vf4cBM_?^}b7*+6GZ+Co_ z^l3w@-cyPfCItnJ1Ve;s+@~@cjldJ15xQ69+FS1*#)J(-U`9xX^<#qt@{Jrz_JI#i z%;%uTDD@o-Iy)72d8R!j$xp*}W0W!zxV)L-ISq1{PFt(L?7ltO8XET5G#&Q=>$qt8e9y zu3YAmC3Iqz>3mNW#UsiiEB=!uuq&gvR**>AM{H5x6F^V2x{(+~CGy8KOJw@+@`vc>bR2``StW8(#*EM9=eK8P%5&=qy}?@QZ0HlP8fzlR zMU8qHqk*$Sc9iDez>Hpe)mYAGd*U~zT;ig;9lDQwxM6b3(*V)e)f`>sf#ff&7mFap zYQ>!O#v%P_3k77ke(yMQmt**Rt0&E@Aws9gr8niHao*>bt_I~~99x`2 zZ=?;gS3<8;KT1eac%OlE$=%6Sm4{GrN;E1o9Pg%q-8HipRYY|}Zmw)stA=WJ(aayp zgtt6I`G66g6csp=OAIm2%2q z(Yx1GNRfdu#R3N~&lV|HCQ=P^a$01k^<&C;uq zm8iNSGYD2hooWR$@|*U}lnbn^VM+gyHJtuSROOq#pKYx+q-B>ea`Vm~dyXV|ST1lO z_KPQ%$0p<_L{nuRYVAkp5!6)qZZjI^j|jf=pZD?_8?$zLs7}z(6R#vyP@k&#(-Mvp z#=1Fs-xq=PY*Wsh=lB6;R-@vpZ1l2L9yh;?lorv{P&k*cF47?^(OpCZXHV{Bxc4dm zHpgbH?>jOr$^tqQV$w`M<^9y6=DGasI|1 z9ixwqU^UMxw0`&1sLQ}2aB-1*O$KdB6Nk*i^#s;+P4g`C0vn_P)VE5mM*2yQo~G(U zHVcX9dDG((0TbfB)$^5vXT0hodHA#B-$hI#OC=w6%NuQe<=htf7AG1t9W!e(W})j< z&jPn!#}=gu>RN>mu?sE~pCgsM?=+=Y75w zR*+@&Nqk)z+3)e4ukZl2r{>SC2P0DCTX*iAK923uBeP^OBR}SZRju@sZ2-@=bUyj7g+ycu}Ml;F}*kl5`$N%6>sZ$Kf)2f{k0CnfBH z*1j=nj?u}EfE;OSw7BiVXV?mNm$tHiEX8sV@y^*oxVpx}-?4%QxRPe{fV`X2O27Oc zMTy1JluPFN{f?+h%rk|Mx+PtsUa~D{Ch1-Qe6_#s7P+) z(T}X7nnCuKG?eCf?ek4f`S^`ImO^zKq{TJKtO>u{Pna$$yduZ>R~+>A`sPRS*W)|UufU{G?Zlp z`A;`X0{i3Dihfy)pX#oobyS)f8sgg%V)`!nOgV>X1`kNq3dYw)r(Qr*2($!5L*}uT z3#g|0Ua~wn#PMzs8#{Ho=-yd|hIq49k!V@OJYxU?UaZ_6I^)VrF-nG>?9ZByQ==KJ z-|qcj;+I>ID_63NVGY%Y^`aF{J9!n*))BeZB{tO>Pmg<=VlWhASjr%z8v0Ru*(OT3;;wtnw= ziy|BX`g(}J zR8WQP@D(~L8-OaPaXYbqq07C!!>Jxs=Q*iSE! zO76)@8^H#t_cL-`#^tf>MudKNQa0x7TXRss^aL~LMUb|SfJ_YLYqMEFa> zt)h1Z&>ZVA6I3@=zbF&|aW!GU&fc-{qR#$M zQ|+RtLK$qOX-*RJGkV@@dV>A7KI+MHjrc*!G&E2Ga$XU(;_iDnmXvi@p|3|LEwHFu z>=yF9<+#{gs-eG;w;>2lJKdR}ssZOe6B)iYj!#p^ce2&ODdp#tqRL+VF|#p^ky+L! zkt0=hWFb4PfvbMcUZdO z*0vP?`~6jt|F6nH+<*QrVm17ao&?M!Q`n72KbG*doFHaX6pq=4+W-m@tmD}YZA9Fr zCIrI6@uaB=&bx>Y3|c@Vw%f*7CxSj`aJxzV-s7!!_r7S*2A^aML$-dlArT9;Htbai z9DT|cNU(nR{s4!Mtrd0;4XP==pUo5uoZY4m>aZup{5Bo7=Y4H(`#D_f>i$W#8vig_ z=eMu~Jl@^?!xF-1UofL=w&Ive3AoKyXe^sIzl7)RrY~-jA&=Y`M%OVED-46! zB1GYQ@-XPa!;OE6VJh1gf3{6&cd>3*4@0{1fW!`$a+M6Wt}B@!UH?HQwf~7VzUyzb@mSon(j+~ z??EM9(tKziDvw4LkXFpg=Bsz(Lp{UK{gX3~XG9W%Y8^e$uaM9Bv(^T$cJKN`W%G&Gd`wi&eUkS97yT93` z{(NMx*YTmbZwfUza?kRim6N|j>2>g_n}swRjakZSGA{KsJc|HAvX1#Ip1bP>!4!N8^QymU&f7ru z1*U~!HF47_g>Vb5cju?E-^~0|-$dg(?cshSh%N^2q~g#0E-Z zYI7pslw(`Fgic2~!J9~mwa}1c1)0x zqUQT#nX*^kZMlXYkjzF-*(l*iRno zf-CN4K;q{&B;SADR>ZavT(;5-$Fc=PCtTnr*37m5>8>Mtj6+Xw6l+-(JPP1c0BqE9 zL)WpaK-UDrwY^woo!-1JvzK}6Y5n>0`=?vqEe*#A9Y+g7asPydJ6HZTE8cyT^|T}+ zdbBnMc|O+DnbP;QM7($D?$d?bgzfyT-kFMi{g`PsdWk%<<&l+xyD}&yL4f+L$W#5p z7a2#X5zEf$foXwU%q9%1;61x3Gmb2JXkgQ_~5^>QRr;Bml7 zdTW!HdVe_PF3Wu0x2J5|g?y_#hhj{9r*LX3?Z_)jlIl%YWbEWte!s?;S(>J{k$t7; z&9j3VM5_cXafm01WYgP|}F%8r~xkCwPZ9WR+*nnNcQj5QJO!Wls>ClKlb4qN84Sev^|30cct{r(*Q za52m(sBhlOw17tI`=cJ`Neib>49&qLeFem7QERjdg-F3Jd4+oCu_!&FDhNONZR~V~ z&~eDwDEzVir?oGQOLFVl_w>~1c! zwXWSRWxuwkIkMxmiGk(7Iy(ankqM(I0jH?7(=Tmc+0{W3f3$WBydW+4*p+ z;T zaoy*673!88awzl&3tg-av1ZM+=>KZDff*Q5qlvm1b%q{-YFw3oktuoER|Qv^J6wt; zfe#!ATBcv-;0HZzcpD0(eI<>h+a$~!A;yL&G^rwUcLo`V!uG%`1hBFvUK^@#u2Nh} zXc+?6h(lpH_#trOWme=urHhBOWRpQBr4ybOs(SziO1>b+nhu3-hioQ;gL)}NC{*PD zl~c-TnQjp^7`G$!s*5h^wRniX1pnxYzo3_8?-Xjxfl!Zw{n9blRR`L~?zWEE4yjRO zeKF>#!eKr~-pWe;ue4XIi4lKNHI{v*;Q-_oe6TmuwMQB5&@&AqVrx5|3kzCQ>vUF# zE4d6hqtY6JQWy-MAJE@JoxqA5qolOc1I7=0ek&LNC-TZxO{0G?R;O*X*gjancrmw2 zDlMgu&lfzA;_BXMJ-#FdIiTJCv21<+6(c8hnrWJjv>c=av;v0}G{m^HH4w;#>QkKi_74G@@Ra&g%n zshQi9D;ljPRT=lwLt{cR;WhgRrU5!ADSGve>J{3(kEl8!8&x@H0^UKUtk8O<^#nP! z%&4o&h57VnL)%Bzf+Evt-h3i`c53@Vvhvh=o{Py!W2Mi6u*{v^jjDgN#G_A+?2^J& z??UOq!0`kg#Bb0#XK#01pL2n^d%@P%CNd+j2gOls8GRjn6K(6f3CQ!B$hEvrBPT|r zU3}BrZzg^V)T1zGW`bcNYE1emO$ezp@d=F$_YMMauR6!~w}8<~T2M8Gg-c*?9q6!6 zg`ZIaF7=|L-H^&@W>&Db_W5tnm25aot4=R8aJfZSr8Idt(tewHx=5o~v*9FHkrFT; zM#;f2fhVs7Y7p(8C~UT_tGsq4ERZ#4z&Urn>pkIWAdfm|{E2!Ij+g~7Tsc+;VVrt@ z@q1ys(*gI|G4P!9&2Rlk>9wj5GeI&EIY@exFCiL|T*Zk_4yZk1fC@5ecFF*i;VvnV z4mVY_mxH)wAl80#E#RhpYQVMXzVom)eFs5G+=q=mr!B5Ymh!nH|u_miia>t^GY zX`;Tw3wH6O?=0 z+nKPwp7lnbB#Mz#Cc)%_5RbBqgK~Xmn8N&z;Nq}4uQB(7Q7R1fu_U;DHDnUYy3WbN%e-A+VQlJ--dK!*HR zy^Y_f_=8A7P2_eha^QGvaNT!kNPAZ5XJ^OazDiZ%AUG5D$XKz?i>@pG&|20?bP)R3 z85sSibvE^Jf*_f~ed?lF@K&>yrqL%MC@CscT;M}TF7O8~Hc)c+N*hJ32kJdk@Z=o! zbxNLicbaj3C9m}T3z}a!G(5^OndYlbN@O&59p-d+JvCG){Ii}{eJ;7vT@;?Pp2oew z4c-N0Avw!Es~~}?D3va>h=NY&Tg5Gjr#d!=!fSg&yp-8d6+Cb7WShxm@jhVWi^aV@ zHtDw23#pZvRE{!LJd6QML^d2JcX@sPI$tX(B3BTr<2XpXxG6O2gFW_}c4IYlh^l4Bqq6E>U9=GbCR5}9QTFOWzf^@^AO04$-~y8(aYENG z$EbS0Ph>@7%~s%{2mj)r+R0K%16n)Mw`$N&JKarf#27Cn0$vf6Hc-F;kOjw0Yd%qk!5;JkCI$vT0PI8ip(Z*mHTp>QuHzo z74#x<-%(zuZ}C3Y|1oy^$`mU|?)iNXLNLO2 zn0d*UmI?*1!DV=J&_9gWOW}4(J$(7tAV-JLlLPDT$BZJcE*5G`+IMCH*yDk`O=V+| z**KMCsAOAh>xU}n&9y#nHoJh4A37HdKr1zcvHs;n^@beU*}JBu^hpQr*F7rP??xtr z79SfC)vRRC25D@f#9Uv4!(I+^UD;1XZu$^A4zX8x)kJ$iSbN0$e&(q6!Yt= z@Tk3icVH_`+OB2!XOABmAOaGKZLq7ha9X^_?x&GtOxrSiFrcrfQNsJVUW%nxC2Y6ASNgR30=K#y z*cv?;!J5=vGKD20id^`HiwQ|@5`df-n+5yts*Lwh>Y!+zfu4Kk^n2*;$h`y-p!1Aj zgDhj!bAo8wotfS4dAZd}6=-5{@}=iz-u7pC6}rvK&NpwI{x{UFnJ>W+%3^!QT6i`~ za`%cUSZ&s>!^i)_^)5*~mz*vox>C+LLk?m^=*Q^z%0{uK%GMV#d#Nos<@>>e9hmFf zqeOm3V|k)3)o>CuhP6l5q#F5VX{QBnUrFi&ZPnJ&v6P$t%<$M-r+!iDNPV93WB(yY zhPgzLIOxWDM7jHMPy-sIXE&CQc|f;7N7Zafc0f6#39KnzzCDY`YXf^l2=yrb(YikN z;i*tLlsX}O|59CH(AR-!i-Csl3GurCoT9JedO04Pv0Rb1a42# zsdawJ<^gdxQy&AU{7`EZbQE|jsu^?h^7p)5|K?t4h$G828;&^nIzC$T8$dQm*HwNt z)2XyZcG6f&3U#)TG-zL;PMTWgas$IPyE_qZF+jEDx1&QEP*C_s(_I-SDXHMQF3H-~ zgDjjyUyFsCZ_fqge`O`=9`7$2!{&LS(m|-ScunUoTAtJ5oVNA%7D)J${c@F-P!xpp zZdU^zR7q^7D~rR9uy_qI7w0PrygW)-XrmY%rhzru`kTOBiqM&xZu&BxPIKqXrA}>! zBTD~Gh|ncF)wWqx=s}Was%?C`(=%u;0#N!wuJ5QovMO#A1!^p4D<@lQHylcLP`LDw z5t~#yUpG9-Tzy7oGcBPiXRb|8UDBiE&5q+1d_+tk%X{e@mK`?EFR3a#F@|nFp6eq1 z?(?>8ZMnHLG{S2}j5=l)Yw2cpKORPAzb_B?LQ*O28#;o;TyScM4{JH~%M*~pbpEy+ zUkR)`)Aypb``1yPJ`%O(RfK#@#uD2rBAaZ}^=IYy z*GexFR0A+X?uHl37bC@2mB5KiZ@cbQ!)#veAgOd_rjohd`838gT4LY`8Qh7vIQc*j*L!FISnUMBMrgT%FAe2gj>csC+z-*QxQKC^T z>JG4XB@iYKo_JH}mE$5Yd}}wgU3JGgfE3Q6HVB_6fkoaMh*T(VX5$h6hNZ)WIi;wp zWnH@~mpx^9o+9jtyn9~M&6p3tsiZs#XiSevW)|cIi1{s=P!x_<}bV<0k)>gnHlB ztbr>>`KtPOC-U;;ixKBQai(EczSt(AirMEYLy%}&v)k;(*lj7Zk3c=dE%#Srh6(|4 zAd_Qyh(d1jgX(Bjr8OK6f0XtwL8f12`aREQ`jyw3hde^(+(coU1!p75UL!(tj)mEq zsO2zTLHoQ)FiRY-Gz+!d>jsZ!&ok=|41i66Gc8()@Eim^h?h>=B{A%Fd#5a7G81Zx z{|0;?pbYl67QbRDYd&2|~UfCU^fv(o>Lm+&?yQM%7$qn{<)!Jh7;M6SN1I$loiR zQuV}9c!1Oct;akPEPrm5ITpDpWyF_}@i35HdqggvCV@JKAJzZH7V>SKYK{8_IL3x7uoEa)sor{rpxQxezH zZ)5Ah$~~AjoRla{^Q<3v=l+1Nkm0TFwD=(WmrlL)U*jX+Y6Y+_{VrQxe_;2|TH&F$ z-yXf7wF`OmY?&P&XC{}W^E0{B-{|YLt>s6*bQ!5%naS|5Ydh?{Q#*x^v-F^7q7VHn z7`eV#3Zj2sd;dPP{!5x;`+v^JsNA~y|334n_etFtVoDIEGfM>u2vWRi$(}4qr&r#R zr2Jo=kA0-2-uR7Aea(n;D>(OqYVwy6j3h=6BN{+AuT^eH%5%YD0V_$e{k1B8i+`n* z>fS=Kh;vFBpFppF1}-nEu6HNH-~zwGe(Rs@Y?Wl5NchF>qVvhzwS3+NM~^Iqk)5hG z{pS!#X8yTlBYANOxWZk1P8iRCbjUM)_LWS+uPU}lyTI#Pf&9e*prD0^km#)oPWvIa ziX;)29#pkCtsrv!6$}0)6(d@l+jw2Imm>!^R*8C)yyUb#CPlt+>4!W~v@xSiu(j1! z7AuP%FdNHr8-9L>6?-uJOEFl|KDY6+rT!Qx(!e-O4t~A?T&J^OU+P$E3zHN_T@+%4 ziWncQ)D7tjb|Jkg+c(HXC$WS{&mw#njqbkY>jUKV9boe8=}@4B`dKZFG)o^ytTj{W z)nhr@_lr^%Jb)??6peXpZI~TO-6?yAesZory2)WeXT#6!8Cox}_#)m3yGyQzZz-6@ z(NF3oKAHw3Rw9mTnAkdbV`mJAuPaQ8W+z8Xn-?hvGd7nmnxPruUUB4=&|n9sh{818n?|!Y58H%Lwo1l>gvT=Ph3N705Yv8U9@zpI4~RB+-AsJTfl!vee;qOI-K{VCKPr4hij zfgPS=$SGEko$v5sN+Sb-f*RP(mV~5c;do;x}|FP}$+N4D)q*5c;gH1_Z_1?B=b z%BPzJQ>-77lr*l4eSUe`+V0Yj4T%S{c(CWyk)}eUS6%#g`%*zrSTc3pZZtFGDzh(* zhGpYl76TpUU>q@O7H0;iWx_k^oG@4nKmKlw#fP9T^q9CVX*3vCMAN5l)xxgaD=8b~ z4}&zpic*U5n`*)*s1%sI5Ym;;Y5xt&$P0BlsA$QW15_^PFBT}^dZnqbzS~gy$`J(~Xn)}yhi>(lka;tnd; z85VOoW{Y@rHNC;ApOb1gYTE#!;`S{A8=lOqQn5CWGD@F}nIJCH%MuqpqKi$5wcS31 zbZcI9bb$AZ#u+jHv4&q{tuOMZ_xqYc$ovva{7;NbS|`wmlf475J=7vsRE^^r>>g*| z#(_VDPh`KV88!*a{GivblJg0I95k#AzMLf@F|I&e_WA5KvJW`t4`rcJ!~=xHOG!j$ zHU>=W!KsJg{1E_~>#J6K&6dO*GK ziGA$xbULIF|BMg=P2JELb=QBdywyF>T0YF$ho8n3lZpMW zC=>(5nc5>fL7H3+&Z_tEaD2I3H=xFURxvn;3Ds9W?usYZbcD&Z=wJEc_=zWZmi`k* z^Bta$JiK+0{eaL^7?zC){5lN*N%J`JnuRC%%aLC&{tsSkwnS=GNnL#IyV>t8IXtXbG67nA|^5pt%(viFW0)%SM3_NDPF;)a}}D#41E z&K<0a-S(=)!HnbtBXFmXKlr!db4vThI|OV9z1xO;5S=0 zW)b$Bb7jTk%z`}yGIwLeB(xF`g@(q4OT(DrKQbb^e0-l@>Hi&y?Bx7@&lH_sG)=U_YRkddI059gjM%(y;0RW*@W z?(|6<9=rHp1tVJTSQpBXiZ|b@KdK`CZy(+{wIKCS-$UG>cDjPaO-ud^HP1D`HeEDa zySHt1C7}6TSv8Nvh+@m1il$<^oE^NQQ+A&k^ni*?n4FP{8YgSC{Mff< zgD9ryBqMJ^`ujv(`r-C76Nyc%sP_XJib{Oj(Q2p~nm%yuQZ2 zh`fCx9$nvBvRFSdxRr8mP*;K_d621&;{Waj^i6M!nYE42UoIvdyN8dXel1(IrQOOW?7`Pc={Y})(=l6@#K4gG)j+gUHQX}Pl>B`6q2Qbu9t&rgj zRMbT9u3_$}y*!7KEd%)#^+%`0!B;nefk&UWYX;-i+_Q{4$2_A54OWp%Roc2VCgFa} zwrDEioL!!s`euJ+-T0xz-O6*gyH;dc#xHCY*v`|&ZVM4vKB_kJ*(GkNDf?k@jzePD zPs8>4mbdc15?fy$QB&8S_r7YcUe+n4(j)ihfy{kf9QN!R1u}M6goKY{=L?^m{(>{) zqSI&}`7~|8mv!zrb-QhUrRwd+hc_=CusBL{YDm9JChim};bN02O)r{XS!;|r5JrEF zNW!Z-A)R)kI$sZ=SIit{(R+UAgIi|91t&_RTW;Q08>wj>s`95FJ3iFw;Dtn%1Zmn3 zkLea=O!CH0x-GdVyf=L+q8Q+&K|!HT8<1Mqqj7LJxKRNG-YA4 z_96JW;yaw*rbGz(o}fN?!__TbE?MtWC>Ncsg&xRR!`{0@egHiA*%~U8fPEea z5`{j#4t-KB3_*K)qZYsJ-*r-#AbKttz zt^LJ+Y&WL$F~)p0NVr^ycE{X$=xXo$CPBNcg?<2^hn*-eiY`c5LEST$Bhvm}4EUgn z(l{3}6^JepRTzGD;s>POKJt@R?Gx^zz0%;O7b^dLX}JZ8qgb}6D4q$@<5Cuhzu}v5 zb7q63Dc?5NLfry-N;d0}AAs#ULW+$9V-3fT@4>ea(i=#q)R0h{dCxguw*ApGSvy=G z@*4Dcv^#Y*&y1$6v9+V49;1vOL#>7u*RJ+0i#^a@hM~!&qr2s`qb1nBPRgLmCGwy} z8lREXY_^y%7^HneFg7TTskASsj)6B^wDI5dnCWeo*spPI059 zF647hqSRVrT%{S6`jMWNdd@H`D~nfR#;L!}na#a=#JA@Ws8!iVfA~nZUcr_o%j;M- zC5?7+iI3{B_v#YvSE`iDy%-zo3oo|n7_&4P7_|$n$(u_L&(`xn5*xO-kX2zdLx#2b z>Yn66k{(UdGXr70cDNdSURQ%!l=5gLp*S%;L!3|8-!wObck6G&XFFzE?d<3<6Hh?iraHIo{A%K5YHLY_iTbcf6|raQw#{ zmWhvHDE|sm*i~HX56Dsg60hU7bPR;M3@@9r>#XJK+V$2l`af)tR7@JE3pkz+!cU+z z3fJ+>V808{bGMH8+>{gWa?lCOky$Mwwl@XgyB>^G00X~sMsy6()7@`St!s@qsm6|yo~XFu#$^Jh^qkV zi1=!DMtz8ZzPQ@|o53Oc&_g*FGDB=otn{jA%Ltw{4mEu6!beX&wfZwIX#0??e7aibrMSc9jBLQfIH zIM1P1b@-k_@zdn0DIo$@cNxEkt<4e;H?R`<>s;r-*=5$>; zYWg<5r=G$U>+wtIy7A+Nac$Bf9Ao=t@rlmcKdw9j-2H202XK;mA1L}vuiQzo3Q~#t z_@7njTWvmEKAJ3A!XP9paiz_VJ7j7&nQaN%nhq3ZF=M}hH%)TuZBFnng5=hygl(EK zCluIsVn+j$^IGE${J87HcG)}i>bfVzP5pyw^SLC^qCL6mY3OzHtgAA&2s>FGP5)8* zUxPP%-)1*wpk~^k>JMqvr)XIzAZyDH#eEBYL8%RL)TG}?*LaR=1&aMP?Ee40ae1=x z<9y@76yh_Uhxp2){P(Z*#{UA7zMZVA6G`mKLYu(F~Q)-&Q~NJvOnGScE7kdPiH zAt62b`Vduyez&oe)^tEZA`ATe zdK9^FWQ>HA43!aor{)UWZ?Pz*?sI}ACoa`dP@9$X1j^goqnPl+2HMdXIlszJBuYLH}Jr(n3L{{Zlb}`5!jY zgxExjUTPeoMGBjVKIurN^Ja2A4!c8YZ#~gFoTU(YB~*VWf7p!=eX?-A1+e3*>F8^{ z)w8`=y4{vPT(=RHdH8)v?qUr-po>JmGSB@XpHmgZTEG4M{h!HnV04Hwp`9M4yoL0v z5-a~*$9eM4WK&2kxC7;E8b{=E+sBy!c3k+Y}o>> z7;FI9%4dbl<55TQrNRXQlO7`nE78-O##!^;W={R;jWOb5oy5R&husq5;KrkJX{ zeINMoRsgTv1H2q`dPdRlKVZt?p9*`h#0Gv2AC0-zX;;s&`f0#oh=bha81>+3|n z>-24>Jj|hXj>-m`jMlY$i+HOB2f7&b2rAjE+FzJ>TX2%$11ChXy*%V%2MwOoc?|`1 zG5tCoC8Kx!E<3>nJrqAQDkaz~DqF8^bn`c;WuUOX$Wo*R(Ve@RgtIps1a~{NNsy^H zgE}6;hKW>na6~?}o+5n}!y;+S#jXQ`I9)fN6JH}CjV}5z?7o^vIcXc0f1Lo4XhYh@o?ASzXe_CLeMY5+J`9v68b^j^$v~7g1(9S0lD#}RMKY;W5F_8!3rjbBv2aY*j1TtTje+p1 z*+f6I9E;hv)P8iA_U}BB6+~!4_p6|I;M4}Rj$VW16QbBAb=s9rI7_2?(`Uj}C7^8Z z{ukLXTJYeAsN2e(B&GXeLa_XpDkzndxA!hKqqUlZ>)WU^N@KW`Q}m9ZM|g{= zKGDK;s`mZQM%uGxwOD$cNEvD;7bgqBEZ1K_ThX(&`p`PzZleWr-+favTh*b_A}?0p zd51#DX~z7$!-h833g?-gpt{KBRV>Mly%p;_KuH`bBifko`O|_`B7l@>MQW-L>K{=^(r;N{g-1SK+8pQfNU9uQ!im6k4z1Ic;GJm zlw1=-IE4Uhbi$;m7p;3?oEx;qM)v2z(uiak=|E2E^d&jR$g#o@?7%Wv)+@!~3D6c`PO#f&L-PObqETE#1;62$IziXc;8DNq6ld9mUIw!`3OIq-dcm4GqpW0 zpz12A%Wn%_%YnQHa1ZtH`4Q-PaMhcM=GRNx(Ly&AM|+{3qkaP(udQ2dFdV~$Mc)NnC7FDk?4Qc`X5w&xzJ)1e)yY^{XN15k5Ln#;!y-B{{iQxG?QMmHD`E;^$9-155s=wnSBHA{#%6HkMM#k}_Ub?{Y zMAWe^bWFGvS18uK{Tcaf_)n(W%;wV`&AvxSKW#@LtoA#LRA_I}8^YfhCH1BnyUx#% z6U-*@@NImlncT;pv4br{5Z4LjQWd&SNat+Zqn++WdhX+_^C;K@bmC;0mK=qfh&X30 zmmT_aettDi=7$93!qUQ1!e;1?NynsJeIuEdLhOl7rly}m zIz4B1f~50vJ!QW)b;CYcaP19ay|Sb`E-}Y4@vD!-IF8{Su`CXQbQJDggzq;bL-Nb! zxUGp-U?G@7jjTF5lUhB$T>*O5I?n2hLrzkPu4-PFlQ7h8LU%xIgvatz zdGwY?!oV`G#_Z~cMd67wqmyYLc$?pz412Y)bTX(=hL;s44BDA?RhsCn_$JKb$n7a~ zvS=ZBO8knmd;}>o%vcc7=|0@;+o^z*kMkFLslUIj&#D+{(hO8Y)*(9}| zas&-uE<>;vn=!bW@RPuz7KDZBraE&G`6W0*O&oLXX4B7K$>eWVn_#jMfMFk~Wcg0n zKW50nJuJvFXjW%pjw+vqggRo_uydxO?K6Z2x73}|BO%#teKEx{@elOb<|eJ0ShXxR z2AK9ag(~82dViyzlS$duy|~j!M|Uzvj5gJr~yI>rSlVd$a$DYj>FQVtp466-*eYP{OzKV%;UQ zN)op%l#8gK`M$SxxtrX8|KN07EOy!~Ti)XcUW~p75T>4sNGOFl7EEU)yWEo1d)49E z32Y>g(5u|@JBx-Ad{G*a^9|!CpInd0mb7=P3c)75Tnam=ao3i5b@8b$)vU0U-3}J#7S2bAF50Sdo_0Jt_&E@wnojrEZoQUTkhMynp3^^AU4Y@SO>n~yVOV+rI0F}d!qq~;pZ zg;*tZ?k+GIf1akMuU_dKq3-lEDA2ad!5hTJU@ng5F(N0Wipy$IO@b6T*wK6g#Tawy z3LDRHIACaZBS3vY7S@erUp@#9@3>_{RdntI$;1SZ^iCrqkhdt<(4$M zLJMWe&`|fd3K2Hw4SI)qNa(RC*#np!7GQru1idmd5W$sKlnxXIMEe~)At9XyyyRd9 zrKinB#d6a)q1Ep7Dfc(}d;W_eHS1MU85 zwn7Tp$_flPha*EuI+p6j+v>(eaThwy&r>@>S6n$STWp#MEp@8{{{%Dbtrf4D`v0nS z=zHe>SJemU-w9)k4HakG{)&k-2wmC#)ZYHEyoEj7f>%2bJ%}hJk8u7G5Z%V${Mlso z^6$2KSpWF)f49j}=zP}j@V`Q>>91(`e-2aq%qx_X6ySB5LxBRmS%mG;A?=(%1mRCE z79Aq*p1k$UbZOT|CYMJ-D(nE?4uGGuUH@ofe1nMA?0<)CZ&57O?h_x5b$wwO?uzdT zlaY{=u`v;?>EDG9iQZI+VtDNoc**|j7q7o))A~dsth~|wdwilv^yWRLLR?J9pXiV1 zdzc)GB;tPR|N7Yaa0gc>PJ9OLgCQd!1$DTycVr>MbC8ktct!<(mjBZ(|6!mgK#jV| zzhz_jgoMQN8Ux9eJsI`0PPHl$k_MU(mb@d(vJ-k4;>pvZCqw&jfvS)35PTPx9fnrIeb%PtEO9pDS- z?cNI?@1u)VVUH?v>o7AI9PmKZd#MM#i9#*TnzXuif)!dL^WH)cu3#^UxVNhm znFpk56+%N#`%V?YtPQrYN5;0sOBv*D#rKGJ{#LDIOW+1 zHJePmR9bk^qR>eWPjRYJ9p|$H+LKd%=ml=?RlTAmy+&tNoaL|xDp(Uex1>7Y9og+l z|EN3-8W;Fh#fq{|=S0>+RI_g>n3__%A*}=uFypi6S_~cVAVhW85rR><=O&Fc)4?kJ zPk?1oc=ON>AyUQRFR`ma>xQdQ2L~pTTr;O1qNkhN-ogft0Nbd$i07l(@Znfu*PCDI zV;QBSuqs7P$d8#=f4lVfYcL=ZLW(tVF?Quq8of%dT4zz`N4Zll^t`TMb+r4X`E_=+ z(ZUaj1wlDV))UP#n`uQlUKWV!H%ei>$XIOR0pYDVt}A-b+l?=dAI~*)&a%SoAMJMk zatrj|H7lV_H#1eat2$GUG+qb>s?L6WHm~#xu>T{R8Y)+d_WhyglzIVYegsfKjm%~J z{OVcO%9p%BFUU{sx1I;k7u=Y(^mAOuTm|LZZXc4au(K~)&AA(1{;(0G@8r{&¥y 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 EKgx9Pg#Z8m literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-24.png b/docs/docs/blog/2024/dsc-error-flow/image-24.png new file mode 100644 index 0000000000000000000000000000000000000000..93e467276cc3aea8c105ee074fa36d8e77b88ad8 GIT binary patch literal 206047 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

={-?Cmr}BUZsn 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 Qub)*+NLsM)jh6fW0@?;Yr~m)} literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-26.png b/docs/docs/blog/2024/dsc-error-flow/image-26.png new file mode 100644 index 0000000000000000000000000000000000000000..a0858b42accd1e3dd242a4632a1b5a815b8615d9 GIT binary patch literal 30073 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 z zUyrtW9&^ER0zY5RT8Oj|dVXTLSECr>E%>;>wqRB%V|u$&Iy5#1YOr!!Tom)yonFqD z#0WH;W$hT<(1A4&yybY@sBPYyE4NA6NpN(z+ug<7o#{|VcDD!PbdXCz`aT<@ue`w{ z&Q2lCJg4_bGrG4>onyrmWqJ&pp|fn!J`F6TE~ z81GI1X~93|Wb4KknJuC}G&Y^42s z)Odb>RGPGbQwz#%tcqe!6l&cX8$f698lehym>bS5_>L54i8&O^cTR@emz0;cxN*`G zJPBG45;ijmS}P}>9E!Q1v&GzLAXr_|pjU>0Q7~c(I=LLMAdH^juT*(3%y;XBU3DeB z5A*(By4B25I_^;8oKximOl30QkM%b3XFj!o>}K=k(teGr+u-Tbq%_wV7$=>ez8;^c zzXGJ>#_GCJ=u0Ypu)mkxrjC^=raL2bxK0RBJ9~wRQf3UH)xJo-!>)AeZy?&= z!PnqJXn+S+t~y-lyW#Ym1Gfpj@=i9(qP2Ln3*X@|V{^IWl)8}=s^uHumZL{6w|C_VwlIB-uT7p?fcJ7?u`GLaqEP!0{iE_Ofm9HE%Auz+Vz(1v#49KlvdE-|>&Pi!x zb5#YI?Ql?vJ<2rfUx?5({BtOiE+-8eC_C)VcLLL3rCOmsrAfNtP6{;nxP|dw-#5Uo zY;P>3dEgVrqIB_5qn?MAJPdaW9>>wzbe}^p)jWXiWJ%&_?snT9Ep>Lb zaLF5-78)XN8uQ@_F<&0@cCq!+NG68?l{P5>3VBACXD2$SD(wB+&n{hWdn5weH{}}b z8Abc6Q2(=_K}|~U8F>`U4R<&T+a22qnO9BIP#3g11cW@#``R!AQ*9~-$kaz)#y!aA z!xVI!ioQENX{Iwch6{^Yq4v*>Lh^xq%2ZLxT<8Yx?G3&76TnF8td4BQMX13W3TNJ6 z)(5zyAf4h)hgVdm@aCSfTj&2hhaUCAV(h;)qkm7pMQGek0*Sc$Sl@Hh>bG3WZK)Dk zh|^U)MIHX+N(?{bk5R_np5kqOzI!)}(RGNm4?vFmMPjfIEV)F|k#Oi#mVSd;8+y_} zSJ0LymsliJ`77QWf4S3V>(%LMPE-vzGO06|<=58K%PsWRE0i85y-~{q5WCvpgVhsW zI!pcbvuRyAJyEUXTR-{!#QhGfs8vmHGMs~)H)pejqffc^si%_J-liyaf-rxE9n5+m ztrDirR+jxC2MkVrMzdJXERsLNTNTb%LZZqN_D=yoVRBh%z=zP4(g4p0N%?|I<|a|0`GiFPxzGvnZ5V)cn19Wxni(pt8wrh^4NDRDCEnAH~v;smMn2Y}zWk zh|Nn2EP5l*8WTp}iVP`S?MsRY2=x`jsqthhTQZwBG zc4vXI%#3C3&etDkd;N_-;-UMD`9{rCKT=pR^Z4UHemq)u(7nDxV{~Q>eAy3hc zmgc)oexw6?QZcbXP;YW6Kh7!KVTVeMDU;DTY+CwIq(FVF1Q!h?PttFE@ITPLNI&UP zYkMkWF3LKtC(23&;5N>8R5r=>_wf{(J}>}t||MwkKo)4Y-24_ z6bqzmLG%3q78bw(9HeE!KB0lPy<>xY4dk;ob!*RgYC~h tQ~FQHwfxRc^Uf>(F9^7HS6uvIrmJ`Dfb50tS@3XTR+e_BiKjeo{|{om4ZHvV literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-27.png b/docs/docs/blog/2024/dsc-error-flow/image-27.png new file mode 100644 index 0000000000000000000000000000000000000000..766f1da659b19d6e03aae12a738eb69eb6c7fa62 GIT binary patch literal 315143 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�rJdkHDk!Chd(@9^o_-%9oQ|c4V(t5Uf4bkC zcIYrrf_$Do%MH^zmJg7iDzd`rP6p~rJhU?uR{_8Xrk8S4i@bK88#~l#nMTG2_+3Et zx27z*<6N>~9ZoeU$%!~JB)(^V;CNM@eVg0FsR?AZ_m6|eOR+a)q72?Km8J5BaZF0v z!oe+6SkU^TN_za5JgRAO+BaZ{`jqWp`;as@4}?_v|CE~8CGFAiz)hmexp6d$IE~5$ zlcB9Fg%sRJ&VyJi9=LqA`<8I#|F>9)`yT&aViWV;SV;3rBU9i1)CIjIlh7@JQ?*GNjH*qmYXIPH*|=(b1OC1% zzx8fd=$zM^U+U6AL4l2?g2(gpq0gYkEAUG5eP7WJzY60vzlq&JnoG$PWI0U6&7NI9 zto`&*+(+};wg3G5&$mAS+2H5@S^f8rK9G9;<(cO(Man<^<(X>|!Jiqln=X$q(35hh zx}RF2E7Mgbq}f~&5Mc^EVkGJXO)ZhMcnW`oP_Db8_BDO-MvMS1*+!f%(OUs9i@?0) zps@e9yNL|Pyp7i+KSz0^4$02lKde_6e#DkuWrYKWZTCO54Od^m72SVI(ey*-un!!#NyKK(E^NGdKVcrs-JL+E@dhlw!58VQDeQ`uXlSMr92~{5 zr$3TwiG1JS66capIX2vOq^j9_C#!p_Pi3W9pW;|j`*)D4M#<-m=h|sSVf-T1LD1Bf z7;Ubc7_22i-u?(j$Ztc(m{*`Co=YJ5AhXZbJ{n*_N+zaYvv4M%_xK#<>BhZw?w$0e zPf|0)?;UVXO~o7MuWNzfohs8yJDGK6;wtT#MS#={S@T6|R`V^X8S!sYv&z-D9W69T z=G|%a-6+)cxLMrhDD_CYYe0H6k(u#aI$BCYc)2T}VSS2rZ?MzYTl{>r;D%X9=u!Y+ zSR5{wEw|m3=JBgll(s-#7Ihlx?%Cu1q$@8Rr%`_E0O;M%Y16hYsCY=0ND_drv*zNC zb&@jx3FZC0{J5g{#C#9t>-o5)Hn;BZYg@ONIP|=*I~Cj6Yxw{OE*Uxjkj+B#3Bd(I zmoBS>U7s>m<#&#rkirB6Dv-BJ#;h95fG`Z$?EyTFmIy*Gxn1WP&-jq`RnCDdz=dfA z?qICCjr(_%v(o%#|5gCtSZgeAzlFjGcaO_D9XurVa98R8>*d{GC%pvd6OH6O7VX+S15$!%zLcXZwDSn-2x{4Av}D!rl2jD<6YP<0to&kE=U-`gDuii-OKC z9@}kLViIVw*L9%Z3vPu6*DWa#(y?LG7Nt%Mlm+|N0tANS{^#VR6?47O5 z>I;7Rf=PZZC`8Zjdlm00A*8i#ie?NynZSlig{N1^lzB-94&8eWxBj2M}@(m^X) z3Ob*2hZY+~s^=>ptf=r>3le@-ZA`PE?r$j zAW)O#vKA`|DvhiGaWYnf#* z*6FmOhU>!8t+(W!_5r#mwI8yDaX}y0w2J5_{KGR2O#T5a8Cz|+N8ctR0y9z3P(cpJ z3s(pIR5)^-+Sm4H|1Rnt@3@l#d&>nf9DwPsq9#*|``$zlj|cP8nlD0a)Is_GQo*x} zPHIizeb_UP+g2x=H(*05B^c{57lPy}f8YteaI@zM0AbSvJ-v0&KhA9U!q!ume4@-E z95HC<0?Z66QejnB6a&8N16*#wsI3atQHh=H*q{lcwelTdBiI{(kB4nJMJ?o%B#lHY znl77yi_^OXCVZZ5%b#+PCTi+)A6Hv9lpHYRrp6sV5G_S96_~^Rl0RujOMNNrt$xyk zLVvlp|~HuzQv+P;s9p6YR;-cv`-;> zC8Sg__SQ(FtH*eR#EK^{rUIm2bJbs@U$C#GU#5WcOEHh7W{7kitIb=Le(?vATa}Gn z-iE~4724#8JS4@;fil$WdDXN9_OHk^bp@+Rq{LA}M7A7Nm7Rt72$;%jyV~A5I6oRF z0mqg-PLdyhL=)f=B;am{aWvp)zz@q^s97#*!f|vaboKRJvj9Z7Hpd4RHfHtIT+}Sq za4n4(5sNU8c)E0B7^@QjOtL=CM7eB%2`9TLVG|a#%U{bPOVmTn8}9uz|54I71Vg;A z#vGw?K*-PCx5`%MU-GOh*KmEuy5R7@@7@ByK3fl2D)3Q=Rz^m4hISgk63guOguI`c zQoJD6F<%XQg`-#NZ@PMm(0sj*!&zCnAC~9LU3q}MtM^3AGGX?})c%SD7w?oG^#*r_ z<5o$AhJmkRl0CwzXYKVwqh!qI|EOt0qnr`1druhFaJe_WigSEq41IyqweSwmw~L;u zfJk`m{95J(z{7Q-rTV_keAd1x3bH($F1`KXf{ovF)HzVp(GcQbld0A*QJLK^nR0^g zG$E*Gf3awB>50;^Uvo;|h!VVt?@Ii*TMuL*Z)_-h&2a8jXu>nm?FhVo7X7_c8WM;@cXP=4{qvT(|9QO59K} zAE%1L9(LL-egLcYa8dP&zsCq!Go|k<}Ff$ZLWw< zSTX9wJlKB1C(;Llj2_74jVu;HtLHL;m?d4kW*+AHUXU%a8Rlr4mBijWXRPdGBQx3i z_yIg(vR@j~dp-(?d2j&|?G}xN-H^Hf5Kh-&gA+wrpNY&9Tm88~kMW{!7u#glK9RYe zK$DDg-n@7Ay;wttr~~k;J#I#biG76j(0^BlNIg68l-kC?PG9tBub-$m8zwq}u=PUj zg3uOanWx|G%F-R06i%O#n1eqop?Z~My z$04u3(Gj&H#FU#?y;=a^kkPAQ%zAc%G*qoB*EWo*hVQ)-LVkWIHL;WTU|}RymICo^ z4C_gAYcSI`Tj@)QFqm5>*$(Wh;LrYc`qvA<=}0w0b^wV^`M?Wi#9Re#8{xd<(h@T| zcp`xeeA1i{+4F%i+SuvS)K)a8J+$<4M)NhT@#VuX9NvPwb_KHRs8)WXq=l{7%@k{B zu{vGWe10mzN6PvK+Q~SeC8lm9_3Tj28F`Qy&wF2}Tis?xZ@TdZ0`!Ds-;{7J^m#sL z>)`c&r6fWi9y4x&{N>f<)%*qZqW^PEtX{&Kz0})45eB5a#{wtU$H~P$10&zO+K9?) z*BGYm9Crs>eq3ILT60&@aofB1WbxWnyhYI4%luw|?S}?J!}79I{CDV@tr?nX{g z;KrR@=7)!I>L1dMbk@uE4rA3j_M^sJM}w(xP9UdEPIsC#0^R^dgdTKH?*>-x>WdyS z21-ig`ZV0ed$f8Bka`c@Wa5?W?=(kXhXf(WqdgL|;OTHa>I_6_m!Rk6gD;RXhA_Yb zuLKJC$6aF)Vw#huxu#V`!(xlyEPB;eD0QVy<5v!+pDVwG3(3@S*>!vRq(^a>X=O|; zZQasC;&iU1mnC>YbcRK|68+2>L)c5-6T>Y{J>u?lq*-pwZ6FOQ7@pt_cabj(O zb4kBhVtu{Ry*lr3UicnRQBy`~wKw10jAlq;-tCTM&mR zG;da0=}FWAa)AR(MzMO(P)y#{I)Cm}!YT^!@>n%}OQ3ZhJxi(EcB9j#C)VWcyh4*k zCMiq<1hZYc6MtX_h@nUy-+vK9MLpG@>W3>+GGS5ZjKGo`gL~SKDDqatP=BT!*I#%K z-4)J-C`14r`#-f%_D4VdOWGk&DM5AcX;zymtZp7D(k{Cs4bbrZW`>dgL+Rz}iv5qb z&$VnzbWW6=%nvN^NtoO7IRa_u_5ovbffI(~(6mP84QvMrR*JFR^n0*fZS<~B5r(jf zAi@wkWb;oEMzT8Os|Z7Q6I@JY)%PT&c+c+Q*S@EBF{!>ANj;8$^6743OZL*}eQ^>V zd_MCG7b>jfq!rMs@6pX9fa&X0<{2@#DXO}!IK z<eK9)uj4deJc2-BK z+mDn!sEi1!t2gnPr#~lp+fL<}yDw=gDB9J!C8&Bla8A#Q>hV2c6&g-?F5`!s#vh0* zTc%mnxIHRg-K#C+EbuXjMV0P*FZRG7S+hk{?25kFF9eOUvN!LKAL)MLV0*2@DWt`H z#=ryr+tf0^5G&NRgn0aHj-iC-s)#ZajI?O#leQ^s8DW+^rSVP~z;df?__$@vWkq;g z&u!P;VgsFpb*k6~pT<$jg0(F4S^)92IpgXe@V9e_s5gN_D6-CNhSiz*~epKN33$FxGvY*yIDq2xMK|sh4~YBtPBX+2Q|_M$BqQ(hrSvY zb}^K?A0$Reo$fIcRe8T`@5*#iVOau^!rt~{l)O&!kwhy}2EG$Limh3f*3nyL(_k91 z_$cp+b2gH5>$rFt=wm3HkR1f=|G!?0f@k9({=ph;5&ugV$LwfNNO( z7!WHV@-EE7xvl$ei@nrx%p)9A#})0-)|k z&vtxm>R9bLI66rveV$I?EQu3cJsxMfeP`Zc>v#9>lYMxcc@+7-GTFB~-;g<H!R1 zZkMmr5p>z9lKE^xvmNipkX!R0WiARlNH!AfP>M}>iJx3Q;R=@NLF0A;ULzAU zEIHRTL3Z*5<~2=jkzx?oXrH5PJu$UaS(ljnrsYE8yatV|$`mjRj|Ie!Ek{c&3UJ6( zd^7O`u?7MC2iWhO+gGYw^wi&HTmj`{DC{bm{4kzI*rxD=!Fh%|b5@4jcJjU`upt5} zZDSQO0ev+0UW~r$-l#q5!9XNn?o{rV z*)=3jsaGi6>1aUp)VB>pWyk;53`8S9c}DQ~e+HueXCV6jp@FChE^dgZdRlHQ1gZRU zu>Pix{ilIwvF`{57y)S*3gkn*iPUt6Zs6K-YQB|YUR(L9w-$CSAL+zD3;n&dJ`B_n zeZEp54_p1_jKw#KC#pLCOU08rJ=wY)cZuMk$SRl>GO`_*3*U7!iGKo03KR~^5|BUT-fAaP|DTjc=C=Sf}A62cce6B%CLntSf6~aB99hww7-BnYc z!{D^<&Zo59h!Oq6kUceMD+cNt;3CDE{F59$@-7#(496e(pt=>4iyyaN1;0)wU$4WZCV+GZM*RNq2EQ znN^uvRoIuy)bhHe9f3iGsUaX~N+bpznfxU%wJqZWY?A@!+(^IKaUhyOZ6Ea`FGRr4 z_bgTpv2JB*)w!Au;n&I}dZ|O4(dSh$+0jxDq?RpZTKZRKLC-p*D}SJ4kD!#_)~jz?Z};BV{1wI0KX#=;VX-zb;4PG_i;yX?M~A z?j+@=8Mrjy{bDB}1e*Yx)3xg^`8TDIyU!k}>C$^I$kD@MqsT(nfY11IHJ?cUlL$Pd z1yur2PzYSYWhvZ`l>PCX!A;o5F|IyhSNpCR*@2%8#c*(X{fD-bSHl#rcQP3*)z9<) ztb7Q@{Q?ILxH!_&C_sYgrUJf2LM2#i3e5ka540Jr!y8P>#FW_Y3fpm zaUd(*P$D9+bnZ@#E|geaQ(qn_9oV>N4Y*Ja%b^!g5RRfQ8zbI%y^VEIMs?EK&gMy1 zLhZ-lj1_PHe89IrWxYB(oRF=%FxP*z;Jm;rWWOo`0{Nfzobn7N{o}mbz4?fI{V8-g zd1Ds==!|sAYU>Q@eSmkA!@mbzT54_E{*BH^1hA(4uOs@p zn!-LE?B6~70lh)humYkwQdrYa%o$VGb;IObI?TO&{}fbup&Hbmkn8`lY3r=WA7zKK z(JG>I1t(mpEn<^evPAIqZ278fF?;&mE69AWg0|jb5099^vzp@k)}rFY{=QtBhB4|ydJcfNmBlk4&>MEJis zN=F5#G$%pTEpt=7B1@R}71!B-&66XL*{RxBFJHB6cu9*I59v2c&CP=>infa@AqTKV z>#X%zo+hat1EzgLan`XF1-NG~Uuh8CLaTkzg+YY~M;k*Mc|D}`*fIg-V3LH~E*M!IAo(UYS!|k%C(66L22{Ha63EE`kLJs#N~XmmfiA_Nd_k82Tl2X~L4*&TwZa!b zR|mf?1zohsbrrzqcTe-6Y=1VUWlwve716SP*589wpAPIb$Hc4Y3es>BN!@b^E@1;Q zYB}0d1Q>THxiEH*+u&fZ?pC6bnMR25a#rku_#n($Bf$CT6cfrz2->ML+G&;wLDk4^ zF=Wrb<6cReyeDzIeIaO!SQCb`pcFgPE)Fwl95{+Ha27+0*{_j)Z6&;dfkp?q53+9;RkKP^ge?F=QaOiEza|Dj(!ORPaAi3?)1L zFDZsF2L3NG2XLqZEzK8P@t`AAn}%bwGc2*N!QoEn#69!f6f3D2q?NZ+<1sT!qR*&bk5>;T=CoD@I5i%|8q5>*9WM8>& zynbV~g+Zby&#zTe@yWz%(LIJ-t-kupf19BLwxQb#+qmg%xlw1QN(@8PtGLa|-%<=c z_EWy14(Jn*gQa4*g>%;FBa5$whvN!V-KOb5?GhAO#=gMzkb)tlgR4acB@DKBeDC`7 zAbSgz6FsA+r1u53QvA4cozceB>A}g<7mD39=^J0J`G`8$CKuh)#t)(ub?iA+uBLj&|>*4A)Wu)w~2R4aZKP|KVTAg_zE z8;^lRvtFGn5`8$Usa5L1e09bYbksAh4ZXfcTh>^kOBx{KbgrxHjfGituDgtISlIs8 z#==~Qww6J%4ODDyx&H2|R|u!&g2dxAGk&9H*N~%*4-9Y#2^g`-11&C-Z#NAzUmQKh z3)9x`9399hr$H3$enf9L9Egs+1Od_nHoHsRX<^!Z?;WqLZ_Q+uG`rh22I^rO2Zo)R zv6a0K$)cfH*@DaqWJAOoJZt6_sXu75lr5Dc+y>1U7(a7c$@ z1=YE!Ww-}f12>BZfI)d2Vi~xco0tUFS1D* zpH}Udyj7Xdt4}ha#-4cfxLLExUAJNGZBH&C-Vr|AgiLMe^rEj@2Jc5Vm;8@>LWoP9 z*I9q@3Hj&9K?}re9;Na1Eh`#(MIp!+qlfos|JZyC7(^qXCj8yhuH|>1U&`bka6sr1 zG%ZG7HZgB1eg5=}S^B~x;rHS8!g{^-D(hc`qiyQXka92QJY-uTrzBBw>I zpiO#MXIZcZjEnB_J6&@uz?Pbh0mA>!cQF*2V5;uf^Vg|*l)-;CZL^ZyN?V90~6v0EKK+WbrX#9mN70-UztiFaLrfQ+xyBWRGSoG2bZ}@89ejxb`il&<|)*9pglAEv+;6P@(kD>CGQ*JQbzTL>rb}H`=I13;!N+j=C3N zFAq|cuaO~z&37^YOr|q)s^Vxcnf?g(8>N?=l55@@&pw=tz1s8zEvCK|F!Ng1hX-N{eCwrvR3}r2qPt>PUD&j{q zmF;s3LkiuHzh`$6DmIgLwd{>2YaF*_vN=}KRj(BxZ=*VWU=UBZWN0}hof~u641TKQ z?y_ZeKe<|F=iesqpO)S^<+f)_zPw@7gheC&1heJ>? z_9dlnI!dm|yD4hb&$a|@dQHqSl1yN`b!_f58Jr}%%04p;b|E}YB4n8AH{xmD-mT); zhSM(Xp7~NzKt!`^W^y~Sl=(pMkjvWcdbd)>LRJ-~Y);QKTjql8aDC&w0o545ozz*c zS=W}5)*%oFO?;Zh=jP@Q=hs?S-k*eOgrE`T?%$ZlGkD*a#|P>SV5e;b+wc?d>F3yP zC}OdqLOnv3B~l=7Iw;dq=D)4;5WBu?qO^%)i?#Pf^MCnirSpOayWCo)q~X zfAmVRm^?qm(b|=`myC~79k||xptbA{)0H>bf26NBC|iKwnhi6t;|wF59poPoDlKvf z0T7oBi+u*evNB}3YpzoRatQakCebC6Vg9>uD~4eLkI-K7c3{YMr9dmdxid0dURSxr zlKJ_ymwuYfC$G-tyIab#HV-LxD%vlk4YX}c+N)Uf9boy1<+SjK0osv{9p(>1bNe%4yv{+u(<9U} z(zg;aWoGpHxnZ9B(vx%xz$iz#v`oRi>>w z5&IeIG*e`B%24Y_!SI68ait$lo}!uz zAKF1$8gR2;9-KZ6rSIyjy_cs-vz^LJ)EE1)>pvNDL=(=e8gs%c2*;>f8_h$O);;?_ z)V+CFl4<|{Z8cLRi3uN7gX8IlV(Z zFtXS$g%5**6Xm{DTZW8#EjH8k!9wN0ydrwnxD_KmR`k;#4X*D7Avv%JuVWJ`;J5eC`Ely~dgKbGt?4(zIZ{uc|Eb z+SQH1R(_Cv=m%DN(eWKCSFqQOI+q1NrhrG3F&@AgA(XDRo?)a*+#&>I5`ZkF>Jy@7 zAnCslaLU9s8i(D|1tflWRtogUML%C3P_Je>Lw>VqSbs(yDncG;*f;Xq&@b`#ws&ol zw)o@XB9EK4LVv9lZ$}c2UueM$%PIwBZ}$2{K#--*uf3NKJBmltE*P4+KveFneBVj% z$IpcEuAQOb%YVguKSd5-)$Tn5C}qP25Y*wjW`pimsOuwlvy}4oF{O$-j|AB3-4E#f9C!NgJ-xTt`Q?Y-_ujBFxENO19j`-;LEk){tp;{AuOH&= zSh-1tUAv$f)zVqU86~Z(hW^%@xq(gz@fo?WSAkWP&)Edkcqs*}fCK(i^#135_n*G? zyGvr(zxTVJ%=*`U_gU8^OynuSRvY<_s-FS?y4=-^W**W$NwUs~Rrqs(7YyCJ6Wj;i zQ9nKfQp^~St+yA;auC7ADEEo9It$4~Aib*T+SneT>-h-DF14Ph()0Sw3}*Y_()acC zt}34KiNK|d_X6+eUEde*U0dSUW$ov?01CzDRhPryp>fqGE9avS!F=s< ze{sl3T-7M;YnOXXU!=rDwAS1d)qqV`5XuTt!TTt*r1RD=AP6-PGnhDFChX3S`-G#@ zC|sImx(mo}m%pqM(3L;XB*zY&Ler8TF7_$OwJ3j0G3Gu!6H6A7*~hjmR+|?P?b?Bnum_9r&~7^l!7Bi;&MT-f^Q~ zr`8SVN^H$l!j(tqHxTQ)B@VFtn;S-UKaJ~sr`EMLng;HbIXf`YV!g}%WsiHgQhR#b z%+2N!T)m(=PxO%~3lZ%e+&+cxe9pN2Zwm51MMZjN*${n=aRfvIcQqA}dzr)^xf909 zlbX1*;BlCgsyq>HG?H9C*$K&hKkgYP3uEjpE==E*Xr<5YgY?gY6*^$oiuisBDEox) zoc|vb<3$ER?XpJA(-g$XIbujxNA^m1Q@Ee_AY{OVGtE3phYl_i?f}`-1~g$h#ppv% zUC-j4q_(RvX9R@vTf-;6?Fr3(Z)&&K@_Urjq=q@8OsvM1|ME^%=gQlgRTr?|8xrmE zJ`JP&)2LGYkvm~xKKZkTP|mdqB(G{PvKG5 zIN)$r$qfaUCV&;&z0I^RrP|q{M)U&!3USpyCSJ=2>$;giUD?jTUA@?1$waxZ2z@Kc z^73MAA~v47Xk2H>UCYSB9T)aEUMEdLrIFQ&S^@(jU!)EwJQ^;}#saCP)yq6Qvm znS=rSk!T0g%;s>?!tlabfo-2D)Mg;p-CTFD&*c~p?qM)fXV|-It?FC{N%u%~)8gVP z__R02zElk!odd*-svS=&ranog`^3IMIn%X+k`v;ZjGKB}{N{d(06ACOEs9nKIT!og zKLRR01IjEK+jzRkBKE<(F7o;h57q*UqE9*a`W0*lAyhnq{=s8Wc_JTK`Lal>`^e&M zKJ(H+d=@;xPKEK?O;j(fo3yNRSMDOGBDHu_Mjg(8X($u>{MSaBEd}>${~gE@GKX2} zyG&i#U2{TfEwbpiPedDFFjjEhH8%%KF{)Es%-Q0=ZZG$BKH-#=SPO~;6%}o^Jz{_=px#o@M zZ_I1}QinY6j@~ysQupHSt}jp&U_kyUYG|?Vaq65(WH~)^(Usi;hLuOi1Cx%NGHK>4 z;}0JX{Ur0rk`w#ZG-#i}d@Ba49Nv6FBrKI{Zs6&Lq&ek{(R|zxLyaR{R3NrRX&V9& z++3@5WzR8KXVwYYZqc+%O6k6o8 z@^}LtTcL8G@%!;N?Ahy1WLh~m`P}4JlQ&8d4_d)Tma7RY03S0$A5XjDfm&)@W1h5M zn?duq4`hLSoU#O2BH%SIQs>%xQ)ICv*^ zxkDRnsX=Y>p(fY^e|}19v9GG|6f*I#;CO0^{T$G=ZmsR-s0mNRZLjFx@DlI)Fjnh% zpW{paN8XnPMbwYf5N)9taLXU1_8CC9a;Mo3jbPY`_#csr<%3?9jVnp|3j5EgXY{ZMikzG}aXi3aOue6PF z8dlU}%U~~|P-S2xb{FIGtg9@Kb)Byw!T9aR3+l(f33m-I;rJcRvd9m*CKI-Lsgt*! zJ*@D)bjKN*i%@~x+!Uo9u~NR)y52!TVw8s5{bJX$eP%M}hWY>oVQn;iT(0z8;4WTo zKAQz)L=4NzeOugbd!eS>uDx zTYl$>Os&5;`f|6VO`_da0P*riW>4*}ADBVqs};9<$dw%Y>!pGN!df;V)YTBbEg)y3 zK>|vhbN+@FWuR(&yW^cnWBjU*ackBETxU)%%-L#S3Qw)x8WmhO=kJG_YPqcrkVn!+ zSK63@lIgnc_{P zIS64W&z;!Iw!2%F6u1Y6S}olOg0U!YP^xI-6jj?{wl2_!eVS^GU~Z0zsJE#2lF!3v zAlZ%|k6l)Mq1-M`s*TMgixYpESkZ2(2@&t?hj+-UcZiSK)oUDV1MZ4z(L4;(*0mmZ z;J(0SLruNE6gaAC=FvMBV^tv5>{t~o2HV@(k2ianF;3_;Ws#A5FM zH>G!5YKvx%Jb~JOA>kzgXku^T_!s*peuISw19x=(#0tp>p6&aB32DE!*8Cn6t<<(I z^*z#w`K{r>6kvJ~?Vf!9Gx4SMKwDr%RjB%lp9-4rgy^e8`&SZT5)W9`Z39IgPK&;9ZkX- zJF!AIb(8FE-A2+Hj^8Bj>D`^$v75D4o^LS#ZY`EdUkk^^?0;%_fBff$_pEOX??0OX z4ex9f-QKZL>4fgF7rPeEe@v9a3{Y zm#HR$g3ZRVe}cdBG_`NLzXT-QB(}@QV<^u}$K47@-PC*AF9xepJmra2I-2-|N}%YR z64%{70?wzPFDE9BV3Nlb{s_g%>=bskCu|=rWS1Gt)kuua^6NDdT?LjiuYJBWxBIkr zS=D}}U0mE!80_4)Q+0ZdS=Nw*U6|kOuOSnEoa>4wg)_W|VW=)$m5e`!<6y7?pPqqD z-KQQQ-Tr5(B}!-9aGhjGps(x1NAqQB4Z zpaYsF9~&~3jMbv(3NGy_8}8R_&JPhENcZ8)w+vdLXu`I4m0`_*X1qdSNl7$jsaGr4 zv$!2(DaXoE>ZTkoeWxb=|GxUpbUK?1M$?V+*hRWKBvTUYraHV%mBG%r868hm+2Y$H zp6YbMQrCptlaI&B%BDa=u2I1dZ~GZZ_9L9UarhGk!|cdlU9&OU-ISMj$ah#wu{5@b z5ecu`*5rOW(06})Vl(yO!v50I;`lUpEemWxl6SIQ_vwP3^&p7w3vAFQU!BE6eQkx0 z9)n8zgT68|y5ii7ZJa<8b;92Hj@_rfR^~fYfarkpjF`ZBDfGSuUFSA&YTxXEV#~S5U^5J-n0eW5c~13Rdd(K&W(p;PGuhSzKJuiLLxoCmCm=U zp(t{Z@%3}<>oudKB32iM0k}Y5;JUw33Eq!O%Oh@x>FH#%mxzK80n`GyI+{XPUN+>< z(+zo^#03kqpdpS=65JuOfJhY}FD9ym6@r|yFyv_)vJ}xm2)xc3oxpKFkgwvqwXp~2 z-9NESYa;?+S|ptdDOy>psMFZP2iW3eFFT8ff)Ul#_I$(D6~U(-0kGQ&kSBgtKz^L2 zuYT5Bqa9==t|haq0>EtUr_9)OA|5%hgP^I(qoRK~dd+9jx!jM)fs4zzVjY)xJPQF^ zNVRAm4PzsL(Hz<&tk1vn{Z>hjG9@28fz*DfIrPg;_2m@9Wn&8@ClNshz!ktRuLa<| z^hHc@pu$rD)TC0c<)6^{{%fT^bieP{z?zqSUgD2smw7XHNLsUFg%vcq3vYF;XQ z{1%fV^5LhoK$w>X3}N=ouUbQY%d+{H@J&ewxKGgA$e)u(P^T+L;VWxzsBH|l%AgzY z!jY?nh61+t+Vk6P$N%X$@i&lj#(Z)YlKmRV{rV*T)mQ%dydFdDJQIp;1~xh(N2P^R z0l}vt#-^F76vfehrxyTeo~3O}jSh~8V|+G~$ASu`0N~JSwyi+b#qGn8u+ij0AYOPF zj$&&xiYMWJqESf9h?spGPoskcxcOcpuPz@QM(;%lXGc})+N*vG%_$42r}G*{Be<`L z0t;sz@mBnepz$GDPoY?I97z0mBpq~6WVu`(&i^X&O#KB=A@b%mkZ2_GJOQZlCan07}fd@3_3-f!g`Ie3+6_%iW-m*=YQAWIZWqjYnZ90xB7~T^@Ee^KKj2iHf`4 zav~)jjS01_t^r4~43@86j$AL2Kmh96=C>f52K*zIqi6P=m8lJH+-xGu+|lI`2Ae7x zO}#s#Z=)PYN4|*<7BBuPJ}B;iu?zFJF1=gn)cx31Wz%fR=^v1QRXo9K3YL5Z!!OpJ zQS{9%?_DVH%&oDROm_)0v6%j({txU5DIlv!`4|l4$z-6Zh>EPEIHMMjgPjj z@--*T+>70wEW{GFeLx8VdLG`DKs>NqY33(syzx4jzs~a(+1-WkDf*x;ym&-X(fQ95 zi@j!~H%uV+#?-sb4Bdb_KxA>AUA&i=0O6=~u9U{z#@1SAD1(wnD=3#O5;gK$m~*;HhSbEIg7S;O<85DI6PPAmzZP$(LJK2%QgfOSxq&hC{gms~X$SY2 zwvfL&BO5Vo03W(&TyeeOLgr7L+8?tck{ciH`6^vBp3BJp-CJ-hzjyg4CBYai)BIJr z_~n=aed(zgo{2ax~myeR-<_9 zrDNQzIGQY<&3|)NAwZMCg?QiG6^sD4(Sx2|xk#kh(M06BfHr<4z;a4@YCoWVZDa5% zUSY8G59h&tBXO0l={+ZkYeB&!3_Nu8b0s)f(nyqKp3t|BXb5EYY<&Pk+NCa{4}8t; zsa4M%dyHr%%d}RckX~B?m(chx1#%F*1>OwAp!J<=GS8gN?(G|D-NuuB9mf); z=d6ZV9i9!9BSdd6(}ET?k>p|CyW|rhQ%5AbumH6|9Tqk&Pv5LfK7NL-d-3oU?qCZp zC3^R3rZJ5BpG^jT3)O*nfI|#3-&GSL;Lb3U;1fvyf=%3rI_=x}r#^yu>;(gq-juN^ zbnnMOY`vE>ddWB*oX>(Im7DsP1B#sNP@Lzi5YtejkIhFTMwVN`8|Eeqjg5^)jHNgS zu=-u2;8D5$l#&~M9|v>!^0btm{N+#>uMa|8r3E|U#oTXoWst&KO)zbr-G4xDlVx=V zx6xa_DJ)(E+y9;!G>@{Qg|-ttr`h~qENezhkU@r-GL)k)&F&Ct8DQ*8oz!wAF>26ov{xIQU*Rk5c>O5K~IDN2{M>P&drn{UAwZA z8pCyP@o_2k4D9F%H+7+@8E7~BTL}bSk2OCe3ohD&qLR=ilrc?+t@>d(Z0HQ0P};+^ zsWbtkA=c^u2k5X~Lrg#hS9ZX|UTO_mauODSDCC<&Q1 z)xH|UG(&yx{!t<_o*mpM>#31)qUJ#P6O6 z3phphhI&&+uDc}1sqw0QX^_4!UC8Oh%~7dR$!%+B3J<{cyv~-#_HvTh+?v)-?%N^x zKv)9&7B6HxFNE3EVpZki+mbZ2yK@Kkwzoo@sfV2*ZDq%^C))$(i>L|ulI^*nIM8ef zwm2CLPGs@bweFNtHh0oe$xnljN&?GpN{<Ez3Kc#l-tp?;usP@Ra59c$0>cJh#REyfVVh69T?tiZky zDz;xJJFjK5(E?*Mu3ed|b(UjPbzr;eP4camA>VC*#z!{amb8G(>wZ+W&!}?OdttsT z9{9VV;^y;(9tkYFYQeFFKKI_uV0s~PaccA2U;Pvk4}@$APvt$n>^G4bz)Io)wi<)% zKo=%c&W(-XC!uTWT}I0GdQMC=e))Jwr+zO{(P|IeoarIU&~%{YtEmvqtFO@|u(gEp zo`zyoypX>fVKclC{LFg9*+crB@1RtK?zQELon2Cidz%Ne zz_N=R57vsrNuj?jo z_sD$cS$eHc&4K5NAaNUaP84H{C9Z({0FrO99qmn-vGhBAdDnWbT?SB$i$6j5<*jW4 zL~(AKjZin9e&cmN5bx@zej4OVIahe2;O8Ph1`=zuY&}?5wa$`p@zkZP3KS54x^yHc zcn@VAq5DP+MEZjXXD*RYJBl$+ZhSQ{Rr9?EA;$)f`;5jNi<#&SYP=eA^Z8#jAgGyC zwqwHW3B_YJ7IV+bAwafV`XG=XwH#^>Zoel4!T*}w4(gq}&d@&{WMQZp&ji&uGo9qG zkX9i8c_Of*D1dFB=f1A;(`;BVI0)oNSY6~utD)4*RV87`dC<9N382mvJvq; z#MDi{63^XD%PBArqF&7u*kFq2S7(N4@P%Wof&Qr;(CY{A2>p|S;Op`s8WYvfheu># zuta=>^=*nINA$`&l3jl7tX6VQg}miqRg($FolJw&oFNd}blSHarxY(M1$@F|Nj)HhDqx^{=4$DU*||&h8;k;nC_pQl)Py4 zPw`2l^&R$d)k3Q7=hTi-R#y8QgeWErwaxTzibWYPd+Iul@4iEb9<57}IP5;B|MMgi zB*UOV6oe4@_48y-x!jWbpq1jESQaV)sy(6;#QM$9@OIQh6<|Y}I?lzp+vPx_T zc}SYP5_zqFt`1M&@bDEB9KddtC<>N=nM%J{foxjr0n(MU8_8ELK*Ktwp3HsvNlvXq zLAH3~zQ}}apxI9)~>ENYgqw{}!3b zwcr(#$_JT1Yw_)J^HrY62p5%+^xQhXNVP(vMPvGSPp?i6W3dBQ98n7_paNtO!wr*h zrc`r&wGMUHpF}7a45VvYcANp&7S6Ad+uNv!FP4uR_S8d&$hQfU;DgAL=ZpPVZdGFk zI$7S7UGeEIaQ`r^^IuC_3RD767LXOyj^RqCWJhu$Satji;X#{La({(o$R_}0jpc_l z}}NR~u)Kl733P~2foy`wHbk%)8va}3 z;x8AdRb2OY_S^;!GxoTH+g5a-7E*idq-*x$y|KFaBj(;~&JyVei>!o>@YR1XjmScHqe=|eFkX~RtWa?E-nP7ms5`51t1p< z6lR9azIo73y~~xTGmf+<3Yu9;$*&7S)xd9YQ+h^8L&*3iY89HY;Nt7&^RDSPWO<1( zSLQmhMxn2IsAfgMv;O5`?s<$Ilj2i-dk)pRG!H+n$ILtJ()n#;V&}%ZYlpWQ{#cOH zt&1@TX*&XBI$^3Bw_W^msMGl6aABy^+l&Rq*&{eCqHIFC?*QWAq8G<+b8D|27T>)| zX}I3PuK*T4VT)6rQ3OUP!JQhG9z-mYxSNuSjW+nAfW5QxoN=L961Z-$)FTd{EYB)# zQ=GA}fW4PGKW-8hep#^TgIWRoORa4s*o|IZGM(^ z{f47ZB8z4geIHZ{z=whM9&mBK;2xF6|Ev>XNW;6Ab+_%UGr3{NK>=D0x#gIMSG zXp|Joj^RD0+_=kWbejU!TcQK>p^8`MJoZMd#{4!`(;M@f1##~!Mp*aB_$!4vhpT3q zGYWqf$GqONrK`poX?Gvatr=4u%F3z@8xIEk$o`jvC;Njy2M*Bp`qF^af$5!$Sp*5n z{#EjN5(E<-4T!cG9>1;5nOcsGW~MGXVM`LGoNVnLI3*ZA7K{xUoSGKRHHdut*7sDp zpY+`PQ5BiFdu}a7uKWP8S+yBk%FyLWK5fV3r!rRrvYo@*?N~fqN&#}A>M1u6fST#{ zivxxkZ@k-8Lajdi=Go#?G14{^-MluV!BWn~mCqA87mvp^pYeNhM-ARvE#X;_Q&t3W zjZ?k~_*R^h`}f+keh2e=FgceFHJCpd2pmzUHKOk2Wbh)+fJ%y9jUcej>=v9!!-kEe zkNVoc$0VPut}h%LezB|V70MTv%IOHC(7n5A`R@*8m#ff^%o4u!Z-KJlN zP?(+8;Wgaz(!SCyK8iJ8i;yzTD5_YCRXS}(8gU040v;19WP-nToUi^R#DHh~mE76Q zg`VqcyYn+J3x#(Kz3uh%<4xhp6t;rCt8lw=^qKoBtqvrNS-c$msEp_+Whl6-dei-0 z&U2uz9d(&-X-UjA(^! zEkO%t`aCvRk=BpoXcl({SJ`K&QLd<69Dzp8>Od^?79+`+fkH(4!0pR4;RH}pinskm zKKl-bS6gz-^O;LAMw#j8Vr@3AfD3*MU1~l7J=Yx&;daPxQpaKTma%k!ZW7_f8~XkW3)o+V7&rsyC=;w@hW%< z0|LrYKNJtXV$z!3t9zeTTnS!jq8kc`=||4Q=+dlCv8*}WQQu56M+&}*cLlE+{Y^~# z^POV_sjqVWvuEa}d27tlf1};`&H-CF{o8FEj+Y$*QLsc4fU^c_)kZG8W3?e+3{X1( z=EL|5_**&%rT`xhQGWMh({l*3oLYNoI>oLzZq6NcP6DiJ(~1JL$xE)KD5A*{dyV_wdJ7DHB| zGAKIqpUV1%agpb zh;!HLMq4QerLq#hUedp}7q#SG5Lu5?s5h@@48d`Od$h`}O9%lhIXvsgc`)BJY*Cy4 zK^w)Nk&nEJ$y^dOT#!WZJGSFSdq7I@NvbVY_Sw;3csfZwrIJr?HJH5N-5z^@z-1%;6u8c0|2d2 zVaB_=bXR`eKe%`_eMH37(hn)k6BFWRcDOWSo%+8*>sbiaDff|I+?1kliz6!d0!1nWfl2Nw`%1xxhW$>#P+EeP-IL5PahF?pgw@I(zI|+95yeYe zDAX*rwQR*1v=PfKYoe4OaqyvmQ? zBTrFG5FdX9F-{*LK{l0m0L^|6C|iOgMniiT3BEp7kY26lcTv66)V+Dz6|R?}_F|$f zTirxWaZa&asEAF^bh6cw!1u^hChtu->XPEv6Xx9x!{5z5y54=y6qPfr56NP=GhKb; zgoJlEJ@^yhcI|^Qf-l`45!@WKr%AEdel&x)rHObA^?|9M2__X4t8 z!LEvSVZnI@WaME-G-YRG!u-*z2e7LT;`CdOxs7;IR%*z7Wy!|5E$j%IKGpJaFRp*! z{#aRW#HENmo^MUYcOMc{?@?tiIz5fyW}BERZbF|>k%f$LpmtGkM5zpKh13k$1oz_} zcKNVntQZ;DGFKq(K>KmshaU(JrIC6*=j%NlT>}&#-=r{9^Kp4N5VRZZDsxJ5r`Jtf z|MAg3>2-n!1oY14YG4f`1C)pNz}D&iRs?u|K36?bAKpOSQnhnU&U_5P$iBZeAmZ_v z(Hepl*tRqQx@mxWI@LRinR7?rZ8q7h6PwM9q)P&jb$LDyxd3E*`))6I**U-`ubk^46R2)xLzvVfMR{yVz^5G7%T z2UZ2k9}QPngZ{iJrcmpA)Fj|00(PI#m2m-wgR>YHYM6h>rXnJn><5KtjwqO`+fTr+ zivb!n@U%Z3{{-p)gwQ|-LqU)sgT;}gRnqv}RyvqR#_<<{zZrmn@;@{&1v67+|6&7s z*<*(kbRl_|{15~)#F-}#{FS9w!gCeX4`_n`kBYK{SZqNHo~^vwH2P`Zj;O<5m2Dok zlDNcDr}GAw(3jP~IQ`V3(7x_i%eLm6us#n(EtmDJ|D-&xsk&vq%eK#B{N8snglX(E z=3iV!z;QFzWJY56t@#p0vAoOyC|oeX6o`Cqyq=#jrD(X~W?{&_c?vk;fa5CDIP*|> zdP6{n(g(agS>~sp*Pw>35KYKeWjbm4R{bDs8$bA`t zaKc>O;gQ_fS8FOF_2dvF-ShUuVFP|c#sAjAba9v!IGr*)S$Q|u_qL9ceSyobOBe9-q zn_NH2^%RWG!|xwfceZyaKnXIDi@|%q$~_#xbO@5DR|_!DnVfX=>O~7Wf0F>1q=Q`V z4?hS<^4u;9LHl;zTPhKliXFWKwdd^h{p5Y&lV=7g-#e6*>kLcdQfog;Qhmyg3S#B? zHYRqZyPQ2nps#=vg5nZV4Z}Z08UZI{_S~s9(n!Ug_$PtIV(dvCBsAQ?BnX5y;XrH7 zRtr_#7{6KHf5oMsaF zHl=l6t66ZFwNY_Jd8@DQ*0xJNy#^(Z1of)53wbgTWT#0HXOE1E+XO;gV|_;a4IC$; z8g4KrYdGbf^aZE#aVWAan;R}ZX!KUfyFJd*X73Yznz)V9>RX1fdndmj-m<|&du zqUju)3T2IQL-W430=0SFIC#_i#I=1^UGN7*y?=(545_Nj&+V8w?E%DN*&qtc2qMFf z5`Y43xHEO3RP($62mAoa-5S3sJ*@co?61Gf*cC@cdkf_aw-5~Q*LrPN-n#f=I5?HI znb7jsrF5Fv2~mJtuM;94QptA?J_-8{W)1yXrw-pX z18sA7-I^P%`MaqLBwY=wxV?MuRGYv`&*$yZ>}u)Km6Y_}sf&>0#o))*BgHc%r?YQOnu3eCrNfSL6j?PdxM8XC1hfU?mLA{joL&!MqZgKbeG8JDC^`qM5yv zTl00H#?5(=j)P0I&4I#OP-@SywD@P)op5006F_y2O zi$+8OAKov=J6DgnWp93o*9o~JNo;$D7{)2~L2^P)L(x*Ww&!D9(+D&)oM8ehESoeC zp5>t)K>N+U8zzi!JC{3Z9eNP^N_CkPfzi6>eUG!l!k6G(m^bmAHdvzdwNkc*{JB4* z)nsbmD>wQY9lod+fj{W*EyC?Es3`uww}lz5k3Vxn73xth!wa&pfE*gyVNmM^Gpx>3RZ2vW<25(2}5KN z)-pn8(H;&pOXFYJOe&g)N7gD1oeeTI)b_RaJkoR?xw1?seeN2{_c{*+IfLj+bbELm z(&=y=yp5R08nDtgbxApNMVMY@5S+7XJ8yVz8bC{T2VNfu)Kcfmo~Gm*LIx7Hx4bi= z$Fff#D{rM8xU#Fb7{^uJfHJ)K6rD}q5j&Xr+3c{n!@^s;P&G3ot5JACR^Q;UXFt&zsf@VO`R zTf;%ijT#lGz6^r+5JgN~{k=uhK<*R1>~WWxohghY(cPZiF?P76boRNM7EuYiEJ{{4;%f9@IVTgIir4!t4Mde)@|T7L zT^^la27CWpl;)RejWmEr8aFJsmuXyIZc4+hjw%t28uj~`S28dF^t`a+GIGbOnYszf zwi@S<_7&rt1qX-y6j&8}AE&K8k{*}XE`l!C2w{;p6%G)^7|GL-4%QBfbJnXeyHsc)Uy`bOn{ znLAifXeS`um%@!ak3jEe$u&#&9y$_K)GniUtfjneQbfT|FI*+fUbyIeDXZbPHBS1* z*yap|_&j-^*^}Otb{VXK8^e;p4s@vb2^yQ09XhrDwBlBn^b-?Nzi*;vR}6N{S}9gD z{8QaKM@9SVt^-z^=6$A5gV*|s4g_|7{3ppXRvqq)yJ$E*{uA76Vh~b+I5jfWgzJ31 z>PqansHa>^@l*yi%%(#XB5IY<9>Kj}c;fl%^-%oxT}cb>5&9_Z_oJKA5>R0Y?^G5o zpD7-(xJXlol*a~`Opx}mR)G%LK8aSV;D%=Xf}R*1us!j^iX3iHCo0m8Sf{nvQc+Mb zx3aosexpZL5fHhj0ofEbZaKH_a|S?iv6Y6og{4hC0sK$@8$I-nwuv8z5?wd=o;;baS0goJk`mRWb#Ge$`FpclQ6Lk z{W8t`!|K}v!$6(PF|4==?wV`o$!YT26oCB_*6?_Z{nBHenr8kc@kwpGVqW4HkX3g& z`)=m?o=ro%)5j5R3r|@y`>a-Hcc%Eks=4R0{wcQ3B~i?$A21K7f{uCOxjtx3NPVI{ zc;pwqb?{>Py~y|ElND%~8<_99K+ZawxWXuLmzj~;uYx%8_1YRm{Gs2L*q zpLy25*hSrO?3+YNrPwtT_Mw}?rZvQKhwdK-J3%RG-?AtWop6Zo)xsYscT zzJXEspG!0w>rY3Z1CrZ9{WdEthVR|LuJ7CA1v*||NvLaow4@MBZVA3NdpAt&Sl(R! zsK4K!+ANmkm)_d`z7iNS5lG?;i9cb!zc+C5mF%H*Z2bN31vHj_5lK@Yw~%UV zVp5_bi66TECSsCv(fxYFiUmePU1N1y_R5J*F>Y5ZZc6ydussuT`RmmzH7TN| z8s0FU-MX1N2n^7PmgbkC$DV7%T*-b+`}A4@>0>y0843?&zs%);YtMVF8xRw}|vvPamS0~Qizsua06I50?hkf-SQ@i$w8 z52!mUxTK6oPlrWQ2i;@s7n~V=Zfhg7G9^V7fdv;eIZp^PN*wK(%_kV*Gt1}YkPZ27 zmwZh!&%zHoZF#M#F?~7r`pzWI`DbSXJ2&oWI)IuwWUk{(&o!hAH-+X)~$#3spwJZT|ZVKH(y#%9)gkQ;f7Y6`si;DFMdDChJ@-1i` z^Nx(A+stz968%k&Wq|d6l*P=z9=mZxl4tf&uUy^{ zU#nd+_6_W7*d9U{;JF3?qml!7Ktoy7QNS^^M=S_O* zNCDlFz9svDvSa?qz?b+s4L@Mv_`39bg>h?~t&QEHv!RxcW9jGBY!e;?+8!5%3%#5` zD2tO#JXo`Kgi16(&a^OFjSfXNXm_oDcyLw7togYme-!=evc6B})lx@{xNM^TYdIy9 ze)EFPDgW#X;SAB^J0)$Fd`^v^{LYeAq6^9EDN>7$EXKbIni6j*V?fulZoui$@8Wc6 zt~(dJ5l_NSwRRp;?1llXos6_(707Iu%7$N^{8t<@6+4a{Z2Vt%{2~UKZpHh z5W8oz?acf@%tg9Kblbz~)OPK@JE|?|?_4xgd`^Mm6z2DadPwWG4&=2b#n%Jrf!bUB z#R}am^S{~wo7YP@$BwV;h!lT*hVh+8NiF;neVY`E)@Lu)C;&#_PtEYwY)wd zo1R8YC4cwEY7oq9{gBQW(2Ms$BK(Z}DkgM0i^8C}B!5|$dP_o^nqM=YA6G52cB=~2 z7zVm_EPOO}EQtpTv-%8QK_UBRa*nRXJT%O?r})%V5iz>_SrjM@fkv{=!^iYqpG+e^ z8GrMzrHt?oV&;K_zlfQZo&^?~#uK*Nk(RD=pEXpb@piq50r}v8-p!UT;9MXp<}kfe zrGkk)Gm8=<>!9R&H9QIoNX?08j2k%0!l(KNDJl{8%v)RnNwzQT`o_QUbMpLV7DQY- z)hO{dx8MpBw#77(^JZ^XYH(CrsBDsvCD(Pu0fI3&;_UfOMsIO%*X7%M{yo}3hXF0% zdU+UxcINevyo-$&5vQga3xO_fw`Z(s{AbajJDSn0NMGB`$@e>c$P#GSIUNCpCz#SN~sbONx?sqvO_2&Y9& zj2XlHIVEk%Al1~I_dbK}}-Nk!rggZIrT&FOncA5RLE{(mZ{_1cdpZ+># z{D!xzWNP=ALk6t3d+Z}&(sI_&B+?FK2x&V?fk3U#v5_OO z7O?Ae+I7_XQhpApGv@yq1lVHVGh-3^$X~4}i4S(Lf!ggHJVjbjA5W38F+~qRu7pqW zYzzXAnFi9t{6Taej60Q_)?Wb&BvWItHSWXvYh*A<6~dic7Ir1!M(*a&w^et(Xao4(!hMhcqp-oG%z$q}fS# zJzetKJz8_E_oY-zLeYyC5(y*F%<;?rXkQE{LBU6Bns*I4kaSOY)E;~N4EqcH60{Iu zh3<7F)sFfk3h(XjJ>BEIg`9bvrfSF57l8BI2(KUhWp)Ca*$t);i-3+X3*~Fa)JhA^ zc{>fh+y{3?JLtMFU6iwr(ms959bC+6yv$U*cdsj3H9#p6Jep`mvk%^_|lk;(hd&L{s6_vs?mVNJ7OD-0iujM?$Ag|~bO4qq%%nXq2 z4sUS?xw8KGc0)mYkzZkU$MtQPgL<|<8kD$! ziZK&9HAT9C8i3NtG2uyeT$*_uH&cfiB&WrfY`EO4q!$lQ+!pQW){z>VP`7|6tn27v z>6&^Tjxfl>xX%K&OV*GtFR~cCyj1gjE<9$7;#{;~C z!p(=&U+i(}xzyt{%tNe;4<~W5FXr=YgM+idFQpm>`}57Ool%SpM}1mGr5V)?tK(NcoVA4J;YGJ$EiBP$ZqUHiOH(A80L;v$-ou7~x6=*!Cb^Orer4;HYoZF8U^t335=yZ@G8U5qPFqZwJ z&2AtOR$%_|6C`06<;(tnju5f0R$3iVKzlANKfAPO!GAMuIU-rVthr`({Bm}dOh=dF z^Un@VT!) zzvpi2LP+BK%4=A|T1PL>ZaOyKJz6<{5e(d0TRj3>WFUL*!sr5}vaVebRkyS}T8gV*NuS+!7usF0 z8_CcApdq#4v4`Q!z*fOWmkTWJoRkYffe@HTwW#ZN$g@hLbuL~?j z^dx_LTI*jd4vvSp*CwN}erlekdrg^0>p{8m3<=PYSTd?LKSMMS=02jXY%$Fc{gh`r z()-Ca`JTgcxM|O)OZRXs4%{;PIP(?&SWl}1sP0+fZ_`_I)9h&;wB;#I*qjwQ)Fb4q z8%ejbOLjrdujJUK&+t5Nm>psk=NHbe!@~9(4`8-6Rd=Valy%o0op^)a&}%(lGfiw> z2)jo88l({*d&%%Xk*Lps)uxIe?Zu@h-%B~Q^^Tc|Vp|)IycKnt>VmQBL)VcTI$@C4 z4+cKJ?^tk*y>0x7BRkV*wKqJ^!i5CLRS`Xhn~aT1BGRTJ>&pMZe@I#LAL_uu^~wmP zLsq0Q+DODAcO3aBd*;-Y*&ho<%X?QIn~U5Pf{eI#HNJq1e6LpEF~QlJpPmu)7%>g> z-h9Ep1#J2kmQkIAA3>zHJnG5!dEL=1XV-8>Dw|DB8crdvtA(kCJQWv)$Y8$EjIa|g z@;p}^8mydC^9l}*IxLu?a~O~R4{2{659Rv6{cAg&QaNQS>p3|>wj9~FHiVF!v4u(u ziOIgzDV6;cM)tzk8DeZ<%9f5Ad83uSwznxSnrzGE>sXj z)c+bq-1#om=CHDct`b)|wY|~5)~`uhGVHbNO?If-E>)_~_IuyH?8V`>Ci4caI1GDV zL`!18F4NC*jhZFTmDUDsN<>vgIw6_|w(&eQt9-)k!``&ESJr4#>iHWEKIdQP65_um z4%z#dm5k3Tw)fz~T*zMUpLr>A%Slyc__oc@rpoo3PMtGP!8(mSr}-P1 zTL<;Zwn})Jv3FAHvI1#Vnm(*hp^OJ%k)N(xPQTN-?|#mFYi62rQ1#1WjV;ATl@uk8 z%)3gxukbL~Q1?J7NNEY>&c8&7j3LVgD;+j&kOv|(g2|S08AH16dn&r*;RrI)jC$r3 zeYRyS^ga^#yxU|_WJWuKjVUHJEDI#XWO|BYj9fryLvM=c`u<7{8r&Zn zY>9`@`WBwqsx92MwKrgVT1S&+pSGWfO_xV34|l;L!yDs@XEe^d2HC|T$Lf~ijg!~Q zvaCrfR90*;Wc%5{;L>f0&n?((Gat%|?qcoDECj9X?wq$?z)fkdtrdmOI($l7qvh8# zB)F9{)+mxYhD4LpCc6gx?}kM4AZmKJ;XJA^Ag@{9WYh=5;N0ggoE8eQ<4d+&b#(jA z#&!;PHjRH95+_CoIxKG0?v+(GeIGM|wXf4x>ghSBwaY#F8NH^XnQ($-NUX>Q<=Z8A z5$f%W(hw!SGKyAOaTU(v@;eH@gze-QpCviW|56zBulnQiIUv#^w*)$&Y^@t>!rY)4 zO{DeO8qnCYV@Q;3T$#)M+mKj?E62EB%J{I)+y0KxG%6{d+2r?G;7tQSSB}*=IDoD~ znYb|L>*3^<(cpoY<%@xpiLM6lxc_rY)aO9vmc$LUasMMvVy!h{U3JrEGb- zbfVZj!XDrU+k8f0zXimre(v_e{*+!C1SSYnl26;z5}FkaiqN-9qotiTUfJ-eO*}%U zn`{i8oaub`+O4|YUAROR{vlGhwjaoq)NWr()JQ<35-m?QI#_uYIl9)t$3K zc5rMhJ*}q*WhBmFAp45sJEd|4iKx5St!xj#lVjPZD%dpBf#NXIS`Du@52LI1Z{iih zV!<`>gYwPkG572Ci-jm~*-7cOf%)dTs(?|6;Zu(^R=$a^&KYZiyKN=H`o02|B@zD3 zk|>J$pDl?hJ{2C4;Y7uh(jzh0V6(1gjU><(UxpFPz!3mNV*dGHCtugFY&X_la}hI` z+fDme>VMedfF#bMIN#42Qrbfu9<^uFow16>ZG9R@qR$Hbph%vL0e6WMZ{x=H4%RKv z#m5|GH%@FX#S08(tPjhEP@uB^EG(j@(M>?wt_l6>&I0R;M9q|MiyoIl!k0(a@uXUJ z!XDR3(0h;m*kEBw`rR9r=7q1oB%5cARicqcC!eL!rrN74yFi7oIq|_`Fwg&MFYs@MSiFfI~>Zc1jAjt08nP&GjD*Ya9}x; zkR5y9Tjc8PzE0Ucrg@%fG!ndKE(>b#2y;6M*Pz&!>jFNWe8uysDgae|{xs?XPie$& z-g~kq^0oEa+}w8E>3q^)l>+_zfydTh{*6Vc^i2Nph%ht|hyZh2BUT&9JVV8YlcGW+ zwnLKir1Dcm;06ujFVH04dDjquOPInCgKnJH!&{B(gM4tug_<2`M?ci4=z2X2^@Z{( zBz4eYbM|Q3LI~QK_Z_4wnc}Slx(PH2GC@hYHgpq$Fd;{V7BpLi%8RD)mK9iKJb}q4 z*?4q!t-xRHJ+nW}wk(zr*7WPV*;d2ZxD6a}^A40A*~eh?eN`m->?jg*S&Br1q}+r-q;OJH9%Ajd_O@(($-TT0G5?CF-!K&mg49Ur3mC zH%}#jwc}ZozN}7Xjv*Q(qRL;4;Z5w%<5}T|vHG`fO%Ru<2L?OFlH@sVX47KEn z&{hIlTk}r>Jx9-6$MteLGpC!6qRR%e?`F774Vl20T#F`F!JwaL@@5kv=;c<;>mfvs z@_y?sPDU)?KSx6ac8;DmCQ(X1(X~6UH5V8cJ|1P4@^g{}2{dW;w~$-?#MxULCtgWc zy(!Svw;#Hqa?(f{_XPCYyZ`VdcCmbkSeca<%`0$Kq}e$)pEuqB6L_RyT4(hh*bQlU2qC(%oD|rbEQCh`&>Z z>@i7UmlLzztgpw~%S=t%XM!sF*ho&R?uWw8!xruvt z_E^iGM!UE9Sq$8kLl3ieJU2#CDtJd8-gb$PeXY7$yN_X*Qy2b5%$yxjgny1)agcOb96y zbG8=%iR~`hk8T+?Ny2gQu%my3Nn&MNZ@u+VEHwNbl_(SOnK!jc{JCvF>BfwQbelH+ zHLm1ZJLy!v6tKTys=1^$jlz1hXOSePl@w9%F?e}MqZyxB zXnFtQCiYpqB3Ly+;7sfn`tD3j$G@XgBr5Kmzd-4O?Q1xDF#~`XoIeeKmx}v_iExDB zl_-3_I=^t9_jSx+oob<^Vy$YEt2c@b%`^lotolGjgu#zH#^T}Q&nI~W;vv8GPZXf< z3Cm82$JMTsr4&>zR@KPZr(G!Lh9^CDj&tT=fu%UD34mnE8Vczi>pPrh-znyzJJ{7!o$G0e%YWX-U~tPLe3p7+GaX09^7CSPkbF=| ztMZOAQDN;L%0z+uY9m%%k*t5u8L_<|%KXYI6pdG1TAog*GgiF9mnmr2u!v(#nLJfU zZI#t#)az!Jw%1_7A9RFe``J5n0*?20VNo#HCC7PD9^Rd@2i+)85dG5Nt%F7Dqtdv8 zWUj(Jn%*975^z2J7*|_xc;n1kEp+^;=d3uC{}%|Wu*hSlu;>~4eg$@_$VzcLx6HE) z3xP4(Y}y^^;MhTC^d5STjm$5TIk@?UV;N=F4tXSOOj0xt-3C$~S;=s415K=KZobnYeiQlF@DqpL=b zJ>FRlUk2VZb?21GR#ryOf5^y==CNR8cMtDFiL7h)A+)pk0Fykuv9Bss+nG_7o=pE3 zox0vz{sD1zPT8m8j+f~4&;Y^rWS;BYk87+J#n8Fo3;~E@=4q|PN{EsP?x6+j{%rt2 z0F6ET9e~tX<7sygUjc|ay`#}yg6wKx##EThAtyjK`_gkrZ9;D97ci=yI}{o%7waB_ zd-XdCqWoPGK$2h6A=@gznC@ENaNTUyPB)WHvUs2T6rNZnAIql(i7hIwYtV9*x4)7z zQBJjU!ud#PZ~OLsS5!L`fzy85N$H9|tq#Lf2yt8X3W{gs-| zyjc|}iu#bd-n6|{%9~Xzg8HkFIN3aPG#Um6X+wVhUL!ZNreY6$aQ_W%$@(XitQNid z>Rmxb%PznQeQe{M;YnANIN+BN{mDhhAepto!uopGF#9A_O7Uu6MW(oYUC^l@ zLR_Q0G}%?bJtT$^Pslo`2A&y^U0S?igV9g2wkCSZ{l$IlJ?iw%RnpwDN8SUb61nm`!al-XVChax8cY{ha5GY1Q!r z$hGCFb2*wVe=@BmMCgotLX`97qWCw zE?HPqe*|I_A0*Jd_+;(F4|k&bH+N!A54K|sxD)%!%_d!n{^?FMS5~QrOTMKySrUYg z9M;UQLZh7tIaw+6j}Ae3g$hz*%+)Z)*yG6-nh(RnQ0r;57n#{~Hs0AWalXZ8!{p>6 z-j>tv2h1CMHp*7@rCbsY7TYiz)#yi_r zeWP$`3cKdI>WEBSbwucI-b)|;wjGa`(gASLZcHqVmdR-gm~MJ+4|Th*iy@JrtEq^H zywrVHRDAj*^8DM?F2`jnR#-I&n~0ffg}%n0%;$;KogaL3(=t`ZO}fJl-KgzmeVQ}L zun^@}1&$vuXHIgpugInT1-3FQ{!Uv%R^K~{iNCP)VtBT>RzYohbg~4>&AsngyA8FB z6Gu#(G3zv@b#ku=DYLV*iJ!Bg{i%tFHOSxEL_f~qr#>ugqWKSPVtL1qiE7^QP{QzY zT+WU@k*J8GLDFoq)eBUt-j%{uPj`SMw}T4on?>-6U+v^qDCz?Uf1+v-2bw> z2!6KL-8|#VM&dy$%$&HOEb=++O-7+%v9TV?l?21ixXx~Bu<}s;O{(l|T1o^+CM|CV zE0nrC&NObsR93;`+(3x*G?}p(U+q`+Ymh?+1Y+Cm?bkTpO5n;mPL!vz!Yp7B*$E^a zn!x1c@+fMvS652A@2<@sZDZdau&w`9zGa`{IS>zd5wG@sS5TZ_%*BGEq-e!+PQt@y z_4q^Pj2Mih?*%hbLtr#EDw?T6uU2Bmg4hvrrABDGdvap;zsFxM#Dd|}6N(GtchXnv z_v}n60a<}Rfy7Ws=GZP}ei@l@57t|904X9D|DL{tC2JbOUy~8Ay1ev^9%*yU%YebC z*?zFyF)+4)316H;ZsW(o=q_5@RzetOo$cZ*rf2;2H0xufcV}%i2?x;)#%MH6A;1mn zfaTEJ2C^Q$@{ts;8)$ck?F_s9sLXkEgw4OO!(Tt@k7S3(FN60ZZ*hjx=N@l2JBF!) z=eReS%r70`3v$isqVO5Dr{p8)R5FOKWo;BQfNHJL8P=r?Wi60EwFHyc}|v5o2cv6?TUhgihp-p<H?Zrd7R@G4z;cdz|Y~u|)NTSrQM|7Z<}}qpKY_fyDX+3ER*Ga>istWp_lP)t!p!NE6UVcGSsUu zwLyQUstNG2Ga#~`3UW(zANxa;+R(H^yo$gOiA%rOBa{CmKxaKE`lg`YkkXEvIO6}_G(gmbN=SM|%8ZnV+&-cw+KiUWEFw46FaUBZp| z%Fn7`#|K$uPWsCi5>7Q*lA{xp*>#a_hYj3YE~<6I4)^>&V+xRbtYw$J>Gf7!){u8R zW_j%h`?}we0npim&E9rzsZ;A^N%`7MgrD2Oc+-do^gnr zK||i*D~O*eZhinoPU2sSoRllo;!(5FP{TJ33o@DCJ&6L>j=H#(bOY-r8 zk$Aq%$ac}D7Ml^dtW>O&ph1G*VV*+TY@l(*#Bk)5+pnfqF5ERuJZ4TCQSvCSz(|-c_cVJmLs3}9+@PDQno%Xou%E@Ag0ImT5WAa3kDG+ zZCrQjyx1;+<-=&T%vXMPrQ1zKV7~Xzm3_Xi+jseW+QJw2rk@K} z_|k$uzU+|exlCRG_vKk)h~_w=iS7Cs*h-t-)>Z{vhw^#IbuLuSKFIEC7gLB~?bBWf zcYKPe_kasfg!5P)!U!Ygy4#AU7)%WVBn@eRu)=KMa~;y6Tu+y9wMi#C9?Z#;$(?xF zf$(k`HH-U~U`O23+p^J)!@!BlhDF6SLc8Ej0$AeTvLa!YcH1EQwLU z`P2@tkZe}1%rQR+Z`SkCln}5eJ86oog%auGSZS#rXcvfMwp?6 z+gH4YveEy?Cx{rZBc@jnXg}wl&C(?$>7;ySKcp$BI%~D^JRyJM40SsZth0%!@b~1A zQ1U}p+;Y2?Bj?iP661!cuSHY;6{A?}U=-fbZV=0&_`@K>0i2Q_`y<=FL6goAh|qe2 z;ishHyDdG3RykiN?&?ST&)qd|hk~coqrT3Vgl7cLg0@-1Or|R=2`3aS9VT)Ex@Frk z|A`z2#w$(5!sP3rJ8}VFM`XbfbTGDmcP7uojvXYH?+5}IucCQX%tmfmURTk(-~HstEV<~D%4 z<&0Q(q(Ve!g=U5DHzs4e>R+5+2;y7xO>UgnnJh52o_X3dvM=p%+=Noc>SdS3&LPNS zpWGoz;=*NglyzLNUlp)&IaV9^e^I+Y-WRK}DU*fN5bLbISIn$O$y7g_?!M`^@Pxfn z1!!EfdlH`d4|wX_#QC%VH-Z4Mmp+n7%x)AX zK%-lsZU)o&7?H;9C+~kl_+9`xptJL%V_oRMcVKuM+KB9w�W4zl`zm_})WBJ0Tt( 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≫>D8lK3%;le2tl+5N} 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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-29.png b/docs/docs/blog/2024/dsc-error-flow/image-29.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9077bc546a4e0e9fe0092a12ac717b7ed38b35 GIT binary patch literal 314410 zcmY&<2UyeB_cyIp+ghp?WeWTi843{tG86)Jfigsfj4)COLkIzpC4nTZ*1-s=vS+Fx z?2rZ$Kt|$V$d;8r7*QfK3?T`SMc&xo`+uL`d!HvylAHVe-t#^8o^wCvoKI42-mq8v zQT;~+1qH?H*RHrJDE#=7g2Mhw-|v(6TrqatkiUHs<7R(Jp?2WdlKjiw(2LF&6%@$W z1Cra{$-n<__nJ?Pf`aCgudi>ga~r`53Npg=D;GWP2dqdTD{;L@_O?{Zu;PZ2JuvyX zNA!0OW3jHK9=)nhHk>h;RSyoU**RSKJrNNc@V$Y{zgWc1_rkCL+= z9=W6j$-8*y>~X}{m&!}tfBuzo=+?uObnicpRsu58^~xpIgX`4`Nwm-qVm_5t�lY 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�jsQ$&q-|A^mOdHS%_Z_eJ$@hhYTJb&pM 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

HwVvK~PEyzzw6|Ds#+ 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%0AcyUJ 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ⅆ}1Aa z^wS7m64QGVsh)z9b^P#VFyJz7D;rh)6~!KZ%`VpLL)uNh@^3xQ-1TAL)aIHkr$G;| zFtZ*d#l!R*7`UO+Dx~+ja7;6DUk0F=H@SlK-t)3Hv7O zR`s=VqxN>x(wtg(M#*)1(yC!?y?QS|TId6+xPa0T0u7P!goZkRqR;621U_L}TA#@1 zcHzt8cxSAQwzOA>#fW0f<>|~bl_Xhw+}mUP{Gx>n-xOc>WEbj&6N5Dyu9~FHk>bc{ z1n)QFKf)i#eszyLb>(83vHxJ_A?6Tg^_gSN{oDq0JP>L<^gQ^)3#;}Zm?mj!wLhTr z?~sKe^RM1yA@KPR(@N~!yEN%x8ulmBJ1_Y=2G_{Jp7;bDSpmA(x8E!o4lCX{P3tQS zV`Gi0vRJ3LvR-?0%^n(XKdobl&lerui;!;w-h)`W>{>1W9H%jgP(}eGC3!R#X-FUiEXhlXC%SZC7<~jhO`t)A}h1SrWAq1)K5cTkZCE!76OJbeM+Pi+v@yLYp)98|!st5OS zeLy}(6*|0uVfZHX?n8FQ+S+WLBDjHM}))D|oA5d?yd;VQ@0xH_S0hij2ZRsieSx;YR5GX=I@fLSZ zra?UY84ND#MqRnkyKct>G?o=5*?m9c3PkT+;uaPaww{o0B7uED?_GevefvHj3l+}( z%`?MG3G=w0Q7Fp(;*`+a4Twz1zkepP54Ws-njQtn>@5Zo$=`2Xa5^9YYPfn8fK-&d z@+A_=NYqI&uK$jzE5J3}nxJf}d^bY3MZTI8;DZ$ZsTLkE+spmC{5TK|P@A_GJm73Q zcmd*R+c6P#iy!}CHE=?_tRW7F7E{DsO$}x*@uJtejUxn4qm3hgv(VE54o`OfU!hMo z^oo;~HfUP_x%ythEeVNZSDS(NhD=KKo|k?9l0F~1C(~P-)@i%NtbpBM{n=F_33>Yl^icLzH!1>K(w78 zeIC2!?dbJ!jksw*-IKU#3?wuFwCUy9x^ss++$Cn27Vz7-kloDhZYxeTb7lW6_bceb zVjnebYV|Z1AX46GH;^#-bGlJ0qmxa-`9kct{0^b-zf!t9!)0stpDBd>EUoSR@_tS1 zM082ZZxKb*-P?!we)eCo;m9s?xzB+ia>vZh1vg71C$voc_1V35wr4(Mhb1p%A`Eq- zDE7nBz^GW_st@4p+Ma8!(aNhIfcaItR<&SuoN@D2&kYyT_wHZxbWfP#i+Q1wDOTZ-}+|Emzt`#uCX0B z)!II0`{O?Yr#$|9;8bD;fC$?8g1F)2co#a2g64b*%0A01-&BPq>09=@W{IKr1-!~c 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 WPJB@xc6s}n@C%mbOMkm||9=2_#;w)> literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-3.png b/docs/docs/blog/2024/dsc-error-flow/image-3.png new file mode 100644 index 0000000000000000000000000000000000000000..08ce0485f04973916ade6a4f68db168ebec38b5e GIT binary patch literal 26566 zcmce-1yEeyw*T3L1VVxZlHd^BAxLlu?j9^?kO0BmEhI>Q;1-<5-5nZtcXw+VryFmW zPJZ|P?tO1w)!do?t2tE^$9kW=*V(eZpS4bivZ55mGs0&8002WqT3i(Xc+>>|ASpgY zL7efAf1ZK(hvcX#B?>4VAqFE39-E0MhyVZ;5zp^FJwY6!*-2|V0stgIzyFXTwogp~ z05csKagh&h`iCvP#l*ADyV?;On^+dswpP)vC7w9U47lY&4&O&=c1p1OZedX?N+u~h zuGe|~5clLN0)2>O;|WRtK-RU)@4)arvHi~Y4b6kH-<)4l3wae1TYs2j`Rt5`1#R`4 zmLn}vcQG4r;ixPVRSJo-)2No+6i+31>3(5pq0h43Dwdm@fve`Upflv2$9aEA$8xq* zFPR5XXT-)CE6DY``T#&i)Hi`HvyqevU!*_BW9Vz-zZ(w#gwu?Rc^xhB%KUXf%lYpM zC@5@y?l9+k8~o?ud!WAv`kzyT80bcScE-#Nv5|l8`AH%N;Qu+rNr;ayE@I0VZ+r8P zXZ&YH&6MgjaaH*8BkCCiU21TQK6<8YqKaze^>A2qv2eg%*XFF~b(WcPW zjqtIyy3Nd2u9o6R6=0;f?a1uzsoXoQ@WQs$pu&hMls8V9VUv0HxUYXVBPLM8op-3M ztxc)Q8{ylfhiTyl%n=G*sNocYs+?DNJukejh@;;?Hu`DP?bF;^&~xqQhy#{bDT+I;f$TwZ@u7BYOTHj;pM)~vDg=3;?tnz=AS z$7y*4^fbWD#%()-=mh|fNZW+Z-i|^_fM>$gg8kMn0gX#JB06et_hcGRQ47dAGH!Nt ziT6mq?oBT7+*-H;GzoX)xxq9X$0zSNjSAV*Jps8kIMuFN$ z0S!Ut5~h-}Z|qE@rPLr90MOQ~9gJ_}F5Yyo3BbxtqvZsoE;1n>#L%|N-bRsI39||x z4Ck7>Duoq_I%^#b)?S4KT^Gun3|mixgO}FsH1pb#0d1;m!U2h7{=V0Pk~qzZGNfbQ zzmi22-8*2i^5q$6AP1p7?qu2^O=o5ZnzJ8C!xHo`i*T4SkA>@_A6%MVtVwhzyiPga z9ai@}6L+C|1{m%X66E!r;azM?M%ZG`+ND>F$-Zt~-*+8jgO2#pb6Jo4eyva#Dj#jcYW_C1Em>e!fq|`yb~;C%-MBNlh4F=L5o#}Ex?7L?#9|P} zNA|H4Gu5-In7l0=3S%5~sP3ILW$&B0`f$&9Z=>EHv5RM!G5hkm`}54qxNs|OwF#PO zg;cA&-f%_9%GE_n3UVT+76r8AWl+|}pO;-k+uk%2&+Fm_-kG%fbc-*3@hhov;)owK<%Ku%pa&;^ z++nMM_m(=2ID}3Gl+3}{cF9uO2rV6vIvS%fok+5eD^|-f%`Av&jA2^WgW=`7Ru}eG zp6%IufBM-bc`g#q))VSYiUi|ts7KW@pP|<>{AkQvwWofandq6`Zgz5HPea=zCC&GM zUPCIQF;OhOZqjMAkC2_7PS8U;89c(wGw{TM&`lYF&T`Vp*fbQCe>$m*go<=I?>sT~ zQz3B|>Cn64CK5}2jc3Ew3$z3uit&%vD3xiN6oa>9xq8$ihP>rd*?R00MGwW#*ZE{& z6N-tL#B;d#7kRvQD#Fhe?Pdr-wq0z%bXNUU}3} zbzxMHF-g7rJpM&(9bY8=o~>tU

)(NkUwv&{z{2V&-}4x?_f2rE)V}Mu_GHl((`< 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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-4.png b/docs/docs/blog/2024/dsc-error-flow/image-4.png new file mode 100644 index 0000000000000000000000000000000000000000..508339974635b19b437373af8d7ac857943b160c GIT binary patch literal 259158 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�Gu*Gx+NhN4v=wn9<$_KzoO4ka_ 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%0D&Ex&px|6YGr$2geR!~Gg3lvL8u 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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-5.png b/docs/docs/blog/2024/dsc-error-flow/image-5.png new file mode 100644 index 0000000000000000000000000000000000000000..051b65e52519a092c2af91a008779adb88fee2be GIT binary patch literal 35614 zcmdqI1yCH_w)Z`O5P}B}p5RWf;1Ckr-8Hxl4#OY;0t65465QS0T>^v45M*$7=Oua0 zdG5LIt*`2y@7}7f>g%eh>D}FX&7M80r`P|t)(%pT6GuZPL*b55BNNDFkf*n2j!NPm0i~nF+fR+>X2P<<06;|q%AFy?Qya-nLemidAPM~adKLjY zHUR*Ft0YB)RowLUTeL$dXF!_-qAseg(HS*(ET$pE3RN3Q>;yINzFKlDd(YMp=aV$u zr)}F4ajw=8Zv4Gw{cA8@y!g&;h2-Yr`Fcz8i>RO-AOyhPVhcw5?D+#J3QK(M$3ADK7* z`O|oxHghB{4g5cQU(^5yxPSJlgKP5A+>w><{_tgGj9|j@B)SYPs<#w zJOl3c-WRoJ|LllN`!r!sTZZZf;olPi0F=NX|KoC81%+q7k9;Wl@=tpRI4Zx70DjVE z{ClRXA_OjGCm&keNV&H?ch})B{5DfTCzs7MW3w25Jw6OKnl|SNu)(J0;c;L3xy#;^ z>gwyMj%W;_UnG3J>7#D)576i{mZwiHZ{x_yAO+9f_HvP4WJfqwuI=ybxs3^47rO>5 zewn7tSHrAG*Ri{6No9vtjim*(`JwFWlezseJX}GnUQ?IhO#xkK9?r2d3vD$7UN;z> z>F{%2H;^dBq*>Rz@E!(V5iK8)G8gTcH}IThUxG_K%5c>c{BFceLI&5+VGD_UKQfqo zuiD$+oP$LXKLP*>u?VuqRh^=#0(30P-)OUko->5@No=pXUQKh!X;CqbR0Lk%0<(F^ z{3H?8K136Pud*-0fZLAYhuib;*+7vP)9$6G^3T^zROX z=SP$^;+nW1+oLxJ+7svwoXb3);PvoG&m4%14&eY_{6;%xGJ;_SbLV&mi*VA0&)w@Z zd7BaClmdH#3+|im%4_0NRQq>T{RhiKqg^z3*y7Q#_-CEaa5hKavvC};D^B;Kp=)iI zU{ixPe(;2p2B0S&cs?vH45QPw^bjRhBZ&7eS3Qa;?bU~_*dGq4u#Coi->L-ENcit5 z@MhnEE@Z5cBbZ7hspQhY{3nZt75)qr{F$(F)o-9*#t#!n0CZHB_S#d%sZ9~SryuXl z=p9pjr7b%Yr%q2;wsTi3-6I8Oc>SgvQG#yDb!8iToA=@H-Z&Hcv-hk+<}Oo&z+S41 zh7J$$gJ5aM388S6ppC^Fs)c4#jxYds{ubc<66upeOR%TQDh0{1SW|_{c_JqNAf=tB zjIFTvhAW^n>(&)jRj_$pN<(%*`ZCQBAsUDJa3%BzD>>WYeGla_RWsKLV#lEA{0U*y z2}7jq5TbT02pLjr<>4X@5fNHgh$)s;@=wm2TwWJr1TSp_X%y48$s#9rbVL&((NQ=7 z6-3-V92=8|OFrf^DuGbbE4)lMDwx{FVML{7pAV&}f>xcC;OLr)^mdW_v0sRkbq~JM zhVD~QYpPSc9@3j`5~1^A(W}MMLSes~yh$J2jM|Q)MdT~EV?88W`kqkeh`DN?!>u4F zv0zkYN1T=e&Y#1aEK}N6)5v|gHANEJ5Ml{85@Nsef^B{|uDlSig1qwdYPY4AI_F&6 zKAr^c5gb@o^5xRo<&o_M(-N;S0A0Qd!BGxJN20U8=%KqnaP=yhwvSwWlgdh08iRhW z+{T~DpOXCw1RqRGt7F<~h(k_KvHTrI&?xNRHmad+&HA9I_hRhlrlB=fK{cuY&xJ~(YXiM?&s-V@(`-3|86`p zJ{nQxcDdxx0Y1%%Z|1tzmCba!RODS0AMBEL7|(*$Z4~ z$X%o8$vxiTM@Ab)e!F|Zz{ldtb#|>8`rPCVjQc*5gE`=XFs1jF=76%4>d9ef$r!#1 zH0IFNmUVf*S;S_7J(qav_B4o4f9>$INq6@O+)`!N<98rFoKV_vnrw>!F)3qz%U!rW zSYvQ5ksTGi4L39&15gyY^N&>i5+OlbaY>9Ac(cHNEO+M1F6+4{Dni|pj~eD!9yP#0kOongW= z#UTL((IC3HcD9Fh_~S~m6)JMNrME|cG3ZJ$aBhW(%h5ynmOJW9upqP7^w@ma=6EA` z41I3A$&VR!Izy<&RjF=x(~(*#?ksBUSEPMlEKBFm5sBd>+in6S>gb5Q@~Ba7g{7j; z8IuG=Jh$90T9nrb8OkSWWBT8nD;M{k5Z4&FTzZv9#>8i5>!Sex=#(g`3K5!AOl_Fq zv>vDop4pLNjR;wcv+|+ad->SGH_2|{B{>}%*;AcS2L19lyMBX=4ZbG*gdm9QTBSZU79 zb8KoVg@Rwz96t@|{>54zqvfxxq0)%kWunSB;qqZ=op8Kbbvn~RIOwO0#8V8g$k^^{ z8BEx?wHnjED805s6>GBQr&7P41!QX@mYvh_82N+u$anOTV~!kJCaQQfU? zk|Sr)##dQ-PqGdiy3oYZ3x;qKQkSvRKzzo(bMIYENMp|!gy{j~ffJ|1hZ-saLOZ|Y zz1Fhto10aVc4%aKLDJLbpvbBLF{T~Gp@eHN6wjXISAvfsUWaM+9#+M8#Xe8*q8{rrPmBPLDT{T zvs4l;dX*KlJNm``Ghuk!bf0P^b{snnuG#wMq6kTm=mN&q%Acn-y4o~mqRWh0h4QB( z^OciU_*2g*LY{^@%ggWBYqWc_pZM~W&heAPcfs(b&Cfl9YW*AVbUysFQlg@20C1ZRZxT=PyT#vf>9cK;R+_L)U?OZro$zE& z%F&GB$aW~(EqhGxWr@F<*d$S6PW4RYcmTRzE^WSy;L91_zNX|yxRyOU{SDU|^w*I}zCFP9 zzgX|mKc>ZO=Gu1L;K?W0oUPRNz=Qd7=?ACx(VH)3d1*b;dU@pL-brEhYzq!DsA-pMK+x4>&6*b|sB+^~;!Do%Nq)Q$6pbV(h<_f5c#I}yO>jM{wzklTZ` zTj<%SLXXF<^+PaC8{Wn_JU`g}gaHS=AhCnhps%^CACwytqXIoonc`<|9!OIrpb%=y zJTx7uKEB1E)g5jD0PKEh&Js?N9C(cM9p#^KE9$ z&{^wAtMz^BKIY;(h2&wqmcY#5PQ0RS+obdKd|VHp`?zX0Y6+7ipj*BsJYQ@cFjtiz z#f|&OIOziDP_s}{n(d{$hJN8JCoEo{^T78Hh$SDbHLDuJjn^NvQsW*exf%}Y&aTz-=K@e22>n0A46ogz@0D1ylIAzyY-9qCYCoEufum)0!ieO zz8)IJy^a+g!dwO}hYi*q^Ifx#J$~XZO*3OLSlkmw! zAA9o4r_JUUK=xSM_!C@=^6%!C+KFLS<&srAp23Yc?M$=x`)+)EKz9~_C)qM$rg!2J zJnHvn1c2LKpZOk)-+ch{V;#w>f0-+J@!!&U)45;oiT?Ec;)#g&PxUvQ=DtIx@eg@u z_2q9hc^8HA=UQ{zzojOohC&3H5c6M>6)-Dr@K2pdZXzt;c~f2grvqRQ@$Vjy7Q!v= z=Y{_`!HD(G&ncp<&JaBA#$JW9`*}4t=C$Fuf}&rZ4#@B2J8WKCa-Pw>zy`pC7vKSm zPonlGxA%pa_s0D+@ILOhsY3YQqa^gjRf>B&(SHcJygMBWL7{p&_K!0kaFyfQu0q<5 zyjJkNgmq{Op2Qu=Z+WbMttzMa)+7k-KQ6X>r7BnTCF)6KPyNxx>`G!hsu|gEfDfSG z!ni&3?y66SIVXkQgGC7bN%xTbw)2kSaa-t~=2jhK3VM2;q7(iv=xfW+$Qf#W_iqi8r3 zV(%bh07fDsVD(g1Ewy5A&c5)E7emjU=5H8#Iq#9;V|=gC4*v^yMc?;e?a5eyRv4cx*xZhh3+|`w(}cX^ z@&FzU*VeU=L~c(e%MFmY6hI7G9Ddo@PN!SEe%y}Z`Xc$>f0?WolD?kkqo~-_b#=bK z|6?Y;tPyIrupWJl+Fsc{{rC*c-IH!v*%Ih`GGc=fdn}CaPsoV)G>aPCt(&f4tCWos z3B0kS)`WmBNugqFv*(CoZlB`GcU)T@%H==31I%MQ;fo8jaVtTfPjlQ8-VvM={PcAZ5(<*?o4jh~ngSzAZL z1MOaqbG>auGIum64M$wb&2ZAS$Rv#kiGS-w-A`#stFj@kwr@VoQtB%wFUOQ=m7iMEVCqaIM4%5+$;f#o~R zr=xrqWrgO~mw6Sdu|4HhgGLH==O8R0#ww);qs#HsE}v_``t(Ciw%62yF5B+kMX%im zI&U~$CzN}H>A#9M_N+1YGzMhd6a>XD!BBZH zIu4p9n@m}=2#f}F#oGSJhaoqv@2O6~g`GR{QaeDKP%e2&&H%b^HFhr2Dx$Ym5q z!dh-3a`UV5E8X%o&4ELVx>r`H8c-@tf$10MU=*%}t5=^^#ed$qJa!r^+WeS-I;tjL zHSvzJh{Uc>JxKGbk`&iU@Fm>I3r4bY92Izm_}pd!dwLI1=PQdY-k8c*0T8(s&xs|?=_5AfYorLVg z`G!Gx1oBS8PUEu!SG5VGv^hb2dFqbB`q{1BN%EPPG*G*W&Pd>2UM3?|^%eF4_4>MtSwc z7K!wlGsN&k*BQs-UV(4uL7 z;fPkKS*7ay*3rQ;U3Yg?<5YF&vAD+U*PF`kocWDv^t5f)&f+sX)bVOOGeMfBMP`zw zLF)FNQhg;d^HW86H8UBF)A3jx?t)mGS_a~T@1wa4rp!O16-Lj_4@d3CShZLzapsS1 zO7#YQXyJLiSA;NCJV!_~>dn}B>D4EvdgQpqblTLp0WzRmn;qMxU#f-?l0jQK!NBOcj+#k1b|h!{9oo}AU_@wTJ*0sfu31Z1ry zCHW+IPQ^WNOvLL{cZQC7T2ornv%9!v)R14!DtKhl&;7X2mwAlR3&FFtV!txpUuTW1A5nF_X7Se~OSV1yRxPi-_45>vmb0Mhzdrc(sVhPD8-I2gAdV zeyTF;_a@s?UTSyvojex}L!3+sil_(&$n>$0SRme+ta_S_5Jv7pw z7!a0byL_n=xz`MlwLErPVu{*w<|?bRP^K~^H9n}ps}?R1*LkTf=CPmm!n=zi0trld z>?@ZoX5B(fNWPGeH3sj?<^h8(PJ+b;-}lHI10sWw*CsjTOOazPjyR8U-uYGmu!z_e zjq5BkUjov5$qhg{j+&!r8p;ms(4B7BB#A#$az z<$(Trx`xAK`bW$~8+87Cxz?n<-wqbD>wrE;Dq67XXEAtKS18eq+WF{$@tje(#tnBS zuerwfgh6xMXRaxNgW3;SD+PGMexh>T;l&Gcp3Fw9I0`Jm*Ft5CHb7-vnHZr` zpx@bCfnw$E7NeB{g>g^dU3ky$M}nr2NetT*pVu8XA9Nd%*YhWelIK7ES`Q%R@Vcl< z2kBpR;_v;ImZ;`nfcXIHpGXn_p#5KnME>2R!57rlBY&3JHUPlDK4bqG;GfYb!Jkw? z%pcIRk z1Ycd|9X3-OH1QnC)M(w z4emhXg_sTk$-F2JC?d|fr)qL7S?`DNp?H@SeQgW}Xd9JW*Qd*P>P%%#>MlJ3-Va9h zj~l>8xkYW@y{J8z=b57YUxLH(*+26=xHY&cf}1h^uDex7Ny>P&DV60gm6E(+D3miY z-P=KQz3Wu0bWe}d!T-Uu!E(Kq2#5nZ>R<^m=O#SJB#3ZNJ4|-f(%uD8fJuH&sp@Nx zz=8C=4_B@FM%OHnL|d33I8j3prI6`N7GF$BjtfiyWZQO2wVl~bTE^mTSKyV-xoqk1 z(2mcc6ii^UlAjEpV4fY@7Fo<@)Tpa~`3&>hwMyLM(&-{j@tWDsex9bNNF-A-2wS)7xT(dKpYO2ZntcvOqvt;C&75x=^-9GqX-CnY-DJQW-D?Vg|1~*?jra0rr z5`d#`Kng#3Q*^zDeg(ofm2A<1c1grz9*E94cbk2 z5pi(|ZN9%)ATMis2WdXAX@^s31dU--iweje1 z3-{>2%w(4v#O;#Z&x87TLNYP2``hJ1u&8VzmPB`f#L5gTmYNkN3EVEomwt zb#FbW2_7{Il1LXIUU}}#>~o}Yx4O#mnX9GjXzRLBi_O-h#gjmIjwL?G=Q5e*RFmk5 z1rPi%<%GNgr+)HdovCUdZW8m{cF}%=gek$8x7Sgv^APKoExldj7h1aO8~9ZuE@+1AF%Z(Ydi@B%!zXomrliyEcQ8ZS!^- zn;5ryI;U08Ij=5omMcoUrCC}jC4MA8-48PsK`!^OBC6=G=9e@Mf6-QH`e4m&+w4fr=*3UiuOj*#mIyaGE+%v%PfrjARO{;G0-0FSz z)LM!1_@vwPghJG$bOg8Hn4r2JZ;c?GkFws$r!iA8QFFFZlaop>H(p#FU}N1%^9&Un zI+b+n$YO!*TPzwy%Xl)q!p^VG%*b?{9*KiRbXXUTa3et17Cl8Q=lXqPmN5+`ONRW- z(Nt{7gZUZGJdZT`kW#7^Cy@HOIM9RsWRM77lv%ftGPCLGyrHF~CE>{rZ8^m%5T;FA zf|${%?U`C<(BP7_bKj;|gOV>E&Kid+j5^qWV*RsjKfH#t==B(KLlT{J6T-@t6y6Y# zkU#8@n;XhpQZM)5nu-yFCl$njGyYS_F07-*R_ygc9*1u3xdjQNNRLvmv5Cl9+k90D z<;XWo9~Qhanf<*Dw-S}3SOCdTb_17GtDD9Z#?8X|S1#E^R)r#RvYV>fUBhtl;3Vne&3C#A?`kS7keC-1oI^_tfT=DBWO}6T_ zU#@KUS6Go*uL^4NQRyDDegeK=kFnP1rV^~$;C>t(JNptm^r^V~y&t>4WaE&1hI>|r z!)9;#_L#v9IFfrXz*bGtRRnF_WZ>vCq?4T$W2iy3RQ0X&Pb$%bvWORRc?hpz#Sbzc zi(bCa&km*5<2OZ`;h$l9WdNB{E!$k|6E!pnWeq=a2#<1(T*H@{3cOFYesNafW1;$u z@yGnxZW{l@=N;Rqo0~&#-E~BvE1#FZub&${t}FYmPd7!O;6s5(nm}(BhubnV(bl8g zJP|$5bJa+8p_|BWH95-Y<90W&MyDRMSe7)~1oMeZAeU%tsDr)7e1}g>h6|##Y&999U|4OzcRulS(DS|+rzMm)&qg@} z--khsdihUk-U;FIFT+j(Ie4qnpA&MUh!%g& z3mF;fj)~{BpAZ_TzD~6gljs-*HZ4K&b?kbm+LZMn@N>?|gx8pK^^=&FSAs%1R`btm zAXzJSbFRj`3yiV`{%@eyTpxTM?=;(_=`3%bIg=M~{7RjB?*M{S=Fmz36OoM({P~2H zdV41eDl%nA@)ctw3lfhRCkIs+iE2(A0xJ81?Kr}EC+Xz!2n89=c&arwd z{Gqf{0}zq1mkyKUVw(UAz&Tj1gPVQY-&2OEK@qb1u-+0axOu)Sn~PfWiURHr=Ajb9 zGJbm77KauT-)V`uQ!BjujAe6X8sSHjiyGS&@f{q>Vb^hpZOr*@2oO$vj(IkMoj8L-nMZ z!ePTEX=HlqX?TAgKJ&M1#=ItaFgX#C_-6-mPhHCL6sS{lWHJzsN6NeEcbG0!{>H?H z|JSziLWfPVqos+{d*X?$_n#~P>|MxT?tCM%FK1cLaYTtU5mUtXs0Sr09w&c>6ny)Z zB8VBBxB&|v)+n&1kPiNmI4UcBgErWwjSHFR!&MCyPdqc=Xbl?WMGovJ?e#`iVIUd~ z1z8l3>Jg~C?bjmA#^V`fcg*2M3c;#TZC+@!-gDOcNqME3iiyU*(_3(FuDiyu=KB7I zuEmjYg#*nxwLEx7Cp?~hXN~u)MIkT4vgQLRIq>tXf$$ z|0nf6P4PSSk;~nXoLb-c6|v~`rBv6Fy>B{(yB3qamL`Yu&XMO`;-S{B=QQ-WDl6VP ztZ!jPW{F1xZ_TSc#du5Jofg^6bREAGPR+$D6;9~Qg}ao4Oe7&3y{kK@?#ZY9N%s1U&tjzSf@bwBz_%l+Kslscwj*}P|QOLuCbl2eYr961^? zr1`k14#t@*pZt4biitQ=W+N@Er!eqI{kQeETs~Cxhp>35uR~DqMV*)m51{FC0+HH6 zt|IHF>3ocpt*y+Ncn~7ndSMZ!^5w?|i{Bx+4Wdp#weJxN^Z2)L*Z%0EGV`N(mTk8X zm()>QoAUawAL!qB@v()VxVzdtZ^OdNa}1-*?ygugcr*jf637aNPXjp8n1^CA#*KFq z1T>n(w?&sFwT`!uJ>&x?9AD?EI6rQR*0`}hv}@hee}Xs&j~xRI9j(oHcncidodPc; zQiAS|{9@!A%$Tlv>OrY)3QVPiIzJt=&Es|p*ElfK=5UE?38M5HH)} zD7V4%?~SBQX#>W%P2BPXyLM$014-Q_bTs7t&>uCTzq6(0i@r(gvFdu5u59laJjT)l7!Dd7 zH@j8OT+h#Eew>9uF7_t>N(F}i{!Z*}*#09un}PgyKK8#?EXfi4Gzkx58TtmR?{h0PM)6?B8UiXdlgiwDJ{O+Z> zIm}Ccd_5djBO~2KY#O<5DAIp0W4k5XzZy*Uy0Neqx;vtS}GY1u20EAZn?Z~U00#*yDY)CTUimoD8GjZP(%59==miX zCp>wK%}-K(<~KHr@n_1j6fn8CC=I&1i)J7vOXG4dxh#xiIO7^prQm|PW%d95CN25wLc4((4=oUMB7+sWTZOo2$iHsACz}d3M=?FF3@prb;cjN5{mc) zJierHjZKx%Os$q=uZ@k3KowQxB98lsDA$&VaC-U3yk?yOyySB7Q(YyIPb$^i)`S_u zqOe-?=$}z#ze}${lShd!5vGsMG*q{VAU9M@Vq{qJ0Z!0d!n&LW!BY-i`-qM^3r09I z%O?s8+!A$;R;`EUpC97$`QCSN00##gE=QjD;)6de-aiC{*5J zP)6+9kB$ChW6XY9SH*Nsc4t#qc-PM5zT^w)UcSI=r8A2b;#Q}*)sXH%CQN|-!fG%! zoRREi55m8lYzZ|ln_EtxOxl~X+r?YT-(bi2 z24Vx=ep9}5ctqW3k>~v#+Q^)H=X}#8qB)m_-lW4U*?1gPFcZDqEU=e!YXmE8e59My zkDS|;tZ^giG>bY;k1gD;5ZHGu?Bk2xU#VW^Jg1~T;DvmEQVom@Z464?zyAPfVQ0D+ z>|W4(PuDWyI?nA6+K~%n#2QnTy;b|M9hKTTpB7>qcbrlUBqmbZzIku8$dS&T<~X_H z4igv-IrzB}@pUGmJLioTf_W>m^RctSg708k$yjIGtDeryl*;eRYs9)o_9SGb>I`HGp(oVX0BPPQ9s8Y9G3 zwi3nWd%2e{1N^$Nms-Wq@Wbls_zAxus+Jns0p7U}1>2Hal7Kr182 z_o18eUD`dB0K_hz0`E82d#i{U_Vro)J3cm>uMB0v5}k-9o3hhS3bHsyX1^V3) z2lND=6)I>83%DMnNI1;2mh!+(RWzNLwsVG>$c5b3lq1!l^|TJ#6I7T>J!ND2`};k= zy|9Qin5q2zuB;O)Ymn7(i|wn~MK-h*%e)zra1xYE5c|j8UX*j~X{BQ=R^7Ye z-A-$d{Q$VRtyjlfwf*k@H!hp~Z{f1De+QRQyK{>Fk8qjKf5Bz53YG%zXxH1d6dI0z z7q$6E<^IBaj8#{9J4#=Gtr%jnrl0&Js`;fwClSV11Weg|=iD$axke>AM{LPyu=MG7 zgmv5^YnEu+gLkRbKNGQd;`ePNJp-=(;(l@1fkt>c6&;52Y%!=vA2p&8<`uzk6zZ zQ5@YFqpS`#I1(K+U+po9vm0?_f`9g2SNGg~)KdrNeedhFmn@sKn)p0k9V(u)Z3Cts zmI)K^M2&+Wx%!vJ-{EDJWR>(E@5@5&ejy6IS_xBNjAzludjj0e{ZDB%nv?aTLs8qu znjii6UiUHmMP;q@4jbY^Sc;E&Ue_j(o9W(qB4t+fwv~8FyUtN^?r%ZmUlwZ&_*|n^ zwtzDgZ+K_jB17eWnFZ?1bY7TyV6W^{sYRhQ`ngKlqHik^E3It7?eB5ev%F@J+mzbI z1TP0)SK)jmV(YXXkm{l}IWW|DU?}CEwi114%qKlGcq@Gv9iwwxFLx-SyszoMk8w-#RxK8KzmcN6l4o7<=-*%_C)?BIjC^}dK(0V73yMqSH=TvED2tlA2;cnyd4DmXg2#8(VrHVEgn z3%1zTzx*&noc8mdc>WWL{pJO2X{4!awbxkx*@&6Cqb=klv3|7DMb1ScK#2V$;Zo6T z&G*w;D@!-Clnp>=<@BMWoOIa+8+A(u7Anm3t5M4ZW!pY`nuW(^!-{Nz7=+DNh+K9rq^XF0(pr?%u#i zPL;N`5%sG{^qSm03eb`+>1N78&2~2v6LnQ(@_?CcQex0bGz@!^TDr*k7F7&)&W?os z5+!#(e35#%ErR0ndFA}CqIX`6XNF`3Fi)9tDixK}7cRw<4kXf2_X6-kFI|pj0#GoT zY^m7Zs2ehV5m&evJIN*@u=ry9jED0?0Q$jzC`yds5N^UK=zEw=vtYuE^?<$5K%EOr z`9-*c!j=$MK(C6LR|&ZQHtloPp!bDUeSGthy+6aJTykNnn0eeS1KL&sj<(FmI3{(l z63M}C&R#|k!4C(wh9g$h1%GjeZAlDWLZ@M3!gw-VdWz-+_a>D3a2VqAF7k3ipDnt%-vMew;f;wmY~(WW{V-HP>nH zM>1E;>lr$HV``4SY|lNGpQ0vk^xm^q{-A(=txZ_{Kl`Sd3R}v zUo;Uu@+g#8zhmFX$#HixQSg6bW$|5WoqKFJcIPQMJ*jqVyIWZ?Va(oXXrmJ;}0u& zL7iGSS#f<65BPUy#$P;Y)2`t8Qj=rMxt|ho!3EnKj=$>5wdqL%PPSVfhlyu2Poie) zstKYyyAZzc**Th!ZMom~&r9eQ%`V!j?^C{CN`p)%IT$ex^G>A;d`U4&h92J-8AWc= z9nFRF429^+@u~VF+bEG1|707vY$_79L8$2pqaJuFuF#spZ0MYZi9M0 z3n|@m4wZ{u4i#q0y6Ot#8Q&gB*|FG*<;xe9rthQ!E@lEJrBrQFm0@n$qEywUR2jE0 z_bK#JCHKH!=Z(XfF~SJ8CyM=+eFHYU65FA*K^vhv#hoBk2QzMa8Oy0RP031bQgfVQ zgWqAVtTS45`c@(tiJ{WNzr<%xOj9L!RL#4pG+}Isxhz{PAHrlrb=&shiHmlIuaE)d`oNRW+g_FQX2uaX{yH<5)ctNBB9$d&A}p9sUNmjnH~?DcoOdELm>U7A z#;6Efs_i(PL}u7%5}WdnpyBLqzK*PAc1*;4_5X8H=KL?DY~X)P$~17SujZ<)dTdCH zR>o>e93SC`>B`)JQs~fJ`oB5C7vFgt4qqZ*G6m(ZeA}_gO@FczFNZss`vPPq?nmxQ zq`4g)k-V$oom-L%IEj4+b{Q=2X>E_~u;TePtM{yXB*g`@@WfDB?uRF8C`-FPJ8w2) zl4E~GfD4|{DIf;wnTf$N$4r7(`(eImYkt43jf33PhPrQQdZ0ZLx&~Ge!{8l(v@r1{ ziiE*eLGjY-X?D|D52Kd<1)7CKfRj$5UN*2iEAunqG8%My;%2cHUYibIaj7a}-j>~c z9TGy$O~L;I&WiJMy?6Vjq2X7l>k>6RaUatM3F?9xk(lz$bjb3@V71IuVdG%s&uu~< zijT*VPRRNq$l_7*9rtvyU=?F>%|0z2HZ~c60e{D_?!1aNZ zi-d>%pm(Kf_2A$j`1ZJuEMy3BGkkLswwlIm|8bG;p#GE2Z?Xa?*ZPk#FC#n^QKo`1 zfyvR6|*@}mb`SKtx5M+{CEQD(xwiOp=A_TSr|Z%UuP zdbl8_`fIH`-tS8J-&=<2@X|ll$bZ27yG-oAx02ot{hy_Ce-k&K<$o^Hfcu-w5msds z!pWBfWp#Dd(hk4 zSWhFD@(Mrh&(e)AQ_ug^py2%(WYz0xMSNB8L_%Ii*QyW?(&n*ZV^0RYYg&aGFoUCo z9&PNWP8z``>WinFLU@GTgtGbrj?MJ#zoQ5&@*i(0u$RPD~PMSvfWsODSP&J|NG3 zX!=d8jEq0K|e&Fbr(bEb&n_K0lR$SrU@?e1u$hz;z` z(m}~}>rB;gI+I|LEuLowcTj>?)t#-hIkS3>P1bVjikFQ^ZsMiRl3NKqi$ihHftD||KTo$UjnEYOEBRV zTRM_fhZ|J)TxfnU$W?G{ygeIXKy5>sBhpp!X0kmvZwr;i}yP} z*2Z9wZfQf)YCv}J#1ywINnD-th>ynY=t*120nAdASZ|x^E z7D7IFzB?m&ad9E?M9nB2F4D(>n$P9=$ocrhpkB8&ku&<nOycK*-=KhXCo z=cm)w_w;bL!P_(Td;0J(OQrugBg4#m=J+3s?8j7q*z~_LvbSO7PmIj%zcMmXMA_7! zzZlszu(p1^H~E0h=xf%cW>uU<8RR^`lL9n3)I`|>nzMG}e66VY%XkN)MWj-_D~|(u z5Ta`F(LTZqTf6HzIg*Rk=*0|o1;UaZ98;g-rdC9WkW_vI` ztQ~P!s$mR6*e>LU5(rtw(RGe6so3bu5mOi|03ZlP*r|*yak+N?~Yp(*N zO(Kw;ZMUteN10xbEaGA$eTaDi6R-fcsyb1Be9mW%9)TR(Gh ziFc(2!eAI2VKSC!l!)Eyt}@(N#1#fA&He6?`^Eg&quHN?nqF)0C25A^TgrQSfy1Tw-F!tW(-RHdLt&jg)t_90y2IraIT-SAvo+kFeHVG_| z3mDT-@`G>4hifes*t4qgnfMzDUw5Cy;!9gP`l65OTV(mD+Os3en=>nKQ=c(iVTrrb zJrSOGHo^L0rj#WlnxqZ#K}2EWT{jo?s$%UZpR@-pMXQS|b2ksoXXWFK0b*)4^mDJQ zc^<-;Je0Pme&;5Z2ZacsBvSEiGvTk1kpro6TH@qP_(n9&pmUZC;`;fyHW7}nz#;p3 zp+LoA-TX%!fkUog{pW%{>l*IPVrGY5abyjcaito~>V2t3b9yEppC@56oGE5u^fApp z2;x9A(Oy2%1n{I&QO2aOX8w0~a$9?C5@7OjJW-R8-;8caX8U~!MX)s=KC0@`V&{JI z@;J*534LbQYu85KX07P+NNS?ShD#WVOUHmJHWsz{Si5m$_xLJA04l6$_Lxi_h-UT z;?BCGF7pKWFLh_mc$W3SSPJ+x!h7Z+Wei-pLD-W z%;8ZbNt`4#SBiz|IBq+2WPb|h&P*@J_p=xeIH8e|gQ@n2s?AESOv*4yfB^NOGgupP z!hRfw!MBrYOGqlZ_}D$mO#@7fV>mARNU+iuI)KTpiL#3Gus999*Jm-t0$?%e>{Zn} zTM*lHbv^3o>@O49{;@OC92|t$-oH38g&g5SS}X5VvDbmGIQ%CW6r?$V%7RY5)?ojiHtA3_Su^wd#wsDV&doEWnSPh`eW}(`yeM& zn(*{?@WQXy|KuUdOPB90Y~L{?LY>Q%@&-{Yk4O@dlNkm^pz~$~1@BXr8I#yQ8hXex zB-+3aaTkIh$97kOEf)X?3892r{8>bdT!(-k0XP2$!n^=Ne)%Qz$udVwrcsZxjaQc+>4l=t8)66MhU-y9KfK+vWI-fU zH648HDW^ga`IQnuoRxH3;hCOs)HbRtMzB8?Eq02`9$!wJl_@e}icO;7d$Uf;YfBuV z5u3L2rYYKpwmCUbIN$LEkPBcd*=y*_HWUeAtk65})o7QxNBQ6oT^PJC zyacSB9@z48x#CFVwxPIR7AhcQv z!V>$}kk?)Zip(8redfaqA6g_1edNI2V1!6iO^?#V^gCW&il4u?Tm`o09);|adHPkf z_kJNf_aeqcu|quf1+Xq8m0ws_U572iTnBIGhjLS=cq^Gpn{)6jB%>E8bbcbRllc z)$L|^VU)i0{=j!efSuyleG|5s9*y0V5RIuHR9I6fJ0TR0c9$tJKI#xBBDk6|D>IlX z4=tE+t;Nt~V&{{C#j{Q0%hgwvWi5R%(NXL3k$mW%3XI-Vf&D1EMLCEbBBBFG7hKa% zq$@J%7U?pwRX*cM)xjxqa7gJo3caCqwA;CR4`aCV8{F{qnggBE!JcP6)e$9n$n zHmIpU+JeV1R2Q$tHiSp(;p6kMIk$~tRcw+&h>L@}jg<1FQ;{a5l(qF&l2>~FmxiX( zdwOL*h9>L_=+MLr3{A|m#_*MvjPasF-$}ziFDOmA&*8ikKfuC@qflK-=`$G86O;Qh zm1X-?mZFirgX7?2(jZV63s`|eunw$NcEPXKh#z(!l&brpif2w)m1%ix%s3*b=?H+0 z7uoB*sPm*mWK)sx=@rX(3xM~RNRKyZS6MWXpK=#p=^%DqvwoWNGt5rg#U|#_>~iZ% z0e8P+AJTP`-;VL@$K{&AkfM{!$6r-idYMpVbE&W>L2%CmBY7Un*@JDT8|Ey2LtS11 zrO~`Ba<2{dN$~!)LaMR)1dwexEpn3ocs?K4z{gm8pNH>rQLHuoNX968^?sf7Vf#}} zDw8K|6;kj?POh)<4ii*!J$qWwD`4|IRmAwjnxU-Ku^ufaM+%f+Y`$>|b>6ws3&qsB zEP`T;{@+#QXBv4Eod~Plwtc%-dF_?oy1Hrz&}2DX=c>MGzPW-xiGV5OI?dgwuloTY z=GRLzA;g!xQVqu-j@dMgY->T9_yQ?uc!9(KKY|_qqr!y{Qm!KZ?MQ>u%eJ&HR#?Cl z$YC6aM{!W)l=BdZDbyuxJUt~~*A0XC+Yjw?G^7r+s@X4&B@)Ep(mz8||LPmI@@nNkm9#Iit0Pgk0slFHM<< zn{E0{vdsrrB-2LOkF{twsq!9+)|U^do#fN2C4YUubyQ><65N*dS_h0V){?}wz47VQ z)Qe@=4Qa8o_$1}ExeAjmqLW>NsbiMC4Yzza>Kq9^^mh$rc1y8Zpaq$=?)a~dD?zZq zC=+u#tzC+t-wY9}NOwzWL3rZ(K6lf0oja0JHM9Gisrj7x2(~k<+h<8coF)Pv9wugt zcnt+b=2|LV|AADQ&!$@OiM^Jl{m#x~5YA>aEQj!PCmGEdlgRc1yok>0A?KX%5QpKJ zdCiX^4eEp^UI+p!9}Y7uy-?9>yU_8+l)zLynsPoY&3)#n2Af{1dT^UVo}FE;AHliG zGM4o2pJLCwKGJKSY|S5KZG9t1rY94xNE?nIQVrJ8X(l`MF|P?^mOBk~u5pugvYukQ zVKq2Yc7~ekmtA{{UCXUdO>y}ssqd*2*Nbu3kJlaQjEzU$1T|FGXvvi8QsAkOw5vrInh?^%XfpHE>p z?0njK!0%#IjTiOgi>|%D^NEJNpYz35bwK`ZF+YP#Cq*0Q5tgPonCtK>|3a%3kaYlt zrO7{rCBPpfE^gTOuL&9R4pboozN2xmO0A>uY$d)!0ScRJU##+=og^k-%TK!- z(d0Fs@3<*U54c|+Ec~cL{&gb)MyKNIo#rPe=kg6l+w~*LT;^_z5|-u;I~tZ_c7Zow z8-UGfoZ5MOQcgERwjED!r9O=Va9md>H}i7=e-CWk?BAS&EC<~8{c3Ku&Rxk4fa^Ap=9s=Y<-HdEPi)7i zBZ5omrH}baf<^9jqHlLvVMB4uo7hRmXk94FPWHM8A%MRzs&(xya2>C8Sq$9@Znvxp zU~wuebTl#HKF@#HIs4gsh_~cZK@O|}qJ7Yz^k$0-)Qcpb@@ZO?tHqhxfqZI|3EuXL zkekbf<5>K#eodCL+HY;k`N4QkacFOK6>fPkImOE9lkn_wtex2u`q{JHwydi?_zC=x zf7qDH1?uyGjVW(8p|`NSxT4WeM@m4_G)?#5eAR zTeCCjKWWtLyV>XHbof@^Y%exaRzEphopOC@iwb~Q%in|DsTVZP#oz9PO9|NVo_BX& z>;w?kUX~|!EP=lSbCZYSe`*m!0{>>S0z^5LRs4=$__a~0ap~Zd)XN7YZqG=~L zyJNtXL~z}9^E~Y&`7HfL6u;sRiaya@%nYPw7Z~wF@WirJxCVqbXNrU=PHzug~Xm?i^(0kK5JCb zb2G!|0F$<&XRX(9#iQ`mW=A}rk#Wy1N&<(I9!RSBP=L=wwr5rh4r6O&o$#)o*Olo*Yed-;dEA9 zS{LTUoVfbtO0?5xK-}ixbTrLQMBqkV267J=zbI}z&-;Z{g{I$iyq%2BzoviudLWc; z!7NE+&+y*%eAXhwA#Lg;=S2qUWt1??#e1>qY(NaI;>n#WXXI~alo?n|$z`%^cel&S zWV`Ceh@N(UaO-`tIOH)IeX?O&H(O#(9PH#6o$-<`9;q0Ph!QbD{3hh#T@I(Qrq{vD*!{4Ain|!FjRDJwBKOz-U)1j zpQ7F4qihqwwCGU=$o(7emxe6 zK;^9)9XN}&q$*zUEwL0*@{Gd^Cqp>Fc@K2H$jVou=>t|TgkQ*-$Y9A{3ztG#f^xUk z`yQL;KelT87Syu|SM~bjc-<`7eo-8ya@z_wCw=5iZTZr`p#l9>qX@2^?%OFZo305c zqa+1Ss8Cq{;s>P!&-bt{H0ke+suEVQHpblp!z{Rnus)J}qfT5BqYBDV70L!k)m^%cc&#xu z^=2!bXhHo5mq@Y&2#; zQ5obQJ@FGWlr!4AT}Hgs6msSX{W(#s;CO5^s+Ip2{(Sq<9^s>*Ayn!#r5te+; z{i>)wc)3q`ft=Q~Hti)G4EuUQ)|8#JesG$WDj$_pBh}GCnW}@05_MqC!$?*TwJ8b5f)GulyrKieFsX2on0S?-V&PIma*(4N z52MJR7Zqs^89Z@&H4f!m`p1Q@+>(1N88LP{Ui+VqKZ{uE*IOxX5A%$0Yhje@xc?AX zR)Bk_W@4+o1wquEC^dni9ZggjMDj`}A?j84Q~pq?FA2b(O)%JI9kZeT1Fp2e24xe5 zhn4E*Lr$!wzJA)VMW8Oedz|}%*?U%IJfIb}H&EQ*;0f{<<5`&*i$#TRyzZkrvi_59 zuM%Y`k;eUXiK5wP)cn&9^_S%f*yIhWMX}P4pO?(~ru8LWcu+qF6rHVxgjDJ>LR^V- z2HOSGWybmP*U8~p#<_1{t6!4Cqs`@bRQ6aJ^w)tLmFOWEkSbBCH;=Q?&FvHYZ%rXpu+3dq4$6t5R+G-B5 zMEMIREF6-W7asN1){;v{%tTd_Qal}dR=%X?1)g7S?UJ7``j$Xc`ya*<4Y9iq3f~WU zUf}r2ZOktdh-UVPG;BT#IK zF?1~+0E2&fyX$x}?L#=*d_6`8*{~;_cx;sS};!w zQOFXmX1;yxs3EF+H$-b!+gm4|f1FxE-r8eMHR8A<;uf~kIr`*hb*EJFa)qiSga zKs~Jg4C*PH!`k~sKR$9g@WEKmGnRplW~7Y@W;x#>oCT>*kzEFsUDSYBI~6-_W=cO!c z)8^%&v(EJ0l~zmbYI&|l%Mji&-)VWG7-=xL%5Vv^;VKepNj!d9rO(a;m+k@HsM&%jan$qP7{bYV3E#U zYH7}Gr=C!FyADL$6L_CX`JTWR~IkqdWcI-ZOrKCTB+eFH8=fdgdWA`bOWJNiqw*9^J#MH)H>(t;ey9}rfvcNO!m{sMVU@YFN_umQGk$fa!vHk3 zSJ|NsjR70)O`!PABj!)=o4ML#w_`YXc+XBE=^%%+ z@=I;xnD>I*<>`^*t(vAu;J|EdlajhyC(mQm@0I}LBw0Az@^&6!(xXE=iX%k!9dDO! zg+y$x$7l5%bH1ygXo2fx%x3caa48;imGpaGtQMPV)QCm*8-~|rlYG;nAeEX*OE*Nk zD!|2NBcN0^g|!q5M@*`RP9$paW!Jr{(1`>j^J^k`L-HUkKp?5iR_Oxns+A0uj%$r^s3v=16w{p6*jbjw6kaaozW!SVxc8A*>n*4m{lzvz8*%3K@WKhFHB$;~olIra8B$WqI(QjixzKx)e zeO)%vulBNbr1DY9vDgMkrnqiG9kVP-lwI*`JJQ@QNM7WS-D+g<%)d18~c4Z=-Wh728-c#r{(l8sLoljv66Zkg9{f6MWu_pQEa<${v z`Z48P}c0lRtT63yJ5qb?EjfAfTij%oY7=6x{Lf@J4Y%Ri*GTlxm-Mq6^a2~PvYoz@Th$AbQkpV>*1b2}jY zQve7I{b*%dYR*x3+TMN^{bbhJU1b`I0sWaLiu+^s0eGUy1Sq03J)?1OsnmRqvoPy= zGP8isZY3~XS;=Bqtkq0g^wEC471q+;&aT~c-W#)HW?UKbq}}i7LMt>63hYRK`G&*U z$!@CCD7=><)57>`e)%R6BRc2NbPY7yy20*B(>Q&4=KHJ7G)1bK_Qjk2&exY+3)lT~ z*NHViwJKnN=lpy6uaV{tG6=Z60kj#!9pHT)OE$GBl)A}Pm5Oa_G$G`@S@Q4pSq)U5 zXf$3zxazkW=?-L@CEx$%sf7W3!4zb|KjNBW+o`A;JrDvqp1@Zg{l3$5^f`>VX>p%V zDO-pej_WaFX&Q#S+V^+l$qp7C<7+-}ksCkcaA%`-wc?|q5y9IPlxHD&^) zl8Kf_k+0U z@~jJR_If-IF%)87a4WA(ZaS)kI)HZ53lkhxnedUsRYOemnt)JdG%+0=&I7vcr%pjn zC@7j-FjLnm0=)!hrEP>}|3ciL89?Js;j*o_mKqr2VD;q&EhW=2>5;WW)>eLQv5~{^ zq+`yJ#UBewoYNC@`$VH(14^bk&R6-#I0w#N(#+~JT5O?bMWJPS9KWhgiAIWwM$WWh zu_)|Db1zv7hK|feYm9gXQr#k6LAa;#3r_V=S8VOSi?ADopU1kPcV*)ZSEcNm0|~XC zPoJgg2g%l8D>FdWE7szn+OKy%E<~ zW;T33C7~ScQunTKJ6+}_V|Hi>!p)$_^{-*e8Jh333|kHPg+KK?Z|XwtQkV-#$`zf3iP->MES&I zn%SxtUKt|bkjWM_YO~>6e^~E+^OAl~OQ$4&;C<(OQ0t)KgDPuZ`m9c&I;3@tA*r+B z!8m<=ffKB}v*fqKi$?iDV|3CP{y9GkHKx>t;dD*FP-_I2$7RGE=Z44sM?>u#5D7EP zFqT3cmZi(&C;AfCF$kAsA|{u8qUGqd69Zn0A!%jp8~b}*CA>PA(kNC6)ZbW4>()#v zRRtCo==L5qU0G}*dB&xH0R&Ul_KUiMXHVsqBH3vD)$43T1?=}Wteu^m8KA$s#-DT$ z3;N?2G;qZiR9)ycxW3o-(?A|eRy9aCyE|#DjF-NN#Z)seMV4;Xqd_nB9_;9=+wSNb zdxsn9J&o#ai&{aSR!zuB;MknxM&^iyI;@9_;0wxo@y0 zqQ*9y7djy=OGU9o%mNhulg+qM?;);y&Ce%N1TdYkoW=ZXY^9bToX)3SkBme+QN27) zv<{n)i5`U)cw^K3l(&$M9`JBl_sHOLz<^P#!bdNNN1cqp=~PW15luBdzk!|>|JCPm zp_!~xF`t>%Z6U7etn({L3(hb(f%Du?wWo8a<;Ke+S8T2f5i>_|itoUWdVsy%0dOa_ zmx$aw$D;pUhvwPRrhlnAFt|FW4qFm(*b7&=bsrLAP>OepPaDPB3g?yvAbgYHr?=n9o<=1e&o=<4tc1VPJw6h$oh2eO8wkmj7 z_i=;N*;)o>7(8OP24a;po2d7-9UfwoXaC)v)BA3A-L^EQ!JTZVMLZ@Xl`r__ zNU9K=oF{kw5Z25?$p0;2O`GQ*gtd!532P8OKv+|nlFz7FTrYB$SkgP&_2?&*N#)vD zF|*1~tU6n!!W(!SS2INJQI&kYKS|1>dVTEk@6?^*c4JBX1%SBIIr^XCPMO=5a=6KM z7H?>BX6~vz-GUF0N;jii`Z8#M-@-tmapIwuTqO4)rI`_98xk@?khS>qb^7ItK;$j5 z4?+@legv*tlOb;~uY&t3f?7`COdCbK+Z1)0)Px6)eqlQfPQAFi0(kJ50gcno{t?~r zU$o&k{wR;{vsfz3ozSDkX{M3vaj0(s8cQ0YvGCV8&q1OcKRD>&B7D&x3osnP-@GUC_;(kVr*)*w4bF1l8KmQ zMDIpGu=mLL6qqZgD;UcmolYJu%hc^3Iyh`z=Tw-gUr}+*)J1~PYY~>_Vf2D zGEdhTA4dUfj|s9y`seZbgzwDc)wYAX9x)8Fs}`9>xhdlt8zt_}GRuFNQ6wu+IBm1evxW?F4&iCNdp$53(un~apgdI{!By_r_Vl6!Sl>3=Am^0=LN z@_Rr2jv*NqKd0hUY*fI1GHLCaW(NhvfhMiaWKtPh$w*CCZN^`uM$$W3G$-*4W`2-P zL^Gu02+4LS?J3wW)5S@a^)IN*DjVU9qDM4@-gX9JRv1qzV^#FiNOwPP#+ZTt=;fj5H#!krpv7WWiL{TmZ}<9Mv1Dt}I$nWEr=|iE|Y(%N}JB2gf=GIC{~G znf~WB$gXrUE15)933MStN9j886%G#Hy7yL_%cH;2AeN-Cek@#4u~-DZlMzhB;c#t3 z;$fNe6KNl%VtG9U(QOj(6vor`8PjJU;`Ex;Y6>WZ4fw?l<&K~fNFhHA85n)){w7;5 z{0S1!_*7tENz_Ni#k2!;v`Od8=ffm&1n~m_j%;-A$?YxdgeV7z`Zudf#PJjszo^4Y{=9Ai2!(_2QQ4gib9{@;Mu7W{E3yP3 zaC{X4GE1->F(Qd@D7mo%WhwO{@dI1O*6YyA> z#HMqxjyNPkSUsgx7WE_|Fd~HducZYL2ldp3zgu%hR979bh=s5|ReXDfpawG$SeC<@ zSa_|k!H`_9p($D@y&cw9>9)z+JKNmqF?pwDd;e1?L9y99>f~?WsBSnZ5x*}BEMf}f zjqaOFYw^v-%vK0K$me_z(FML92=M=N^y%q8jXurH|4sC%XYopWO8gJv zh$@gWasns$zQWtw>)5I9JZFSo7XG5Lfi<8injXzvnpGZLy z$nQA6iDjaDxm)@P*);GcdASREj#Y_tsa0&)6d8JUm_4$6HC!8Wx)&rkM~Q4?<3)oM z&b8R(-U9An1S~&ky(G4bJsXv*`+=ltU7IZn++uX+l0*JdO5dD0B9fTvl=3ck>GC?_ z_uxl|y71zn5S@bD2a|YG6}r#9biSPC*~3B~Sd41Hsd`=2zoGA5ojb zH@n%EIdEvQv2=D+9{~UO%@Z%F<(MgT4Sw8d{$$SKY-_bTx}yT^(Nm@L)8NIf;9hS? zwp2jx26rr3lEdq1!ddqlS4(IMoOWl}0N-V|cLATnMnrv<{mbsT>`E4qaL3F`7v<@h z84XL`>r-9J31e_U@f`W~|4(RX-ueF;TKdfXYv%jCpTW8X5I`5DI~9Kq_qYK!&|ZZJJ0p$hW?#igX(gd^$#UY1M0u@{L*RGOO~h?!TbQdVezWgg-Ql{q2ejNhYd0mXFRMEg zdN;NsH7o~`ZyYB z_ix*5$3c1j2pTaRT2l&c0oCV_=*m_c6dj`ov{mO(Nj0-JNUNSn$i4{rRb1h$aY`Xd$Q4_T1h?n;v} zfu?gRd%w%Y+^2-aL2hzO>)S=$MUhm|f$B{_aej9m2^!VYz?FXwr~ZmV)7^P9(1+jr zCBBo!!SZ?zIPkKR2*KPwBLNoqdP zZ;EWFagtLa%1cOs2GGNetRs5-*z)MX&rn1xtK8|Bcqq90-bV0}r<*dk2bFK9G3uJj z@+w6;4hskTh(5UqgXy)NnVHpI1x20Yj2BZVSwYbwYRBt6Qi>?xTxKx=-efLE*$m&E z%N~1y>(i+@j9Q1iG+!$~*bHq1Vn+d(bbbj}tJZ|(SCF9YFF~PzuBx_lG&c9xajSAn z;7h_8JoKX3G9`p9ygX{4y&8Eubwz>hkvp~~RlSwz`Pr_yE&h8};x(VsMqSMQ*c!@H zJt&W4RZG0q3Chxx$~rhMG1(4|tp7V0sSAh<=i={(SNTBP#)iXlYBt1SfYp(WE}n{N zdGdYM(CF{r6Md^iU<3`sZ#6H=HUF#4ns|Ac*pzi>pG)_j8|jY7M{S}pm@}!1{Tcn= zg%`rmo2~wrdrunwo!*nb_uuuNF#fUkM3vH0(cgNju#J$L(Yy_yxy?L@R}xVsk6J~A zx`6Jh-HiWT=xIcc_Na}A-@lk`v(ptL=Ml0aRbBNaQZyZHSWup zN|`13fhctf{YI3k)*Y_y3Fi5(?~Udf8YesjgSgi-g>mQdx$;H*jgmQPDd^5p4Vcmi znX$$g9aVU_5)q1cXE^yM_4)Aqlzz9-W$^`bHQXH7VV{oHl4mgQ=}{JEiHr|CWNw~0 zavCwL;-Q@AC3}Sq+|&NI+UWf;w4~5BdbBO^;mk^u(E~EI*{nw1Mq2Al<;VR2g-opQ zIdf%E{$s7*7YsB`bQVq6g1TRC`!<&fj{c+Z)(#kNYky)2K7CR02D!10Luc6`-!_n=$tlkg9d~VB?li5XhFWCOC|W+Nj$cL`J~mMueaNzZ zra+dHj_RY*M^XrDH12Zh?>Ks4b{1FNLcP~gC3?hZ0&al=G9$W*ae3fFu5?YdnJ&Gj z@8Bq#*xpY*n`J`n3YVU@yUtr@f4Cq@m>E@)!~tp>B$mJcxCR7}lS;eQ%%CT#)>AVF?lM7pvn99U(`nI$pP#mt?BadoC| z61ccs-?(e|beo;Zq`BU6Vjl&}%T!NG$!1yS#^Ns@81#G%@|^2Y{{|9}%q|>FW6Zb= zehqU+lB?^`#8%(8T0!+CF9e2?7NxXx^3j(==?&Vh59@(&y@@#PS-hTWje-m0ICUx{ zGlRDVTz~{3W?4=}CD@bl?ZZ0P^80T9{SCd9+~COIiK-y|tLJ*mdkYMpnw8q94|f#6 zxc^Xm(tPRGVijNF9^Nn6#6qvoGGP}%T-I&`DYkNg^_8&?A0BhR*&yUSZ9xIr6llH6 zz0rbSl6mR&fk?U^7yG4i=#;w|`M$RnFUkITezAYT*82tM_5dz$etGsNiUQ?}H;$gJ?hi%(A{UW`?iaAVI2)SMSY4u8Dw8a;3<+o(n~GV02=8FLHYI9ETPfMZHTM^ z0^a)t@zp(rc9Sd7#Wq~wMhjx;4<_B#drjhp4bP?s_Ip2N83>)f&GKA zGjkd)F1V0eCZu!IRvDm_GHNx@r+b2y{ahW4GK&@|$pK;xqU|B?ib^p{WG~u+CdKMu zsz@hMFp`C)?R#pY$_z8BT6r(t~Wg-NPt$H(w59F-+%LhW)Ftox0j( z)23%2Tuf0)JhZMgn@yx#F61uVV5gVi)pnD0Jg{s1qftqvc{Uyscje%#oK$*sR|M_U z9rF?=jr`xm82u)<+QY;gDavV0dQ`A=l8iul-r0U5by1B`Dm1ldS-MHd!KbJMHyQfIS^q8 z1;l_?0%JkzszbfebOGO2XY!p1H*kCep@Lj)(-FT9@VOliwH0JA{dWJK_yz~L#vxqGnd)Aa=#5GvZ`7jyER+Gv&A%#^%Rd33GKCk=ZhIFkKy_x+ItM;`kE-Dr02%MJp9wZY*urIYx z|7ZP)3C`{wRi%1Yn5_H2XGRZ=%gXuIwjwpZN8Jj~5Wk^DT$OXJ2?=38S9v9gUebm0 zz?5IMYClTn?pmopcPFbRL7z$0(#!BAwfcPu7-4qu!(<$OT?F!G#n7aOXdW>FI3p8_ zcw5A}hF!*-5UV|3xrEuJ!pbCeHcVLmvZ?)1V!Z`y-Kd67((DcDr_YkMhD&9vMb&OI z>8I^pTe5g|h9sZxr;D?tY>b}Elfg~~ATLp9nKEuTO^tVEM-ZA6=9(S_k@Vf0w4vm0 z#EOIr?NO!3U!^$bRf)p+$1BMDaKwMsj-}&+`yY9AQ!5FoScynJ%ys?J*q{3>V91)K z3D>x@K2p#{SBBbtc5Hu_mVkC4h13}1@7ulhG&RPEdb|5mB$%}<<3WtkL`BA2iVLti z(YUJ1WI9BMq6jUT+X4qWi{HQ=(47eN6S;D{p z$Wxo*K6Q${J9Kj$KqRRI zqa$azwBlxX9e$L|=l;)TdfC5hrt68tudMy*KdqezT52f#^H%!30fk+Q&*Jc}5>Wd7if}Y5OqC;Sf=e!-w6dSZguO`*avZ z#JwV1(%C=w;^jkD>)j`x9Gomwk6t#{dA@Qi*aS$eXMYMpvGe`YAQax;1ffE?W(O+z z1*EvMzHf*>S?HWJ0WEAT7%yzX@>SNwm1^0Cf``%@Z&wU zr6qN1&>gJy2VT##L2bkXr+Zo@R%MUY7Z@(tAc3oJ$;nhXR0f_yPp| zGzmGAEO0w=9he)9_w+A6R32LTWI-E9bLFe!U#x6omk+-qZ-u^mdNvPFk!&@fx*K50 zv=c^`qN=V?o3ffiL^Gz)Wdt~V8^4`Cy83XKV+OMWY1ogii@ENoD!!ayC&+jJji)ED zEq#?(siLM@xHn}pD~|avKOzh)x1+kvnp-dkiY)^#7p(?faI`%(a5JO8abw+5-Sg!I z@HX3Rt@lLBEZFbFe^jAF)af7j>$ literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-6.png b/docs/docs/blog/2024/dsc-error-flow/image-6.png new file mode 100644 index 0000000000000000000000000000000000000000..c370e38765b480a7e0861f543664eebbf2db2862 GIT binary patch literal 180650 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 z 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�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

7cSV)wv4A&sBslwJIv3-QARy(gEuQ5;P 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

E63X$JG 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 z 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

?<){Y1VcrG}mmeT8M~j>@y5Xn(6B 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 <=LvJHI5RlfOjH>gPf>SeSF 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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-17.png b/docs/docs/blog/2024/dsc-error-flow/image-17.png new file mode 100644 index 0000000000000000000000000000000000000000..4625802f732fd62fa6a1230aca7ff0c7c3f0212f GIT binary patch literal 14716 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 Vv2w)W7+Vg(hNn$+^H15{{V&b!3f=$! literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-18.png b/docs/docs/blog/2024/dsc-error-flow/image-18.png new file mode 100644 index 0000000000000000000000000000000000000000..4625802f732fd62fa6a1230aca7ff0c7c3f0212f GIT binary patch literal 14716 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 Vv2w)W7+Vg(hNn$+^H15{{V&b!3f=$! literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-19.png b/docs/docs/blog/2024/dsc-error-flow/image-19.png new file mode 100644 index 0000000000000000000000000000000000000000..4625802f732fd62fa6a1230aca7ff0c7c3f0212f GIT binary patch literal 14716 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 Vv2w)W7+Vg(hNn$+^H15{{V&b!3f=$! literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-2.png b/docs/docs/blog/2024/dsc-error-flow/image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ae32ee70bb5dc8b80e153eacfb2f307c2d74826f GIT binary patch literal 153465 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%0A(Y&Z_d zCH7KZ@ECf^lI%qZMoP*hkqHlOjwhD)4p21CkWtGbqPW`F@znNj&TeKnsAwA;Q0G|C zaX<5(&P^t-`uMSTtr6BGL>)lfE^68&kDKwyNuhv>PV*zOiJr4LoIaI4ak!gOq#mG_ zPbp&=@4Ee}>@f2ay(?PFHoj;^O1xSM*4ba0QC~1=X1VH5`XVjP?=S@RK8mGWE5J4Q zOyVP~p$@UzJZ@697U7np9O znN!7Dn_{(6E@OeEur@;(Ch1k9)T~&?TVrvwb3qFBGYjZ@ks~|0w(7#?^&-67$iccv zp^JF$nZiJT@l>rAX0Se0z~Kuh++qH;7R9^(E7}sru-*Vh_Z7``KXG4)DO+4E{mM2+hiQtfHQs5QY4tv=|Np1vt*C*DJrf=0>{8duz^wYR zHby*;{gPa^yc!dhXBI$QxfYDxB*Wz44w5@Kfh4!t+sGMgwcnlf3KLgDj=o)vh3)NP zsF1oT7LjEZj+!ddge5zt!Rx-0;|b}-iC-S`9v=MC>c46JV(3%?-+-O@+wUH_(kczg ze{%IU_)x!jfd2#6-9MM9r(MsNrCfaie_(jp`7;`@?FOaov?p_25D^5*M%?r@wMGN( z?>g~Ejla~hKl^_VHJ$8T16n9-pX@(mIyf3Qt_T3XMc3y>eHH^h=5N1UU|Vwv`AM#U zo6D<#TZ*DlTwJD$HvU@!J);O`xDar{eo^IUw^cuU_t6Qcl`q>ly8g9Q2dB*|dNt!i z|Em1oZ+6EOyR~JrHND=WxwNPyyA4b^9x4RV&LGvdB8YX{9B_D0G^d-stA3l~dR1$M zl!(5S@>s0-?myzC#~j7qcp}!fvbxiXV&BB6CJEXqUfda=aB*d)>ms&Y5YVbUr#p8_ zNyD$97=tvmp_IRVn`s+xjkmk4yJOHYtk+m0{EYbc1MN5cUvPmCVk| zv_An}Mo9V`j!~w`^od;sAd?;SM}i~+08|f9(t?<*)eK;bsgC-n0g{AL0+QbbGscze7PdU=6Jz51Ra4lm~5@wDN1P2eMJ?T_*#$0Yg{{ zfQ2uwO=UEyN^nT(vRNHeJ?$dj`_6Sis(I?v+E!sU;5;sl0;K42TbGOA*=(B~uzHo? z{90wlz~D=TeGac)0&&2VEultLkjhL3^&RH`P6N)GN3|YzI3JBxWOx zIssw?8V!o*F7l<`dESj|%T5X%`08*sI0M2h;Ux&^Mnl@8mbnr|1_A0L-6&x5w5L<+ zvgD=M+ZH%#n7HEQSd-*lWLPx&vmoQpb4m#Fq5gkV)FCc-^!O>p$w>h7U?u^a~Wv}3ZiUzBhLDMRvdh1Oj!g}o+uN_>?0=6t`Sx2#;XhuKvPJ!8u-CgnZybQB{Y;~zZXDc(z0 zCO1%ivWo?B_TJfeX8ycj=0(GOX-(w3Png59y7BUfGUh*Zed&3rkBRyG0kvdxAD^Jw z8;W$!Y0_UuU+lAWbf_+z`8x=}s@%lq$F@WG0pLsp9llKLP0x>varJ_#Umu-a4Z%kY zSvuDhW&!|!hxf}?Y;MqTF1u&vI$^v+d&mbK;b#GIgW#JnDK`PAu${X*#{LLFbRI0CP|8G*i-;_LX1|knrbD>)F z^*$5UP=O$zd=oXn6+B`u8!!)DjV(*wVaM;b|E#17K7Z zF!$JWa++asGF}|~f)^j|6Au$|>n_;;n7~M@?*@7e^+&Q)o~#YY27Jy#{Q#0uOKvX{ z^XKrzJ!t=9zPP*H-}&NP?fKN2{akNE3y<%HHwv140CUCOasHvK)n(HV&E&Y_4<0Yu zB;mS0Dneq1sxO?$lAO{?`T0S2D(@K{Oy|#>PXDr&%|A>1SF?eT9)~afXKVa_#uw*U z<5gEU$XWmH01&Le=fOO1!*O@m$ujAH+z(? z&8ZlkbMc!UH*Kwd@o7EdGQ8R+u5OfIKf~Pi#4OX4*-5=n!$qCoxb&(?K#uP14gO+- zFEbEXyWCjbH>H10DzNvdVlC3Mp7RP~ao&sah`FmaQ{ezPy!E~3tGrNWd(03N4D}<) z0)7~TWF6XT#>SFWVRC=Q?xJRb7oyNgf})X2H>8LGW`0&jkor|}2T+RJ>q!rx z>%=aAOpzh7E{;*_fuLNyy|SRsEY~V>*v)?TnUWed7Mc|#Sq@$tz%2a>FJAJ5gBPFP zk`xU{vZXjK-7L}zo{WDKa3Oc#0ua-d)WB}-IVduL$0w-5rI%M+{Q4# zu6?4pKY74<;{kA~$Z(iP!{RuRxW-dIY3PPQTTx1tr16-5o(=5#tbj;>1aNpA?1wKq zs+cFp@^9IlA$@LV%7D^D|0i<jetKSA0+>w95jDJr2h8Z9H`~@?$=F96nRrEzxZ*Ed22Zz$VDkcreS{`RYW(Hn{|S0?B<54%QWtVtLvV9)h%bC z^jg57SvxY?64z{3oApuAEQ}TevQOZ}gD0v4ZQ?O+8w#Y`2wBm~geU~DX%dEU< z5gLBN)GLE$^lqJ1^9|3 z=DDd*v*F^4(k+UCg_1jsEjX*h6{%+PzghjK-`SjbK6e#rga_KFt`J#$WwNusXJ65Z zs%ag{4A%>R;|G#fkxOmahHO%ApK3T3m%`bxxq6ON{Gqd3D|NIN$CVQpMPxZkL7F@P zRl>elmilh_-b^v1g4MYG;mpQR8IniN{=^e(8X`bA!uOO3F&_~-VM%19l`RJY(TuU{ zsG;w=?UR1Ai}>2abL=eAs>s>vePf%-G2$LIfPy7DHCK=-8C2MApyVgf*IB-Cc*t!DseU{BGvY=N%EA00eh z9N_h=9>YP{?blpSBtkwZqlvL=GI^>%BEfz;;FnLCQ`I2q3Cn4#cY!XBsgg)?-X>%y zwkgK%Fwxmbqi8jI0+}GN>f>^U*@qexGPXIU2Vb!mz9HS(z;ozz!YD`fE~}`%*Ag`(w$!UPC7eX_&2J!>fow&k;LxBGDAm&vh`PNQq6}G z@k{#5Gvw>B+cCOGyQ>K1?Xr&#V^vo73vfO6bgH)@hoa!|=;f_4KWJ+EN7@xB*rt4ILT;!m{?FFFr8Ffl+^6xTI z(FkmL8kn(>xKRY`-u5XP{4(`QGsS`caI&?F70QcxQ|vp2NzdAWhItz|gIZp=ZB+l} zomT@s4OJB$2Tmw0E30^PVQQGy1}@s`axz2(h)%L`qhYf76EUG1PJSa zg~cla2;qX$x?bDmXqWXr&vjl|LV8aGr*bz14}3{Fl$EiJEt?BnfQ_cS#tq3mkHZ;cxIIIHS336a{P9yw_QYtZQJvCrEav!|(_$PD-ont%uw(u%PH zC3XM^`^8*t)-dpt{4r@3bj_>qF4bIRSzx?@@kt$+b(ybIBe4v=RC>R1A}}8sE^Qn+ zQ61cqSdO%3>Oi2%osrvlU}&m9UxmKbcu0ZaWMnt~#(f&OCcM==Ft5vkPl0@=ymkhEs&P0J(W5hWb5`UVkN{PecLx?>KXK?*VOiO ze|8DOS={UW&6UUACV;>VR2!+LJ45n&llqY3dxQK>_`-i6yM?T)Q!lK(TmLDN^W?UZ zsW45-_z`?e&1(!yJa{7MmyJ*u00aMB+S%@A7ro$-zm`*X{du%EPACn1D`zX$#Zqu- z&X@G+-9H2>9J(`#;nu43XDWj&C>6Ejhh2KW_0=kbFLY~n$yB8m@)J*r7SR*ve0VPm zK)_YJOSx-QmRU!omsc!4HlD||x+wson68TG7>k7g0~gadSde({hSv$hD!bR$w{}yk zum{~Vo{FE)GZ%cU=x<{Nvn5>k~kHL3D3FGy2 z6DObEl|}+fUd2PW;Y2mz9D8_Kvm&Fi@Y2kX3MqIXZ%^VNTA2OfGxG7!w9QQ}bG z@FyWVlN6r2v1M3G(zDKN>iUOS_}#81f`DA!X?$^9ka@!zC-|?vO_m{ZjXjISKI<)u z!8!?D6|{-G6n6z`)%z?!z<-Fj@Ls_q7W-;G{*^oMcFwF?zB`xrQ@-xGx}69HFQ*5! zoMH1_&w9_{Fcoj(Kk(kN6)RRz+WK|nB2<19Y%`%SzSF@Eem-C>1@UwZJrS=oYaXcu zfK7qOMU#+6vp|M|acv=`48fe`1_^bI5+5v7w;Z#A=c~soJej8*V&;)I5mVdH1(-lx z{rXSWl^H3a*fc+_l=DNL&N*w@2zYw$`+)B|ltPz}S;kdpp$!D^yVkS~dp>Oa7WBaT zfe}zabiJA%zzL*En2JyK_l$U+%Ch$u0Gd6^mf$lKmyN#^5b5;)Q%YmLpYz?`Zd;+; ze*pSJ!B~o)gIv{DlJ}-^G?<@g6LsXTqo~IZbTY<@Jq}ghBe@R=a@x>xcoEiUPw5{f zdv65{m)AD>K$+;BQ|YI^v2mW%CpINv*&e$Zj`eh;EJlw{N?q>*g!h+Dshrcw)E+ng zphXN}q-}Rzv~RuZd^Q4`Hh#=?lM!n0>qb3ePnVQ!c9#XlXoieWr7Gr_{obsdNe#$O z8N62b2hH2~I5QyMN=wI13ZQu(9-utz{Kdf#pXa3AT9S>UKkXh@)SHuQnH_j$cWj^F ze`BC^MHHyyFFvDb+GllMp4e?=3@eVd(UCk%?Zdzddh6hJ9GEvXN_wpN7C`exg6IrS znW8oH*lYh0v+9X28II0qNL{SGUlBj!ys7IyfxS}>ZkghM0fcFcY3WhfUVU(Gs=(;J zzMHM=}3o*{xB$zu@SdIYGXW3{bDFyZJ-Lt5fu#H&ZWH*Tfk3A2PS#Axrh8rdS0on`-)PFGmGz zc7?ICH@^s$wS>jmX+nxRDId5BfgQFM21d!Gt@w)%`f3YVo43&7@y!Nc<~+=AIT**< zh!vydHuy9a+a)H4_g-26x|aRO8~PP1mg;mz=j8YTH)-F|e`(}#noM3Ia=XbM9H?fI zun}OR6_6?g5WZQSB!%+7624phMfmP&bKJ-k_f`_69WMfI(#nZlz$j0Q{+dWd6DhR^ z`<{t`<^WG5kbRLg7o=z{3bU{7edT_&0R+tEyoN{?xgY&TRM6sn9R_J+qut>Y4LkdSn(l1NJg|=q(TBuSk5em;v4X3g=Nl=sAxdfBzKKCxiXSu(?XM-y zbn!>dE)T99mW!0C%lD8B*mv}}Jk8x{_U9tHF z{EiwSTBIge4d>0hvWzR=MS^j--;~<`_nYzovBNZw_M_3w+6gyj|o!@8*qII&#B_{^B})79yGzi%~9UotHR zA8Tvn;#rsD%QJ9G^cVBJI}b}8eAQ!W#ta$Zq>N7Yk*~u#@o3JlPOOt>+1JiFwFT9D z_Ez+y|GX85m_0%@w*V1CHmfb}-36Z8{gPY#+1nX2b@q}A*NAj85EQsQbHr>-zhSo~ zmpBVf#zon@sMqKT{{1*+VU<51j$FNxUV6bVYCgU+(;n56A*+Mc#DSxrG&_&JnxsEL zz_*MY)XZANx)?0~xqdfK9G&dsd}HyrJb_=dNgoha4#Yl7q$RAaO_zzOXOBC?jB0MN%CgxXu}di8p2)Wr z&2Rt^dDrFf`ROgrZ0l-!V&NlLFlU^Tz`O5}(A<0Ut6hJTO@)2pOuxRO#<#Nt5)H@C zVyOW@3DU7*(ymN7#ov!{=0F!tz$D&S{fUqes@dpMfx-itIk|oa7=+ys27cj?H;3H) zv(K0IC6=x$*Xu{~7KV=z!1O4^n8>)?x&AVv=47tucJ}FD*O2iW!2bk{%uL@}?0Y-( z9l4Ri$yS%M-%a_`1n}CYKU$~4FWm)b1}Qv%_P(Ff0c8pNDr@{35#ZrXmYq^q18^vO z?VR!x67a9BKvoF&Bk+@*eeJHQ#u{rC#YuC7p`P507U1F%dQ=V6FTGWn()mU33#^;- zyAmZUh6GV{_|!}Wc}+u+Gqj_NvR8WOdISJs?y!Ssc#HT(7U$x6Wj445bPQd%^mU$B z^lZoV%Xz7tpNFUZ7zlp-n~zt4d81Y5{|2pqnOj)r;NBnF{c#+?#MPFjs<~kZ;LwCXr{WyBU?8}DxZ3) zOqxLJ<`h0yMP|umwib4->!@qj7~$+(bwF<6LB7rC0{dcoBhQrHln7-N$ z*TeMw18yp1Mzw`*O`EGgLGHL>=j0chx5Yb^!G8TqrU}?(X09Q2G0A*pE$wor$M$nZ z8`Hi>a|_sAz!nQ*`?He+w>z@gBZ1>l8X|q`s7+Y{&=tBlNm%qLk0Pu`uvf+dWw)U0 zsnGzI=ytHHrU;y3!P*`ru%LQuCi`~+)2Cbt;Z*=sVD+(?fvfh&?GobFL>Rkh(sO@Y zv*wD;cFX8~L%)eIS!&Wn^)QNGphPZY47j~pH6?7JL`dL#{d>V4=5z?&5A z8>PIp%AOVVXYsQKWYt836_M~|iakO^?sblMze_v0o!c) z!sb+u=GKUJOi>v`8cx{S2-I7GW5k%-N#nriRXtXdFL3fcO&;3JX4$M2X>19yX`0Ms z(Jj@$`57u=o}tHX2%O~cCi2^K%HQ{k&!`wdeOiMB&NF0bPia^3d2`ROyV-j5&}47k?Zo15m-As2erbS$XN{EA-Zhb?5rD8OsM2! znSM9rF8i8g;{C1V`VpL+v{YlYhoSaOpJ_ec!i%GA!nCVI1*7qtO@l-_fCbd*QZr1R^@tt9=+WhB!b&tfvTH^h$34Z>$%#Sd zldG~Vf6|K+;uYhgnzsW%%zpBnaN4YkBCy+xfq_buwwdijs2lL0ss zJpRs1l~i9_V@5DwrY$$r>@Z)U0UJ^O9CYFa;dL6jXM3y-pQ$h0s*um`7qQ*Wrs&_q zuXf7%FPIGNpI5?MGq>4iz|@(vHc%W(IfFPf#kY}+&F~Cw2r!t;7hBnfAy2=##kC3p z=wc{Uh^RcY&f00^ zC@T*%pNmUE+hcg{%|V<4d!K1c2unIgXQl*f*=@tWcVM7J*Zixsbjsau)JFVB^M?~! zqMFKflm>L~UC;&zGCbs?o^5Y#82S-JeF2^`jto;DTRX6S0V3iYE~5PtveZK@f4rmt ze%z7HW$o^ZQw`X4(fi)20wCtm(Envmy(KZuRBKoSEbGwN~YuqGIPr@zKpMSc}qg39vTS z(8CtbthAa*Y7GJuxAST<+Yx=x7CN1*qfS7KeAu2UVJTlB3g=R9n_n@gELqV$4z<0T zBeL%6VBLAn`SyZgtt)i!K~BD(rQyf`Gd$G5#1f1@+mgVtP| zWE5k~VshrnR~cCnq`Cr>IXh} zt)1_nceYvM>CiiHi@=7ewgqUTolj%$c&XHp$HwrYC9ex+P88G2yPGI+LDth-kz0?m)%^?Ascw|Mrxv00A zTy;V#bx$nBO*ffZZ5cU-QJE~kLaq=I-*J6JNbs^9l@~2-7bf2LV_w++<^am+LhPAY zEl14*z5A`A=8^pJkR2Djp0@vh$!f}B$2{@QNpdn6ET}69Y~{?`opIVpkRhy6H%4OY7!i_)Cc~vHHtq z_lPZlTPNMl?#k8p6^}khc?DdB@?;&eHdCGx;l&w(GD~>> z1?U1~I-eG{-+}D@Ng^t{gTW7gP9V^gJdv_W@Wg|dpp7J*O(-v%!gKT*{PAm^TG-O2iaF!~-OWvoSwL5){HS44t=GbiWZyr( zVbK(h3H#o^g3RZM(^gIG%ZTjqKi$lI4Pw#Y!wZ@%334IK1(ys%D&9nuxz6Bx(=&B}B;*4i)Y zR>>uGh|x4ycUh;f^Y9>}=SY!5+ZcE;$!`irwS_z=!AFF}cFo%(Wac!FKItkGEt1$U z9{Y57b-|>QTe&-ay(9rMk>MU8iz*?WYJO1BTU4$~k!!ve1zaXE})U`hU z!a2`F#Z={G#vv?p{UI6oW)wuJ*!r0%6&b!EW}B|dY7_W8EjkOdLa90imfg7Q z?a#h3DlVKk~uPKUS_rBzeVP3|mJgZNsP5 z7Y~P9Uq}_KrN}*?)kEQh9qYaO_Zm{K`qm*A;@hu4r+&GknaE%$J32!7#mSD%kzzz+ z;=DF&uA8o7pQ=iM`a!7KbE4bB=fTYyTDKgc`Y=^DHmHXbAjE+(QGYpvaGUQ*tr|~+ z+Hd~Ob`MgHYqyVpB1^)(Z^pNp&=SVW$$qyA6ZoOjY~-A0MMadf+yKmK&Ua_M3Yxtv zS9-V6(&URgySS_doyKh7^@__063mu$^%zm@Qo~xTCvNgy<@UzBhs2nz*B=^3t50=-w zQH{@SjuMx9y%sqsvz?ppCl_-PA}Ie~szk6`buUVjD@uRxPHyxxZc){^;af z|H`ijmkoyw5@4*U^9BNp#5xIX0Z&5V4C*47Io)H~sy!s0^&&R9;=M+kR||q)QkDPH z)NCIZif!&o8jokxPL2ssyMSGvmYPvr*zSCV%6mUK+5e(VoGH;?$#Pc5{V)hcM)(r+q0CxJA)$nQJb)gea(#2fjnxjYEgM zMsTa1CB2w{5u)ciC*~q{N@e{eYf!6n0r(o?EEGk9*$>$~S0p@0YR9S*cXj%7_KpvE z7jeEw)Tp(y5%W_gFT;f;Eo$Wi}5 zg$aS<&6Qw#i*XTH^I__+ll^9m0yQ{gxL@=-iJW$+^FXy}sZrs~y|%@;n!aY!)VGyJ zP4E2zQfj=0c5Wz|ig*eGIx|IgafvjiHxT5QEhD&F4`H@RJjzTHdg7aCo{06^#!iy8 z>iS4+yW<8LZ|&I7)f?SoPfBHE1}@XSw0( zZ0<}rEzz7gt3oPFx}6Xv3b8D(IxBZ;v=Hx;7^cUib&h%vRDprjw+G(;UBVKnd3ro0 zjQ$X)QheC-B5m<8ecCs*WoS{rk2yXdKyabNF%y) zKX{Qz+tZln;%goF0|>sVU7E8>&^TE*_#iYOr`q^dJ9Pf4Xa35&TZ5vj#R?McbrbKb z;lIDZ!6@M7+s;JDS%NFSODT2(Ual@{&^uR+WxGg2Tl!6i!pzqy6H@%1Q?wQYML@~c z>2X14)!OgQ?ub~%Gx5O~SiRaAOC*XBlNL7XkBHyJdcgmbaXcfSGe>a+)?npN_sjym zSYRjzkx!fV=RAWYaT|+L;Wm{p@cT>s7m=xxCq|?R)KJu!J+mfdbwHh^^8=+)=r-lvQ>3Uy#py$(y2DZSw2%VN7CEB?w+3tWyzhbGHYXj1Tjaram z!hV9rOs_Z<$uotR`-Z|y*{3xX@1v6&0etz z-V#zL7gq0F*tRqBFvQEa`KgPmi3pxKQE^wyyXY++o~9yZ3jfk<*4TD zYND=rZ*#0ZYMLy{Md2|r6g6^BUbEOv!eF!T_BVcO(YUX=^sW;pJp8s zN*Tq>s$wqg+W$k_n};=dZEwSLv^`F(wlWCev;qzYhzK$T+ER;xf{KiRq!JM@1cb^r{>-ygJ`u=#| z=MT6t?PouGueJAD>%Q08WBcJqX8cF%yJRkpw$X5Yjn5sPeVqj}wzrx9g#Fh?Q>_;K ziMWGdLU>CgzK@KE8zMQ=M)1R*#b*QK@w0FY!i|k5p{`EH_cXMBOR|wAM}4C6?pWr| zbxGdH`|)t=Fi`RcU&Jup6y^2NoiL+RXzL zLuz8cdzW{3} zVMB6v3zdS<$Ur3Q!g|`cEuI3GoUR59LGe!vZSaSGp~dEE3^MCqio%=(WfZWqA0-G_ zr=bkQeT41h%s7_=#Qbud5dZM1T&h0#*yp{6R zJ*T&v6QN%3qF)!l_;3jWb@*0+;FdEy(O^;F=M(g~t9Ht{Ybt=(qc*=Sle) zlA=kTWQf3<7Jv|NbX%-2MrjX1=Uk8V%sPhAW!Y*_p0MIlnKJH?H8nhi5=OE1Iq1MP z%&HbJ_T0T$VvS($5%C-M)CQKw2WycIRxK1`J`2aSZ>=E2julYC zaI?r$EwwVPVi2lQK?Jz!8eZ2i3fa0M93vZ2&?I17jYW**)O_r=LzGl7UPgAD)RfI8 zhSuY_wqd6Ncfx5Pp$eWy&;oxI@mX~6mfg#w_)EFTBa?X_9c18xcD92NHY^=+nDYv%- zw2@ml^@=eZ;hK{zqy+@|sZ6l-{ll?WE?~e9s4~#`EU&D|p8~lnqc8SQ!JO>u>vy@F zVuIf7KjLv=U4f3e+1SaRe*c9nfi@MBJ=;8`o0e^l^4Np)1pzk+V&UNK%JIKuLB3Lp zoX6$yN1kA1gYWkSIFe^@i6#hkNY)HGc##k&pWe?AF6LPw;^_f=xNYKETY#&pbS0h# zZ=PzoHOlKULXbKrbgsImWvs}R)7Vkm6D!K2&F4@eDvjT9QkSG1EIDdJYo zS{s?e_G3a~ZN|qsvk2euv0LSPCzNN2Ux+6XJ$uh8;w^tPT~xQszuJ`5lvVr~-;rK& zmKCtOux@eKcJBydz&Pq`g*)_Fk9I(Yn`j+1HxrP)3{;oC+Xc=kt%ua%!78$hX~DbW zYbm(knl?@uWt*~JpOMLLfReL%T2E$YCRgX+%fNkWFQ3Mpp&B)N1RK=XmJ>1`v5Lv7 zhwx(*$8v_YB%a(ZM?R z0Y}i&UpTiJAX_dhry$5s8joPeVM)f zZjy^tMyAW;4w>Bexoq<%1 zN5|6i1P;KvmY8xypEK=`f9JidNp5tKInIs{2G0?)`Ux7mc3+&*A+2KM%9`t@^?Gd0ZeNd!dxB_3u(9o*>8FF2*y?Rg)X4+w3X`1t^zHt0jz_#>vYvR zRU+r6Xkr)|W1Xuxi{H)iQ{T!b{acrTimIvF$;nOYvy+p?niW}L;uRkHBYZ~@Fqm5w z0^i~qG@1y^RTu5v^)=VjRU4w_%2!4U%=Nz1xykh<6)agjBj_@E=d7(*p9MZAwPxXw z>&>njO5ysvl!#N$F!=mLVv0hM3OaZ9i<=~@Qs$c2&#RPUTuUCet}^-szrNyRHLsm;k8#D$@>`d) z3+J_6g=4rTJHG#Xs>@vc$L_0}QrDWTQs36Q0zHPOPKt5zNn(q3Sm-@}%1qn6^^4m- zzE!3!4sjB3%Lj@QbAOaUV9D$23IFc+(}k}Hcg~o17%EO4zqI!)FIT&}&ekj~>y%$k z?8@LP@<>jN?90fmY(S|a_{u_Q zBYOeIBVYEGB|p23dNsecn6B5jxYFYQ4oxXp9Zs|gpJ4-TMZLgaXHN&csh;3Y?0}-! z0`9-KZw~O&Qsx>*HXhwNBlVdt^2Ay_Z$c$G>ta5On34ZsjZX@hD`;a9lhw+Lm8U&HY~@1saz!_uo?AIL~G%dpQI$~Al^v&EK{ROr!jP>^}pO=~?q$arjJv1zx& zVBXlr%RV#ZmLn%)Jy1%ih}$yxiIww%uB~C9ySeR(GO!2`os=#Ihwv*?OViYr;O z)aus?o$9c;#_hy!8*g@Jq*6Xj`55-oPsa2w?2g{}#vh?R`OB*L1GJ}|)B;@)?>)mb zSw1;qv=eZHC$EckvnUxj`n9REc;`{q=C%A2F1NxUi+msV?ns1Ge!OllqV%@=xj8+^ z#K)(d2opt2HjG&kfACYCxfeh$;x>Bmu8Y5y)o8c8vY`(2Ri`i!|-`#!usL z{)p{5(RrD_9uwGKTR0~auYaDuhF5C5ve|VvW)EG(w*2acn5Z1+;%2LsAmrcxdG79!eNT1RRE!8=ibb-jcTv zJN@x1Fn-nD5OtM(=*rwJS(LaHAMqGmAE`#5ym|(THGl;FM{%De2OvVTxc^e`c4XDj z?HYQfoV4ZN?R*nC`~9Y?n~w?`WXhTCW8oM19>T&uZk7I)w&by1?p+970la+KNPFk6 z4(FhiWqQ}nPqvl0Jd%hgF4p>?E$Ny`y-Q*t1;*YQ&eOiVk^Hfa{ciC@@$Dsm0ru++ z?!SToM5fvM7t&LcB2LJS0uzIj^$}qz?tpGw+>hZWJ9|cM3nt1;oKG^MXTgsoL1RM) zztltibPQPyWv=I~^7ECXf%&876aiSlV(y*zs?xgLh+HR|TI4#fMrQl4He8sFkRL>3 zma~6W?SYL1ZfQTpEqW}C=PD{GYX4#M7D^hl+0@U+uYYo2iuEkC8tR$TUcTV#8gnA* zTZW)D>*#B$f9FaM9;%CX0;^*)sWQ$2L{-`lSt;yK>ZhiX7I4!Hs-Stz6wNO+O3my| zM2PC=INy1)(*!*1oG+;qy=+fBPWKUUh689<4rZx}FQ0&H8>nex39Kvbd>fxkDPOSm zvqG_-ZUm(f@MifI`1u!c zTL|kpRHR{yOSizUNOoLV0_%ezI!79*4l=|+4onUs|rADkZ$BSIoDC6g_OqW2^4 zba?GLo7D_}W-b!F;|>Th<$t-bsvgYxWbiHG_n{T=5Sq28sGf%+V%pnIJDB+Z=jumt7^*0( zTMEGOJAb1V&bkSbBV0Yz+@WR$;nX(mmV3tpqyclY!~Y&Q{AKW80{G);{i0I#3 znGeE2d!v2W@gQN@NTFfgYgAVUu0M=2InZS^KdCgOrU}f$CY1QYiN%4D6{hUvZyv zll;oNF|^Z@r->`x`W{aMf=K&5VxE)acRaa*6Ff#%tVP#$5w1au zqTH}{{zL%Fy-Oh{|9tY{x^TN7yna$oqF)s`e>T0QfM-5WYtUi_9dR|0^(XJZ_bPy8 z!zyf{vFjKlv|OCTZ86o=?IWrtGhJL2;a<=RR=S>Jtu)q*#AI*M65u)X7sIjJJ$3sK z+(Ww*SsA5qf(68h`-GuhMQ5uek`F@5;X76&H``^yh_+F7!)UY83aT;vWc`8t8JLbYvr+nWwMa) zAhX1u_U}kVNdiWf0!HAPg?~|N^%V`vgFv+|HgAw1@rNR1u+0*l|){hMN)#0-~VjyY}nG*Ky_64)Oj) zq1**Ra{LQ|o`Wkx9LM_9$kuKj3`5J(*n4)!DmfI;2um$_)U;bzQZ%sP*sM5DDJouzE#L03KGF*X zoJib!RD22zI}{B^~E34IW<`EJuT0o6w_IVw@{*n(FE+#vz( zxT5rqPtPe{8`c{Tw%=$O}yzAxlnwGKs|L-9J6uRq5+meu+{1QL2lHU5OLgv*`PQpYP#8(@FktK0F= zGseNe4C&l}kH@kUvGa=YYo#AON<10-_Ge&Id>md)MM7Al7Tn805m^~9*jKPnHOf|* zlpfb#r8lG|dr1$#y+*{76IFl-hsjnBn`!P^SSQa9I@Xtp>}1r5lm|w81R}>Y)*lvv zg~W($M-rn7-(#JCrZ#tNmHE*^6k*d2LjvmET)PA0_yOtxH0$Tx6-Wo`Zwme6c-9q4 za*3FV^3!jYW=0NiofA*aqvZyhxsuoH>1jG1%-xIb&~ELv_M{~cb8aPcP~*Kg3wQYq z?BGsN^$?x9q;=zV@aDLqX#$FjS*ef! zfe?y#p^+j>pOBY(xwF=W29Qlh0w2!x?a5E7lCB-^t#yMh7c?^4M^Wx7YcA1=l|IGh z)r85gF0WC>Gy^9nzuJ?q+VT`odh6sn%DLGd-#zS-t{${gx{_fS?XidQ%x5&T6bs%5jBS_(Py5``} z2L!#^@d9`RH((@=qlLoXo{5fBC;U|6=-{c|i^9%2_#2=))rIh=?v68(F-(g$xbuW~ zkh*+fxjJW%Z8tR+e~|FHM!XZb+bjEPhdIn~!-;?=TeF!{IWApB_zL8UDxknZQADas z=vq^HeU1ahP&h=ha#otdTHL&FM+dk-un)|BUJqz3nu{HdbNLH{Os&qYY2p?{aK;=H zgID$9yl~YNvO!M=7hWAw*!Iq**n2kF8R({|0RHwayfwP-AT@__3{041=!Nhrabu6! zPwYM?Mb9_FBsb`yg4NhAi!h_ujY*i7Rg16JF!1@NfVvF!4-=@xsJ4Zo6>l&*=h~h? z#6A9dZ5t?#pGz|Fzw3k+7OxckSj&iCd-Y?$(Rb&5plxL;K5atIHeE{_rPV5f-3N>h z@cI$6FOF~POnFLBT`p0)oR?(v1z8rAYn1kv(>t9XFp3g@$ZH`arxXmgMHZ8-kS){_ zyuoG+yIQ6U%N7sEj&;T!UM_9XAWF#Fv;H2@(l&`8 z30wxXCW}|%&BBdP3P-9mGc*~m!U{HDbVKv1!~scu7`f=~EFBN&*-HrII@HY73kH*W z?hS?JuYo2!^RMgVBI=ARc(|A8tK(mvhyf>2nNBf zZ}K*lCsoOeUbuG|(Yo+(MKOYw1p_M=MtjiEL4gPrv>y?fj0n9@Yw>~}Y>ZGZbfMdS zo)2K$13)MI!~v9h4B)Bt{s7lSN?4vxyGv5=pDpi*e^#Kh$POxmY`bdv5jf%elPEYX zsn~`O^1Q%A{keVQ>jSb|O~yvS7>X{Z*xF1{C)X1gR7FY^zh8mo#d!{e-Gae60ZDgi zkYgxguFKT2<44#>aP`5sHM7dPwzCdY&n_~ta{GQvM^fvBD52w2kyEttB#Ld(`Po%; z6~4S}>pCNJ93~K&ls+hMub<24HFY^#xoN0E+lQl(D3x z42#2sTQ-&y09>|E6!%e!#mfYzPHh%4+$F6zZ=UP0%1&cF1c_gVE4GMth7YsDSEB~p zz`tzI{tTdV+~EEyPxhFXyYq$+bJGq4Vq|SiNPN$|dRsFzL3b`TX9zX-jxNFxCJq1e zKUqAZk^tHdb}`?O#d8pNJPGkH%(TLndHc=$g8#>e?Tf03rsAT)yhXtt!!L%I4Y9k- z1poHD9E)^|bqYtGERNj4$UWKSmJx7Fe}bbkcCEFkz%WyuF$x?MsBZHPA(qM{x*wru z;Vyqnt}w#ZCed-uM*7OBZMDw>Ue@LlXx-Zy(L_ zW*<&`CSfME-nS?<|$y4J)e*RG;8^osHAi^k1GlA%her`IN zeTk4~!R6Z9A9)u3D-j{AfxrFsp%FS+VI4j*!tIIE zGhM_Q>KzJu__b3)F{c|tMO}qjpD%`Rhsiy6#W|x*xPkdQDoeP}M>La9;^qp5;7nsl zb<>_!c|L7Dxa+nt8dS>Yd7?etO!2OOj)6A0Wd`HlybQ4TB;|9Z1F+be&RLTi;O`0? z^-!(TFBi10DZ1O!d%hlI-}`hK^kpq_%q!b;Do5F6#1#bs?znaA@=CmwJKn)l79S-h z)nyuPlCSb|xgKEY0P0{cpu8HJtk>>yqI*jj?uk5y8s%{80Q{xHDq5*mR+6Vol;fPM zYzQP5PIwhK<%oMrdlcj82un_w8b!=1RVmHkMNU2TxRN1XSBQm0m3a6qFxt)>haZ5U zE|6A%?>h15l40_|`HWQAkIuW2kOh|vE_r?2(rOPosJ}&mE-zL+SO?dv{@@aSRhe)O zBOk8VBNY1~oy^pY12$%okE|B8h)(A3^&lZ8`#M}S0`__-#GW*Y&L-6>;NIaz^U3p3 zdpq%8eIna5R=Gr>Goe9GTxPs>1IaV*hoPa?WtZY+1_praA6tDskQ&_34~6&mz28b5 z37xPD{Hf83aE5?7c6b*LoudScs{CCE-QOx=5w6go*QlU*I-IoP_&s3nZbx}(^*|J3 zMEE@?g(C?63J&VDj{h7Ce*h)vITGfE5+mm!d}HO}V{sh!P-1X0uxp1q5%uaX%r$n3 zbAmd%c<|_!-|J;!!BPe=Gx^f0@X)yc@xM@PkT@>gR6F_aTJN0tPmre{y_WuXary!} zgK7h>uBJkhwaPKZ`XT4#-;!n*Mi+l`mLK08wj0fL9{pT0y6GK3Hn1&dh^C;xk*_6z zJm}(RrJI11txo98Bv`+8DNu4p4nFF%5c)3X4DPwUApAVH$R54c)SgSdNd^p{spWq4V9$JA%&`%gXP(c4aK>3b z68SP|p*1lDDP!A67{-tb2rlE@M+F1enh7YL{zN zS>MH(ihFd?wNa73gW3D%Ol-2Gu{HvPt$N?)AO7N)L4}5+q?{c}c^Mok(WG^D=$y&@ zcN&gKZP_3AX@rycUv=kN=aYLZt_=;k@HBex`7!E?SGZsB3WNHGM$%S7Z+$hSCL^=x zW*@=&YlNB{u!BjP#%?)A3SgAipeY(&+zwI4yBK)IC?6nc@>sLI~Z3z5Cm!*SO`cwl!eu*Q9bFoecrpbsz zVQT~@2<>cH>A!4%;uY-lv1UAKshKPS;$+b@ikJrY`K(cPg79Lc`^YYL_Fyl((j9Xu z+kqi>rb_J$1nJbR6`d0B)Uw{@!v4sPB-e?TD>uvV#86IhI0+jJ@j6%|<>7|=0OJDT zCB+hKczEQ4m-bO5j$1Ui>UAKi z0F&jwsCJ;jXUO&!qi2Qi+K_rYoJ`?6JoAf>8i*$;={X%_F(2LbbG5}@^uT`Jau{JZ zLYzZJQzj?H)L9UcdNC_PiK)g;t^F6OuE1*qg{=#VBgEB3p*O6-L|Xs^CNVum#y{R{)V*e2N7M?iNmbn z*cLk6niV?bv9WFHIi&${pPB1_GAU|;7POCGreP>TT$?8sj6 z#EV6=ctWf^s0ncD8-6WKnvIOE#*-bb?xq*a&cEiTp;-WqKBBJoH7E1$1*Hyi?&h!w zAne=?n;cm9hNDl=RU8C1AnRR__++(B40dqS!WjdbH zlwHt(#gh-Ejkj#z-0l7o3sER_69ouKlHm7~;Y&Yfls71YgF#`{wPz$4%67JojL25p zkhj2YZ@=ZUc{hY@h+@mSjM(=ach!Rh0fT$Y9tjTOOWxXh7)h~4xhgM73xy9D)UX`nReMlTB@E+sFPwXlI%I$Hs?w(hq}mc34s#IhDD!-d2%j2O4rTkN`! z*tr|aV|Q63^Ff21@9o`u7m#Dlk}3+&z{s zL!&Q}?Um(WS-35#uX%JiLaq}qb=xH|YV`^1YQ5?M=D9N!0I}Jq*smL(s7SeD?US_D zE+ZZ8UrF1=Z-)yDtX0<2?g5q=b@CCqspg|)G0?Q=HjqdBY^FgMLsIy%fZ7>%P%s@r z$lMQd8L3tC&IjDOxaF$VBK?y$*1)}h^OY@ijmCGww6jZ0$7-t|CaktIH=ti2k$1dU z{qeim!@3tiTTtIUa{*~k=_J)>pw|{KxjB#$ebsI9cQ=jyFbcP{sTK64&Q(O*+-4o) zuI@|#OOIa4B08C9Kf+HJv;n0kH|spxKN(88?yaLk`0agvT1WkRji0rq%;_XKZ-C{E z&B2%VK`fVXvgY~q=fcl`(}6(Q8{hQ3E0rWa?Yhof*hHF7{qhH0mqZ=sP5%YupP8;a zfxY?q{j>Z7zb9SZXz`!x%}@Uj0XAM29s&tR)#+r}vua7OK#4v#KD0Wqg0RTE` zx(a8i{eb>o{t_TM=-?yvEqLEt`Vl8BbWx|Mc~-4|A0YX@@uRm^60e%9X;fA%xK^yX z$}0E2w{0Bq*{e1EZeBeP{e?ERI!W6bediCR;ArctFrRpAH~gR80SV|e9&5Wj?f@Ag zrlrvwY4XX8>yCDHbfbbco-yN9Th{Q)uZziMRVaz(> z4!I)FgcOr1m!%Ugi4O2syrKSuZ%$Z-4coK<3H|RcntGM1UFC3@YaK#w9qwCV>slAb z6|3=yab?i#7f4>eden^q;JwOf#}%I0{E4+axfAjlQj7QO6ZoGdMQLqJ@#2>M_7Gy> zwN{lU_gFkzl4XYQs#P1(+Js+pFO0d*@dvD`XPW^!x*cJ1C6R`nu2C_$@xp*e`SGL6d&I+yEcuAnjNjf&etZe!QZXLAu?Y8!p_e@6I z@jzPt-&bP=fXgTP-GBGZiBAvYPQSo;JoguF2a>(^TBE!=kALi&+X|RhqE(HcwK{Kb zF(#JFn5YRJit|(fIBPxdu0>SpEFZxB5t=;Sg)e{ z&{cUEar|dM!eD~!>Vf_QtZZl1` zeoNH86{e0>(>)EPCi>HovC1a;r}a&EqV4Va z91$VoGNSs#AP2>v4h;G)nkAD`!0&oZ+&@ghug3Kmsi=+=xe-h9sZGy}5Qa@&)iy66 zW&9T|P2`^&F&>BKHdrMtp2PwR*O<3+DIb1%83+6{{_t4t!#_cZMxUgazP0MOn;Z2( z-`^wyRG0zS((cJ^aG4*5M@nbhOo^AptiKM=q|!;BO$D4#RqfRF7P@KvBh${*jy5Kp zv}!b770Q(X(G4a_lv|@U5QoPi&12Tj_s_3SWF~eyxjFL_$GSqaCSf0j?b(vSsWn7iNvmRHrpC+izPf45ku2#- z{G!EnVIfLFn(cO(G>2n6?+yt_>8%eG<~ex>lk+d|Y$)q{+W(^-#T^mju#%QSr>q+5 z!Y;mx8kNGItp=E%CBrbrJQ43cAj;8I6~aW@soC|0L_FV%ks z_dR*aY*+wANT}_-dKPJ_$KkHq+QUvPR!Q&jsn`%@NA8N{RF23RZ}6W*{_^K#iEC9m zGYU*bDJPDi5?55q>9Cf~BX>OLJ+*(WL6$GZ{FXfw_scBsr zE2bBXUD{`fDyE)Db>o>FQoMWoKc4GQ(Mn-+^tXuIC5cHTy^U=0z?6I-!vo&on>>#( z87z;6%RNf!LTqnWMlY4NTB!NB$%Q*6vAX~>DKTQ$M-ldf@t|R7G_iPhCTCH5Vs^NB znmF~&9!^~&SjUf|L)E}%@+Lso+bA|w0;7th5xj8{rK8@#^A;qS2u51 zG#@VA?>|&y0p79v`Tr*!k3^bxS)G-w>r}`AP9E;D3gD=~Tr@AZ>zvPK+}}LOg6TZ- z>)E?;ldA-6zm&MD8bhmHpY0Eeo%mnU@q*KEpVoG+e5MmMnetxZr@Q?%A2)Z7vj8RL zaDb9CEm*1U7~#mC%srHtl%Z@7(s9=~GyVH%tn#|B;oqOH$Xg`j=Z!kgcKvhfQOk8- z<_SX;&wq4%9bf=z$Hr;v)AhbEVs3lO*5YRAo=M<3zO>F2#S z^yZ=>MjJ1U@kP%B)_>w;{8qJscrD6^36dGwpw?(imEwiBg$&{4R3-anRsUW5 zT|{I?#*&^S6T{7S**=0tykDrE_LR@B6lNv`Ug^5tqWJySiSbw*QEb7e*At&nS?RKk zOV@X#4;9YxPq$2w>$v`7W4T`)Y9LaA8(`mOB984E33bnbN|578-}zGi!dmLX3rvA; z9wQ3|>+cz(rTCU!*rfA)qAh6g20y0QI}4TlzWz^iz2kzFE-&tOO_cKN`e#YGH|qjm zR-@vdE@A!et}#O%PB{0%kn5B$^)hI|TUzgxK4g|A)hLycg`oKuMOefcxJ)~_n)6oL zhwqDP>4(1v8nA%5?Uol0L9 zCl|@87ZCY9#9!GE(l>U6Yfr`$B($sMEjw{*$7jz>cIRha)811B^`_4BEyFByuaTDh zM`W;?y}MAa(fgnP00@Q(Cr+|K&(L=_cm5vEI+N%w0@h$@%=)wQ$4d;S5x9?TsOsTU zY3OMBWOQ9{-ruu&xp{*nTHSQ--sZSfkL>R^_quc1->OKz#nik2!hRa@=kWOUGKsq)MYkFO*sd`{Jfzpz? zDiKht`@^1iOR=-qSoFTn7eVynt!69_Mkj9cEVQQe#aj!t^R9JDIo7|+$O=VnJmM!6 zZ*89$Y#rd1R3WO^MLv8?4LLRxkIO1mIJgbRSf3+7s`bqaU1;tp1L{I$2SQ?J75hrj z9#Fy(R56+_Rf+<3Z&#-9avAf{vB#z;^&YMjwg5FqoH55S3F}o#f zD3DIrf|R~Wpt&=Q^*NkEw*#YA{tvzlfYRW zuF>elmv{_s?~e53NXwB`5bkxtJTquQyUqAA|@hkYz!EUlrvp_J+g5@?E;GOZ?OUmc`0jo0sG+yhT(7 z**T`tnKm0y5Gk>CKn1j#&0gvOuJPaervlg#GCTeI`wvNQP9z(Gh|K(KHJO!hpq z6VUid6@Rg~jdj}fQC69n+#i0>Zz&1Kyf8*MHPzkr;}CiulCTIm4;;OK?z-D#)8{V! zd1uC_7-P4LYXIMCFjucbO%?f8XVlZN2PY2>v7JelKt%+*#JT1~q3b<@#@>WvbifJU z-5!X8jW=Mi53|;A(>5nhos0tPbO@~=ekuS7+bJKed*qc&0>!5KVV2x2WWQVj0 zh#@~}2~Hsf{jjoTHRZHMNueKd-7AMKwyZc`ytwQ4nCztNvlD?@Qn z^A1zR?E~XlLhdtvcF!vpDqPra6pd#4vpOH^UfH85K-2J6$?Iric1}szcxq(zFN8$O zisbwy%dUW=s&Ku{+*-pilmOm96w`YXmhJ;O_ag_KMnIQ+GImd)b@gzVJy zA)aq*vje*}#{f{Q>y+G`eaQ$TlioC4!YtnexW;A1uJiZvaGje5H}oRGr{R+%jM z^|!%UUDyAj=$b6~g5-XMcPFj^X1<--30)a#Np3MDaKr<-|D2c7p#6K9o^`)a6%O+D zg|l8mKn)1+!4vm9@AK+XBkz}DIU=79OWE@u1vSy6mey0JJD$7OXz1yR=P8hirc~e* z=3f+)Hs25^a^?ZY56*rSBn$m9vMO$PVtq(lp7Ag6vU7d72jI;6hn)EN$8*$75Zp_x zQpLw-ZAHR?_^Gqou=3nk2*8)^%99V;@%MtqtMUiE=yFU&^npVo;Lp&AI;hI+8kkN^Yi7b0g%XFt!mmv%c%-)Sl$Mflbz-69|7qjP3vhY z3+(N&{DsgHcaPz%E5yZq#(>(N{bfICbTLWd$XcOz;c>%z{4gnL``g+M1LQM&kv*cC zH8^~lYvJiqCBLCw9IhLX^|Ely*_FbYC^s3ctt=JfxMb_HG2HgeuiKcx`?~ly8X(O& z!1)qU7^|l=*!_E(uT=`ao@e-3hF(Ni{Z2Y%-{~@CyT78KPP%yrm9c|nkeN{q;o>5# zTxekx;J8xk!Sk1A7aoMzAHQGG@;!;mEqCRhSj&w|AqsM>{}7OF8-R_)L}qOrU}gin z-82=w77n!m?&qnyCwf3}e#Ec+9MPx}pw95~lLik@75}9#!g&wzOGV|QQ#mE2*nRK| zjEEu)7sc;Hcr=r;NlnB{5Z23bwsJJH0Lgra6rjsTYSAY_vD;4P$jSEm3s|y(0PHz{ z87s>q<7(Lpr6OB}OB%YHB6B|XaM&?H$UXTQ<%JM7-5F4vuvR1$$F4bscF}#gIKw(q zKPf<<^Z5lrTMJgzIakP|tZygmMxSC(kcY!PU8&I)(k`;#lGOLU6G4g{-k}Vq00uJU zm@pL)8k%Vy^0y+}(1FqgQ=u0uhk3e3Gi_jo!I-a`Z5x=}(C$_%#wXpk63&EQI`ePM zUFJ4pv==tEHQg?XH~Mr0!o_(N#@_vM+4+5ryFVcl?MkLqM?yo$FQh zyCwCimP=3O@%CwtMpG-v$@?C$$~FjuhZDiVm3;bBuW19pqudt7EPK2lKql8W>x#rK z>!EH!Ivo+!yX47{i0J73XqF~WHiU;GWAR+K8RCa^3)2jg9+-IktK~UfqQT?I@i!K* z?Y)puW)viQ2)Tf8&1&g8<1{ByDaI3N!HPVU_d0<2U^)2eF_D9$7hYev$ z|B@SyVI-_`UicvU_`0~!iSy4wQSUjnKmts(Nzygp^{2sl&Ohxcu3sT9k00T5QzCa6 zrCDy#4YNM7`CQ-^Bf{bFcZ9jsQA1AA(r=CHgRj0<-uoioOim*+WJ%e#F&33HflBT06ZRU=fhz;Am_HQp?PQwX~Y3}bRz3X&VF#asTF zi&@Zt1=7p*zv{m76RJaFfjab?2kF!IEOhrtvt_I~Js+4JsL4L~!gp8ZKYOJjEiB<) z-M3D6a9bMfC3~lgL_aQJQOgs5z?itf#{9M2^N(`N)8?-1@#9v3VtV&_hRF3KtCX9b zau=m7?)8qH%e1Bo9sVlKg*+}<+nI{BWKhh%?F>siaBo@=n-wBoLJy9lFz9uV+dD8d7 z9LPOIO-Tcs8TREz0VP$OTc*|{HgjA_HN5AH!1|Y;_H8Wk&Pn62YI^g_T{5Fn2hq#E zur_A7H|M8_T|bH&HuurYW+~QB?HUzI5{wjE1tpuwsG8c*a17`R!(}*_pD3WYTc!)mNjDrs_CE zpijp(io#L{wONLLeCmfHk2wg2ok6baY1)V86rmo){xm#hCOgMXo!k~dNr+;!GsF!= zjtWU*K=bj&gfmS!11(f{b+46!dX$WAUm{T?D8e!X+gd-d(yX%X=Ospf9Hqq<*Mh|V z(&#~4UfcjioE3nCA5Pp?A`sBa2W;jLF58U|r-(HU?#$<_{w#hJxW|_pv}@y8)J^*V zt0pn5IX$>bqit5|{#my*#H33^Kkj?K`P~robhk9U6NIh~G1RZ}v9uel8u>fhhp6yy za*CO5X^=d&fBrM0Ba<@k2S`OQTMx0D{vpa6B^cjJ}&xv0F+?7;W{aCPW60crx%OTpsT{Qec?s z4^9J2>m-|mLdGa6NFUDatIFyV~;h5(YWWHak>b8jQ(&QKDhGvIY$RP?)odh}U(h}gcihQ5jhJ{Ij-i!(=gH}5pHzGg zw>(Gf{EXk!b?|d4tUiDr^SIc0)qI6QorQZN6gH1khjhOe+LhSo?nH>9s;#0cH_~4o zRaa^_$Cl7!u#BfjRa^=JSv{97&}}GZ692yKVpY5bo0!48`=>p zWc{2`qbK3gwNl%P8f4XU;AlSU{$q9Q6QcsjYdix^32@|n15|aM3U)B#Jy8P2#@yFC z!!rjQT?)Grks5aA{I^Pq#ZtojQU*w)2jq7PO0i4^ex9Py^<*zvXc}pXLBV0y63W31 zaa1IBkW?d5Ai{yTu(Sr52#qk0uaP<}7Y8(ZL!yS*n2uwEl`g?*->aUX-!r*t%lu4{ zTikEXy8Zk+wq{}3?WZl&G^PLd#E}5V0DI!J(^iX!E()eoA7TpS{@ya9F@X}gTh}wRMstAjJ^9`OZiZZ+Fo!mg8@=%$4&W(?5gFtJ z#@|B58Kn2T8g`uc7yEQZja|Z7aobRE?++w^LPaMnAW8r(L;C23Z$T-s@RO2JCvtry zu-%z_Xe`XBuLV10U6D=^!-u$)4mAmna8VR_P+aW-@G>@kMW4RAxf!ne4oK-C ziY*!c)}#Mj4-#^Wzg=y{x=77ne@h z@tV(WXdc)@5m{qn8LdObO{2b;H)wLO)LlF4rwf za|(`+4}7Z|^u_}Xs^1VA;JWM!c=5(RSjk}uF=>c)YxzT1^V!!x@YB0WbE%(Bn*R{@ zzG`!8Ws`HZi7Jfae_h*S#cWAYSH&<_Du-qBN40NWjQj^|d{YhleEa?{abu~7AIxo`tBu!5=Q zIGm%*y)*w5z6P+}WGq(M5gxPtq02ftUOgLymjAil{9g^<{=eW{An2zqfoY$9crKuL zZ(zxavIdrtyqa%?9sJNGovR`M8UD|!|BnRi|MYzW^jsVguIsJ>0Pp)@c3ta#9|?6@ zse!3Z%jegoO^}78t;>W!?1r=EC07|x);7b zayUGp!%1tpdPrBiF;(mB1sB?!3&v_ntAV3sAO4^HvoTE1KGA20U|L5z-Ivi6F|6~w zG_7?Oj^gy*VO(*^t5eERAXhv1jk&<-n**MKovNa`QSH(%ft_c0>^pLRQr>yCpw8t{ zHIN5>rl9VQ+&T;h{AJhODX+$lRJ~sl8-M2j3_+_aOZ=u|mV)+I*BPZ_1Gh$ggOz)n0;i0G(apZL%}1G` zlzT8F5SmC99}MrWK=F@6{VfDxE_vXZ|7kJ)y^NKztkq^ZxaiUhXXCq1W(=qE@jrI2 zYg`fw@AlO$BZj@l5c{XT3ZRx%Zq5`J*4Uh5qB|Ckd5HcWKTI=OF-E8!iTF3SfKRV~ zZRTqz%fE6R)%myYR-FXCeDm&vvhP!M692uAH+}Jv`B%I|#bENkJPcI+KOC6vP?4mFLbASVQIrdG!Nb;JtI zB`C9HTl@a$(TsW61V1<+a?32;<;zpme3$aHBQ=vk%xNkk8L*?xc7M_ z%oB&A+rHZ$@OFI4R<<~62#Z5MjOZ%}RH=SsbP@Y8@|%ics|b0U&OG#oj*&R^K~=bX zZtxIoyVR zDs%~b0S-MIkpA%lzMw+mYo8@rHpTz0neOhG`N@)6A>kO_KUf_nD8IMYgv#6>R2N?XK1iM6&`IH6mjfa}Fh- z(v!RxXHJ|z+fM9O_P2Kj;`>GS+Sg5chjja$XgsPGYt%ePJY@Z-=Ckz=GNRG-*#(`TkmItS6?#@Ou`5D?3L@kpWcuJt+3-~SZ=dmYW1=RtVz$& zuhD8Nv+}VpHN~d8_DMBdXI|o!^Zu{d_G(8PBPL6Ala0Xwq;Vv=L*=u(dMRh-V06Vt z5l?tq>~ocI_-!?k-LJL*ku|V$Y$f!f!y5R*XL$9!W~H z>RfB5uHO-5YL~pn;~8G#6KaOy+j90o=GXfsHt7GMmmMq+)pGZc`0yWRAaw(}6Ypca zgO=j<1`VT$;c8iI$|D=tsrWI%gI|gfl)!jM-Vn0t=-lL;xFN=jX|8lA?Xx#JJ6u;> zEk%SLBKf@Z7+D$LF&oqrh0ovUMydaUjn8UtowRmUC(74ZVxLf_Qa=CVVgKF(0oCP< zoQUd7`fTHgN8iU!pPKYRuI)ZTTWW1UY1^qO0H z8RM+j{qq%R#mPY+>u31V<{q;Kn=j#~>X;ekuOGc(B}&APZx;9AeYQV1c+p9yeZB+8 zCsiF$GKecaUOd=`m}{`qEH0lq=*GGt3k@omlKS>6liM(IU!}NTSXxKw@)UEApBf|s zD&X&%`Ec}<*9rGP#*{dAui;x}-LDVG z-|n2_($Sn#j1l~X$ApXqd>k0=^+l?qvoTNNDnAf(kjiXs&6$^Y|EnC_4finJ=TnJMOVeDiG-R z3GG^EYRb>~uX%Se2wT^6F;6QHwCSsu%MuyUsyc_NFj%C4PKe#j8Bc|M`zf3%fD%^o??xVa~I+7ET zL#UWOOFe6^DVt1V^p#2TT|0IeiaO@rdZV*q;Yc)*pcxsf9MsP#U^dZpR43%PXBcIx zwmQJ{Of;%;Ud@%7{Ixmjp2QHkZLqmSHPvy-#iSaaZr|Vc*t;A*YvtGeAXL#2TMBNb=?az33U6+?}KRs9ifb-Iig}I)9!} zE-pZ9y~%F5Q@jxObaQsMUHW8Iu1=Um(Z0gnv}_Vaf(p{X@CpkUz#fG*ZiK|l69e?F@`+&EO8!CExNRh3+z)X@G`>}op zVxq1JCGhYG&|VosX$CW*zXgQt+3Ws{FE~Th&o%PG{07lTqMOW<@pxFyx^!h+q?G!c zo9%4S)H-m&vGMzJ9qqa&NlUh3pNyY11g-N8zR0}Rb9wzpp3ngVq^kSEgJB%|nhMng zq|bzK`Hh!f`7~!>Swy|$I{(4p-5PV&8Q=W63cH+=4G1e;DGcczYoZU zfwwYuUc#my+M7OO?~qW<)rALkRCTt8`)cFipZ^*gTI~Kya5R5mFLoPB#@j0oXlBnm zgZxSd+Jr!*a6%I2E#wVzEqW&&f=Ju#A2>f1bnJq-g%=>)p=;tjm0OZ-WON^3|kKxXuoA@z%EXU?$oQDtYXc;z#ACx3EDPKipE^{fM^Jt}>`LE;0M*)*bxTB3Ev; z)cw*e!tit~OFAKN3n&N}5MpkFkX7PzPL-u@2i$~PIc+1uS?X92U&clO`Q+=l0 zov{RetkJib_^BY%52l#r1|LRKeM9t+)?4gz)Q%m^2ebQY&>nMsv zp9P{i#1xpd@pJk6$$%OWoB8?9q5Q9`Pgt#$x)|IHaH^Qhs_>`yeRQvHDMYceDUwR1 zcQB~eA3*==OMWDFO@y4;05Rb7t>Yg$_2Rft?HtW-A1uh5v=o1~WD}h808jlG6mlGc z^V&K)A&fa^kTnm|gl^P=i*5XeZx`M}RzswGhwGlyqmbxt>h9EegaI)_}*Uj+|it{llxAz>T4UqBF z+@E476vr4>{!h)Azo5t9_aXz4_E2f3a8bQpMMgUdK6 zadS2GKI9r9vBF$)`m{#JRO{jjz@6Tw5TKnujqq#xFf|oVTvQa=A~-q_NAJh!8`~sDr3}t0 z3$m%o-mfWbP9Hg#us1(%Pua9Z88R2a=&)XaPfn+QmVV7wok~w$_A=>XP{wb}FleY?2p) zp^ct~Lv9h*JLS{g79n)()3PkvI=LQ*pw9g|TD`Ufy`e}MWU|f}h3r}_u=mZD=C3lF z%SFUv&93Obk7%&w+~kx?*4GF&*qkb+??W9l(j*1XWl8)b1G?PZdtQ?$(810=1DR}S9!}B!93HAe!a{*lSca#jH)3BMb-D5ZAjbXRvi6WYO@{GwV za)rmSJE!h)yHQd*;&pz$0{~q&oaR?g!5uo;wHFpVEbv!WrUt)3d;M zd*G%Ep(kCD!K+iHOrfYpe!qrp!wlfncJU>AAFOtOY3eYwN=p@3CkvJ<&(mk!IZSaS zy@Epf;DUdo?RcAq*8&2QULtC&Cp@&+B{>9!w%;J6adKGBMtsZ3C<|rTG;3YjhoK>PXb?_{t{cxm*WL z^f0kK96SA;{9Cu4w0@dr_|Tgn>a}VPikGH8>L=?*QH=}8Io&}XMz9`QtP?LfWI2o& z{R+W3GJd8@C$>m?(gFf(bApmfWDR6o{#SK^NKrTuGLi91hJS`}oCvOl4(@)RO_?MB zMQ>FRqUd;Dz4;Hr$QuJgT#LD-!${kx*P_E^$N~i7%L4Tsm?CqHo{!%MH(_q}Y3YU! z&dR+13d>UM7PKzUHZ<*JQ0#qkZvI(3o7_bAUVGf<*TUfgk;rCRnK`j2w$kUv+gD`{VaUd+TfFFUK_Pcgwx#-sZ|3WnJ#S-%-oz7s9@HOw>pK^flBF{aNjqutfXz5) zjz14JEc}D4I&Oxg$$osbmoKLSK3Lj~ipyn}g#;co1@RUOnZOH+&XY2Db}RR`Q3A0 zmc2m$E!4m5!M9T~;@14E`i)vR;O=2#3RTD_*Y><|ySVqfe$wC24;H%T_38f5H<}Hq z?rN8X6MxCPr-W`=NuYr$Pq6UElo*Fyz2B0zSL(g!}8SR4(E4 zD*B^;FpS`N7)(zai?XDZjOfQh`coknhKrFMZ{})=viM}}fR*l~f`Kmmv9k^u;Sitt zzA&Qf&qXIAc=Yx)D%XM8^`lws4whf3)AB$71i7-xs7$`YCH(fg-eM~_oh}=`;6G_T z6n}WYbFgUI(fY-*%Jad`i^uP~cH^<19}FK|lrx_)7-gsRxv7}`Fa&bMm+z`bzdMss z`_q@=0}IWc**B{!7Wg%_CO?uUBxibbROWYUu8H|U9QbXK#?h@PV`Vu%O#|W1(7t3} zw^NIG_wZJ=e*x^dFMB9yWy7j+w6Mk2{YPj*fa48sq266R3Qk|1waAoRkOT_clpdZ~ zk(F(nT%$-QL1B=gva(9OGx|3zkc#(TR{ssk@xKtOcXdD%#M|sLyzq9a6M$9=iD%ze ziq{^^Alwbq6H>k-#M!d7l`nD~BClZC&WV9TY2tO~jvIq`#fzy&TvdcAO7bzpaRd+==18w+m?7(nC}X^99VNEN2UeKR`7s4fRi$O0r1&29G%oB zpR&!nSx^4vK=Z;MIrhtpZ^Wm?vam%C#{cTql|vQ<@dXEuQ^r;aZAzPXd)%H(KfLQJAGmHf?40M*Wo+wC+EPBKX> zA;&mKmZH%XL^^=NqOOnjBMT)HaB{cZU`v>-Uu2>C3Z8o1G~@F(-@H2ED|FBNrPdtS z6JA;HDTE&nb{BrSIOe25=9TCPycU1!h)$@hT=EsK?KT{}86Nk5aPgghCZRO`}Zw2vsV)R(crviK^vdUp+SAr7~)AqlHd zVKHq*gn5J>x?i>amSI}2!%ymI=rPpwK!eqGLvWU-ix4YaMv2A(6e$!uDJsk^$;sJE z-LT$=miAOAtxHr7J0-ikWgoVmJ@zxt(I_;PPBOiv{*Fm=z{VA%hL5=0B{ymARANj) zQd-*x?4p0t}@7T?6gW4BAY*J$5!rw%XM`f*mk+pF4Yic1a)-!HCN(5-hP$$kur32%Qtq&> zKrFLem>vhirhu#14a^gfiJe!*|gV7hir%7;5x=3m4vh`qFsRC#=Fw7@EC^OrjX`Y2FuZ6T)Le z_qWFhGTeQvG{`cuAEH;_ptH_Mlw)NYku_9rNeUy+!@Zc^07rUif=}z0;Qq{+4xHK` zaH*5~WG)(69I4<$R1pYKAu!-r^B9h_jSg|}DO1}juJ<(BA68!JRVOEx;sGk8M1k&O zdtA@wXjF7wtW51%S4A21tmK)xCYx_cR&xWa1EoW_5QTTw;*b|9z)NR_W(HaOg*ERoqzqkmweJQT)OXar z$|hB7P#(=62Qkqzxd#le1y!4!0kxJ&tfY`k3AQW=JWe=jTn);417zuZB+4?%-E+qa z?uV$XE^sTIsDl6-1f~1lg4`Y5<GJJaBckjzLJ)|HTkHh zpvT4A+u_avmTX{UhL8DGP4O_pYWEKwSMEETo*PU1+G{LL&A~IHE<=uPX|1lp5M4Yz zdFwLrJg0XYFi`!VA7p^3-+MgB6ndk5ZJfnrzNPvCH{&MNIKUVwYf1>x*#?n@C*xXv z2`YQ!lxc}0*-j2wxpHCyOeB083%~qnO&l=5n{7Hwf4_w;VWX~_2L+egpxV^~L-2t| zk9e>pgNzc)d@S14%*?;C3+=cT#vQg30}oZ3);_J*z-L9qbDs71k+4*$4RIaKwcRYf z+7jzzWI6dyIZgSyPv2vweJXQt7{lE{kYkZZ}IC?tEinMRg zDr=(oRPMSXhw%G5HQ|1zF>dAc(ISO-?-*Am^#fMgD6_^gfu!C=kRTt?K+UPIwyIsu}GyugmHOml`GJG;=pd?diN z_-h+Zun8;+=Q?O&5S}ETLm?SY=HqN@lKMBN-RTEx+PAd=Mk$Y6j5#2uTy7F6Gdh6F z`Vcs8`|th{X4e}kSSJ83V;rmYaxx2PkxuhA9N$DdL#;xVW#-DSOx?p&VJZ5m z)8y>_y*tM!k$G7Ic31?Y3r;hUb-b=~TQck_I!noPVp8i`JUz!W``1@Z)B)LdvTj&0^mbgu!n zT=C2b0Od?7J>lGu^nyA!&hi2!^GIJQW8^zRLr!1G^l(2tpUSo5i6E;7Q|qlsiDygc ze!RyxjSscY4q60dE`5?wsJH`$m-h`Ll@8CvrrlY~mAPqp@ujib~Vu zz}{3anO7loiX9gQF!*5W&@#!!VJ#f$1Db68R)NeIbudWZnpkh(8XNHSk_`2#jM7^( zYY14&&|^zh*Hh>zQUdNOHK9oc%n z{)XPhI@o3p1J^D}bmfFaB<6Nu@7`ahA!XvUe&11kCR&?g2MDo5D6U6`iP})>X zsvvu@fkYpq$_Yu2!0j0g?8u^*pxbrl2g2P=&y^ur^K+VhMBj@=jb9DDCG^VVajCef z+FcySN{cdUI2yvIKoR)ZD>#4^Cbddx&zNliZHfhY(9%|7{bklj zZ)rB@MVX1xyST<>P8ses+oReVxBCBXsJcJ$gz6{W+xD~GK(F(vvB4Pla&o@Ti*mwE zu32v;r`WxX=ssf;lNozu-`|YDRC)y7y-T(UlU+ro00!wwwOow^i~BM4{bjTr1m9hJ zV$5Jd{|MWvxH8?oI!>qNYPPY=J8T+J-bDu((cfz&=hJ%izRx%Q7?wJ1cb*Z1RD0LI zHKN+GT03^rIV)$h#gW+4cCZ|Fn@r6OLb5Q0cUv4?eGL)_jPBvzyt!z2i{IK|bTOrU zsWwHg4}h9XAOesz$^% z>nC5Mc0BEDU!GV9_&Wfa$P~D!A7)Em!^OHz9muW!cm!;QRgLYCcWdUf$t@v_g!o@R zavFSkzX8l4TIwyf|MbiixZj6ZWIUvnB%r4~mc%q=7`FZb@E$^g4GtK$X&2qAJfAbj z+lUB*0KbcRwli4WTzz}neyJN@eLn{3p8ljhL2A=>=(Sxs={0Sem~a<=(YS4~0nBsz zagemiFZU;_ zr>jnT(K<{uh9+qb3{^Kk_mykh&{f4yUfJqvEKNRH(vQCP!Ns+)+{LJhJ}^a3Av!Zi zI>C80pD#3<;}OFs=msuZ5?NV&SOXSmYb0oV6iv;Z4?rSM*I{zyRa3SXeStwxkF<4# z__GDld4O3bcdwLIv#OBIdr6^5NmQbs-aq7H6>BMm>8^Fql?6;6+1sbIa0s^Ht&YLR zI_QG0>X0z9Bjk>hLXmIKNTl|fRgWFl(p2_m@|IIJSHvlA!;q|l-jK0gVf3iQe zyYI%YpiT}LBtrzcth@Tj=~VXe`4ZFGeIz{-ziAw$&F_)0v!XucR}}qxdX(2}WL_Yu zCGNI)9jUS9_G zrv-X<8=&Xp1KI@3p9_Z&*1SEga}TOUgTo>VJVCaX43gIcUM?FETvUU!IMO~s-TOz$-9jXs^%bIA43@ae2=B~66I$rwOGA5itZp=T~sG=CTD zXaUzI2-dvIHI_d;{mwf79%`H4Hf5{7YXGh8W6geX9R1Bb-}X54P}R#vpg#=dpdzYI zRIY?Ry>nV@@259TD`|taOBdybq2%)B(sHN0|6~}dxSs%6Ohk0Eo-Ck~C1b*>q-a}S z0=Zd|_FXKt$w2ua<@H=msh=K;3Tg8;q|idw8Uq}Xgso84@{4Mmv_927le_N$MBVny7E`o*QhDpouPF4 z3Y&6_lVS%W+zP5-A}hUs<%!KUPAdN@>-~}cU^NZ>cVyuI!6W<+y3&8KsH|@eFO~o> z1@Q8Q6BY+RV!-inV3i{KT`1_!mMW2H07I=5+D0`7`n#&6sbvRFF3<1^ZR=CQ%qDcnQwY573(M>|<>V5_LoGF<&y|E$ z63W8g(n0`QByGm6SULptMLTsOYChSzxGpOIQB?kB`>Dm92k=fN_YZ6?jUVmIxcIMf z*d!&!n-g3?Yx^&AK}tEtQ>b_)u=nj6wv+?bU^pXm6*f+qYY z+3mW+Ct$g-mHeE2UTu7~zs?@8t+Kyv%=lEN7cP{E00q$*O2Ub%-Ey{hNy-w6c5?@)`FO0x3*%?f$TQ`RuLEeWi;f zuC`(2zG4x}vu7Bf1>{6z$TqRfhAaqEf{Z6(+`W280)lrY#_(5EImh$ z9hu(%<%-Q3h)!_&=#cf#PwHIy#_cs7OFO2`5;hL@_=*vG<{Yggt;R@Zt-#UaEeT_G z1Ya46McJ>`(7QM=P@w|1$9pXv-Zpx|s@Xnlm+_C9fkOWqQNP>R8qDm5M#u8hkZVu) z!qoQh>A;Yz!$`dIsaMBIZgp_AK&h^+6LY!09WU$p@E*dJ^^n8*jnqelPZ8E!m^cS__aLf`RJ{?!;w1 z`C{I1eGhbLbPvU_`vOF5olUbUV`KD=;H)RVTLjD`I;qR{L_0qnCsv?jpELffv9$Ox zpblBkz_nT!QFr9n%r@ymHSC3TnSW+yTr*>aq5`s)Pc>J^D*T{|>W|I7GsHm7%fb#b zpUlRmK7&1@W-{7XtmavE)Q)>*0Y(dW>1X2YsDzM`1m{sV1_{^oyTB=!H5JfeCJGBs7<}7@Fmnamh1M z&X2o{kcE9LAfMXRFRL-9#nnNE?6ii{@%hw-!nt#K@!2fWI1zc&+zB+gnAwdjNh4Ow z-~u@;f%bmGfXrFGF}93WC5aWwSdlx~U*048?q?QM{q9`WRRMGFxH9HlnByth1<287lTCBD@=-Sro#nRUezV>-PUo9D{ zG>_GVeh=bX@~N-WC?tFdY;K8^dg1aS<-TK6UCeEGb)uDAJA8}jA$j^v*&xSE5x ze=4mUe)$Y%b1U1JFA;I2f&`r{UJiAT>HYA?yf;xUkjY~6is%Eyru1l`8qi4LBe65M z!>)>A+hbRhxtPaRvvdJVvg0E3S7|JSByfYvX<%DE7Qc7$q+5vLm$6EKE=@ggI`))oZWan)kW#f5ai<=glW%(& z(5W@S*L!4?Z%X;fnP0HDnY-qv@qoXVKHQu&hP9&4I?+ z!|M~Vl&>x|UMjpf%k+)@$#bMo)FtnaZu7cVpZ;gA`Em7k>JAJ$kdGJm_hoe5UVd1- zFX_7e`qjvY$~$enA9GFW=}K{=wpQ`qGy^G4uyGAm3|U1}DqT z>{dY`tjyEEO&JtwwVyGcDW7zk0G4BA($NFa*1?=l-`U9D%fNHECTIO>zCaMR3 z1r9Jqj`Rqh8c3L!!IkY{tU0B2No_R{1o{}LY+NPO=6)m22~E$B*Lq*ozEPm{HC7M1-d?cmOi0a~D6G*$xR_(FW%@47VQy~00KQF)W0G>i++67VzPKgpv-8vV5! z^>xQ)%+~~638!L=pkGnuhA&bA5Woy8blB)Anc-N#Z}}5F@4!neUq*7-jS%~SeHNrd z@|CT7FLa-iVf72@kVW#7DPs%p@szB{CsEDxK1L^PV?P9wZew9tTFsVxA28IJJvzC8 zK=HSJJ!5l`1*Wuu{9UnKeM|T0Z0Q}q>ogYhJBv`)FH92R5|?Fr-`YgpuX$4CCnBxv zBY_hiU1=+8Vy<*{uUC$dQ9?7&BTQs?`Y$Qgk}ksthmU`JnULVAU*AL zI`}KpGatcOl%}(o3@iyk=ac*u7ZQY5`m%HJdikeLxwG+N8jC3zJ%`D7M(R7KAoFM2 zB#9p&IZR}^VwO$P;xA8Y!QMU=yw_%r1{<|uN&ZHBGj)@}VIoTSW?%rZv;&1e6X!+; z>UpG(1KXK60V}P7@N*QooA_l82I(!~S%=quYewE)*eWxU1g4{LnOT2cx2WhXQzoms zB;e+-CHYS|L(Ahtc+y%FY)!uO^;DS4Vt9}y9Oe>VR}y}tPl!~cio4kG%T+iMq|VIh zT3IjJ{UEjurs*|bc>7>tb*|36Iwl*v#0Hs0#KAHm+`q#sV_w5+(sQ*O*B`XlxnBo70ewzp9sSWSMvYn8(FKpBz)z|5oqP04EQX&s$+d%?zA{Cw3$+9EL{Qp1 z*5>}ISF+doVSNE(3su(HRq~FPXb(?pMM7ux{X9N-k9U=z*ok&3q;PywAe@fQ9KCV? zYK9kCZ0_p9p64IFI5DuC$pVf(Z5>!}deM(8H32LKxPPHlNoJPxRIKATW{MDZvcpFA zyxMAU>urF6la=S9%Pq)w+F7rRqhD%MjSMX-#fBt($O?QD&yCG0jUw zipSvm_7Boln94JrVkB{y1xpY#%QaxM**O?U|1NJ%_$1lqHn%~(&vkVLDglDCasM(^aW_c1sQ5!6Y+hPu%C+bliao=4gIztItGtW-{B-!< zB1eI1UYN~U-l-5X6bh028^!1GMDU!(B88%`I2zV0Z^ut?)reTi@{NZMfCSWWW#3goP3e zYu~0=kKH4)!=Dj~j!A`SyMw)Y88ef3ds+%xnoE>CZs6A7$-x@$ z6#a^~ibX-<6mU!qg#H|?aoUUA_5pb7AS$)BU~s+cA>k?d=(&8pY%^0YsE*PeLh1;%|OTTSeDc3V5qe+ggHFEMlZj{{WQTgh{ zOs2H~qic%oU*hiU8WzhiI#{yFE)pk=6g3c4T|8ojdedc5ktGFchK`)4(L-UW{f|eJ zC-2>VknDV`1muR(#4}THSD)x@*#-q?P1Ju>cnI(X)hED>-tNozw&v#rcy%Q&<6+HS zv+=(g`cM~Z2+_P9KQL; z7*UzeyQNma#=D*3F3-Xib1riplN-8fuCsU*AOfBcBCUEgGLf%u7ID}aX~T4NhS7nb z8%^hLnQ0C0?$Jp4TQ6*zzHn-Ef*FJUMI7#)lDZ#~Hi-TJsqTTHhb({f7|~>aMQVt( zhn$EhOzhlspEN^USgG$%-sZzVm#gY=wf%)-`nqJJA6e`oMfb4mwvO@T%$k~k_`VZP z>L>ZXJZ%b7UhPWjD?jdSU^6Qz^v#jj_cvkiUQ_S<=OP#5<#uy!ew zHQD1ayVzyEba)t*Z96_Bi>aJ!Bi^!c26}maz{gTv)d)~2ZDR;ou*cP-c}6{bHFx{H zsF$)6IZ|(3RdahzHQF-x_kF6#9_1anzK!nLMYSsVdMVan9TzQPjRNK~B^9z#qZ7=y zR(T;I4*xlLBXQEbDCf_#SGofBI(Caghbe*hYvZ?t2QM&|ylib;6rM>O^UID}Xu2T3 zVzj((e>1EmtkO+~8ho10%YMKB_J5KzHk>fZXf>8~ZDG z&488g=%a_!jJ@#NsWkka3jIH?pXV%eQB? zyvo#5%Z@qV1tKY~G8<>Lv-`;jqD&W%1a5(n&?&nNr1`oG3%|+`z+fIF)cFW_gxPX_ z3y6@`v+CnaQKP}2VIgUB;8@=j$iM37L7k)@62j}CNB85Zy*fG=M1omdh_K$CA$ck_ zz2NE#G#fd2%hU&e`pN)FRH%~hshJqpKr3y|WWO0uI&j=h5SH-_{>-Z&(ZE*ZL65>B``d@&#czz)$2$7I*H<+OSYv5B{3x{1xE&ERR~Oxw zbU-5NF_;v{2Xrc$u+jKx zW^1O=UZOBv#obg*v|rUkuy)=Pi6$kxd6k^)IRaI&3J!mICVxAk$UM9{HC-}UadWBI z9$$59gu>h-1hfI_D59$61lLy+#&5J3kA|q3v*k7sOZ(ZMtF`eJM!&?C~7Y?28OG+pW6U z<8;TPmv{9}aA#f084p8idC+4Yo9pE10+{LZe$|kwsNbs3glIO*_1s4rzxLS;dNkgv zZ~f6EMqEnnsqWl+<|Z7?x)~qDXe7guC9sOl?~6X_janjjYiS@>dhBHo>d79R*+4(% zRdzUl(QnaRk0typ#DWwO<4wCK-vwbIleZ4-lYRami?w&-Z>5i-2aDofuZ9Dvk>MjS zb;n!6q4ckd<96$-Ryztqa$3a^tly*3&Bp`Qw5}c2Ag*6et^*=o0Wb99?Tlx!SP5QZ zfONF?hT`ray1a14CCsty_DKw2Xp{+i4nEN{$T2fSDs?EA5t7<6kcft(sbDdfTsn}X|VcA2yvU|u)Ffyoy7+o%x4;#`#v!a5H&+JOk+qA*>>WgiC(RysSQ9@n# zHf@$j=!hikISOfzQTpY6wSA0_Esr?ub*A zB$s)7sNDL^LD#IAr@YSt=YZJ~0$w=IZ($wM8{u_cOer|*TJ(PVL8r=I9QB|{rtPj* zAk|kpVlD% zg-L;e6W!E%`Pol3vLsHgWy+lcO&$hAiE8J&O&x}Jm-@6cM$Uwo2(e&J9Yu7Xt8rF0 z%b8BpQuRpba(8LN#WiL;Ru5d=1rd7(F8>_^6VKF3>P3gade~JTr{sfB+vbI$+O)0c zz4WlRjnvuvkl2K7`t6Lg?CzYvnZM@DC+ExQaOmfqJ4B8zU?RpURQ((iDStZb3skv( zM(v(F5Pk9Kz2_45Un~y{;%Uj;izi+TX&q$hwThkmaa%W#+5~-5pp0P9R~Y%K2jw+j zCM3;ixlN(%j|9}yL{WP5?Fx-@MH@J;@RsS+e)?#}3=T}~XHlbkz_tOScGRp7onSq6 z^gJCigy02h4f^VT+_&Dr?OI7}9wP46X!sQ#BSADnk6Z0%7Q3=PlP_;%MCwKjIynO{OQs@SdXD}2whglwj$H_^swJ_q3V!2Nm%u2u40mD0lhyjD<@>MC>%Tu+qq9Vtx7kHE9}b-fd72jBr7OF4uvXlJ_AJ;y2>1;U zDLl~zlqdp3#u1LXdy&>(9>kJ-9A(?!?Pnt|47pp81Gu{5rD+1zl@ed%4SVH26HX*K z#Djcw6~nbc&SLleK}E4VEh;>^5;JQ9H;c^d3oFO6V|+6HunU*G6ZeX3sj0B4($eub0m;sp6RKEN)wRD1RZ4ORL;!u2zEu7IV;*9n8 zz5lNI=diF`1f>YPH;~h`@eaw{XnVb0e0lBLU%(IrHgg^66%gaos}5(I9AJ@XlNUU! zJ@P)OQ<7ig8|~|l6FU1usW;KpWB3W)@E{)!X4gU2W}vljDI!G7KG;XdDVjR^dc?i) zTe5#*u(O!2B}KOdBSfF?6ie`&kaAR_w-yPhw_i%nn`bzW+Flz8xr&;eM4(4sO!H2Qk{{P<%MCOh4Qs56AK)G>Bt{aK3PO44^ZN zr}kHHo8yKbJH)qck-1kEpl=|UPxzVQ%E_0P)DDs z&oMTOzBwBH@hB;J)sI1ib#*{X!8B@VW469LT=VeWx@x0`^RDVf$%kPDRtCxETdPzP z;mo>3AFLT1w);K_HoMpt_`y&onGm5CtuMLNG0@8TdmUU@41fsHHtw^tlLyT={^w(yNQ>&o) zRd+C{dDNWDUN=Z+O|dQJ;CTjDwWn(#vNw5LqZ43%mNZG`0}k;AYr>)o4{u8p_M*aihFMpsWUY< zjRrY&gr-#$F|V?ta+53e7$tEIi+35CcF-95KTbk&THIt=*QNuJUIv@gM&aRC9YX{q zEzbN*OMI>Y$Zv%ooe818$&h@?rl1f$v?y=Lr3VxD2kE6t#MOQthF7}pQ)lPF*o#Iuh`OmDD z30O(@Nr!kOH>*FIe!tQAn^n&QJyi4{0|Mb74`rC literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-20.png b/docs/docs/blog/2024/dsc-error-flow/image-20.png new file mode 100644 index 0000000000000000000000000000000000000000..50171cb1e3014e70776fbaab75aac2fc4fe08ebc GIT binary patch literal 14503 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 literal 0 HcmV?d00001 diff --git a/docs/docs/blog/2024/dsc-error-flow/image-21.png b/docs/docs/blog/2024/dsc-error-flow/image-21.png new file mode 100644 index 0000000000000000000000000000000000000000..137b8b9b45197afa751587974fd098f81b47fd62 GIT binary patch literal 35064 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≫Pt0S5pW{T@0Wey4{rQkV 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%0DfqP>nDqWnRsE3o+OZ)1N>@WV^1)kF=M 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 z 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

O3KN!6^>&LhCC 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 Date: Fri, 28 Jun 2024 14:54:14 -0400 Subject: [PATCH 045/273] Update index.md --- docs/docs/blog/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/docs/blog/index.md b/docs/docs/blog/index.md index bc6846ac5e..a4b045d00b 100644 --- a/docs/docs/blog/index.md +++ b/docs/docs/blog/index.md @@ -1,7 +1,12 @@ # Blog Posts +## Major Updates * [April 2024 Major Release](https://microsoft365dsc.com/blog/april-2024-major-release/index.html) * [October 2023 Major Release](https://microsoft365dsc.com/blog/october-2023-major-release/index.html) * [April 2023 Major Release](https://microsoft365dsc.com/blog/april-2023-major-release/index.html) * [October 2022 Major Release](https://microsoft365dsc.com/blog/october-2022-major-release/index.html) + +## Concepts + +*[DSC Error Flow](https://microsoft365dsc.com/blog/2024/dsc-error-flow/dsc-error-flow.html) From 7bd3942925629fd437aaa58e5b12a22337eca931 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 28 Jun 2024 15:58:52 -0400 Subject: [PATCH 046/273] Update index.md --- docs/docs/blog/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/blog/index.md b/docs/docs/blog/index.md index a4b045d00b..87dcef8b09 100644 --- a/docs/docs/blog/index.md +++ b/docs/docs/blog/index.md @@ -9,4 +9,4 @@ ## Concepts -*[DSC Error Flow](https://microsoft365dsc.com/blog/2024/dsc-error-flow/dsc-error-flow.html) +* [DSC Error Flow](https://microsoft365dsc.com/blog/2024/dsc-error-flow/index.html) From 59cef88d4faf2903db43415f09f6d4e2ebe1945e Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Sat, 29 Jun 2024 08:21:25 -0400 Subject: [PATCH 047/273] Update dsc-error-flow.md --- docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md index 39804925d3..4bbfb6ada3 100644 --- a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md +++ b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md @@ -4,7 +4,7 @@ How to handle the error flow when an error is thrown during a deployment of a configuration baseline is an ongoing debate within the config-as-code community. Should you stop the entire deployment flow the moment an error is encountered, or should you allow the process to continue past the error to attempt and deploy other components? This article aims to shed light on how the current Local Configuration Manager (LCM) service handles the error flow in configuration deployment and describes what options are available users to have some control over it. -To better illustrate the options that are available to the users, I’ve created a bogus Desired State Configuration (DSC) module named BlogDSC which contains 2 resources: 1 that will always succeed its execution without errors (WorkingResource), and 1 that will always fail its execution and throw an error (FailingResource). The FailingResource will accept a parameter that will specify in what method the error should be thrown (Get/Set/Test). Both resources will return $false from their Test-TargetResource method in order to allow the LCM flow to call into the Set-TargetResource. Upon entering method, the module's logic will log an entry in Event Viewer. We will use these event logs to confirm the execution flow of our resources and their methods. The source code for the DSC module used in this blog are available to download from: Link +To better illustrate the options that are available to the users, I’ve created a bogus Desired State Configuration (DSC) module named BlogDSC which contains 2 resources: 1 that will always succeed its execution without errors (WorkingResource), and 1 that will always fail its execution and throw an error (FailingResource). The FailingResource will accept a parameter that will specify in what method the error should be thrown (Get/Set/Test). Both resources will return $false from their Test-TargetResource method in order to allow the LCM flow to call into the Set-TargetResource. Upon entering a method, the module's logic will log an entry in Event Viewer. We will use these event logs to confirm the execution flow of our resources and their methods. Controlling the error flow in DSC is limited to using the -ErrorAction parameter with Continue or Stop when calling into the Start-DSCConfiguration cmdlet, or by specifying dependencies between resource instances in your configuration using the DependsOn parameter. One thing that is very important to understand is that the -ErrorAction parameter only takes effect when the Start-DSCConfiguration cmdlet is ran synchronously with the -Wait switch, otherwise the execution will default to -ErrorAction 'Continue'. For each example below, I will highlight the resources’ methods that were called by the LCM service. From 4964dd88f30cc2ff1d1e1a0f2e5dce306eeca02e Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Sat, 29 Jun 2024 08:22:38 -0400 Subject: [PATCH 048/273] Update index.md --- docs/docs/blog/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/blog/index.md b/docs/docs/blog/index.md index 87dcef8b09..719a60c7a6 100644 --- a/docs/docs/blog/index.md +++ b/docs/docs/blog/index.md @@ -9,4 +9,4 @@ ## Concepts -* [DSC Error Flow](https://microsoft365dsc.com/blog/2024/dsc-error-flow/index.html) +* [DSC Error Flow](https://microsoft365dsc.com/blog/2024/dsc-error-flow/dsc-error-flow/index.html) From 0a1289ff70690d1c2a8f31de6c053d43649ac70f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Sat, 29 Jun 2024 08:30:25 -0400 Subject: [PATCH 049/273] Update dsc-error-flow.md --- docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md index 4bbfb6ada3..a015fe0e11 100644 --- a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md +++ b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md @@ -334,7 +334,7 @@ Based on the above screenshot, we would assume that the overall

  • Fail1
    • -
    • Test (Error thrown)
    • +
    • Test (Error thrown)
    • Set
  • Work2
  • From 24ba874b9f92afcc3fbb63a59c1b0540cd3315a9 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Sat, 29 Jun 2024 08:36:56 -0400 Subject: [PATCH 050/273] Update dsc-error-flow.md --- docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md index a015fe0e11..0238c08409 100644 --- a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md +++ b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md @@ -504,6 +504,7 @@ In this example, we’ve defined a configuration that defines 5 resource instanc Id = 'Fail1' MethodToFail = "Test" Ensure = 'Present' + DependsOn = '[WorkingResource]Work2' } WorkingResource 'Work3' From 7f3e8c78cea6d9c2bd51bebcc3abe729641a0bf7 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 1 Jul 2024 17:47:37 +0100 Subject: [PATCH 051/273] Remove DisplayName from set parameters --- CHANGELOG.md | 8 ++++++- .../MSFT_EXOCASMailboxPlan.psm1 | 23 ++++++------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..cfac79b3e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOCASMailboxPlan + * Remove `DisplayName` from set parameters + FIXES [#4814](https://github.com/microsoft/Microsoft365DSC/issues/4814) + # 1.24.626.1 * AADGroup @@ -19,7 +25,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 index 0b78d746e2..fea20be0d1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 @@ -237,24 +237,16 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - $CASMailboxPlanParams = [System.Collections.Hashtable]($PSBoundParameters) - $CASMailboxPlanParams.Remove('Ensure') | Out-Null - $CASMailboxPlanParams.Remove('Credential') | Out-Null - $CASMailboxPlanParams.Remove('ApplicationId') | Out-Null - $CASMailboxPlanParams.Remove('TenantId') | Out-Null - $CASMailboxPlanParams.Remove('CertificateThumbprint') | Out-Null - $CASMailboxPlanParams.Remove('CertificatePath') | Out-Null - $CASMailboxPlanParams.Remove('CertificatePassword') | Out-Null - $CASMailboxPlanParams.Remove('ManagedIdentity') | Out-Null - $CASMailboxPlanParams.Remove('AccessTokens') | Out-Null + $PSBoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + $PSBoundParameters.Remove('DisplayName') | Out-Null $CASMailboxPlan = Get-CASMailboxPlan -Filter "Name -like '$($Identity.Split('-')[0])-*'" if ($null -ne $CASMailboxPlan) { - $CasMailboxPlanParams.Identity = $CASMailboxPlan.Identity - Write-Verbose -Message "Setting CASMailboxPlan $Identity with values: $(Convert-M365DscHashtableToString -Hashtable $CASMailboxPlanParams)" - Set-CASMailboxPlan @CASMailboxPlanParams + $PSBoundParameters.Identity = $CASMailboxPlan.Identity + Write-Verbose -Message "Setting CASMailboxPlan $Identity with values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + Set-CASMailboxPlan @PSBoundParameters } else { @@ -344,13 +336,12 @@ function Test-TargetResource Write-Verbose -Message "Testing configuration of CASMailboxPlan for $Identity" $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone() + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - $ValuesToCheck = $PSBoundParameters - $ValuesToCheck.Remove('Ensure') | Out-Null - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` From 80f68b88b4c1a384a1f294ef08c2fa1500f11c3c Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 1 Jul 2024 18:28:05 +0100 Subject: [PATCH 052/273] Remove DisplayName from set parameters --- CHANGELOG.md | 6 +++++- .../MSFT_EXOMailboxPlan.psm1 | 21 ++++++------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..6b184f382b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log for Microsoft365DSC +# UNRELEASED + * Remove `DisplayName` from set parameters + FIXES [#4817](https://github.com/microsoft/Microsoft365DSC/issues/4817) + # 1.24.626.1 * AADGroup @@ -19,7 +23,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 index 6156a3c4a4..8c34e8e991 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 @@ -271,23 +271,15 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - $MailboxPlanParams = [System.Collections.Hashtable]($PSBoundParameters) - $MailboxPlanParams.Remove('Ensure') | Out-Null - $MailboxPlanParams.Remove('Credential') | Out-Null - $MailboxPlanParams.Remove('ApplicationId') | Out-Null - $MailboxPlanParams.Remove('TenantId') | Out-Null - $MailboxPlanParams.Remove('CertificateThumbprint') | Out-Null - $MailboxPlanParams.Remove('CertificatePath') | Out-Null - $MailboxPlanParams.Remove('CertificatePassword') | Out-Null - $MailboxPlanParams.Remove('ManagedIdentity') | Out-Null - $MailboxPlanParams.Remove('AccessTokens') | Out-Null + $PSBoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + $PSBoundParameters.Remove('DisplayName') | Out-Null $MailboxPlan = Get-MailboxPlan -Identity $Identity if ($null -ne $MailboxPlan) { - Write-Verbose -Message "Setting MailboxPlan $Identity with values: $(Convert-M365DscHashtableToString -Hashtable $MailboxPlanParams)" - Set-MailboxPlan @MailboxPlanParams + Write-Verbose -Message "Setting MailboxPlan $Identity with values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + Set-MailboxPlan @PSBoundParameters } else { @@ -393,13 +385,12 @@ function Test-TargetResource Write-Verbose -Message "Testing configuration of MailboxPlan for $Identity" $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone() + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - $ValuesToCheck = $PSBoundParameters - $ValuesToCheck.Remove('Ensure') | Out-Null - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` From 41c747a7a1d97dae073e6069584073ae1e632d6e Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 1 Jul 2024 20:04:41 +0100 Subject: [PATCH 053/273] Remove auth params before changing the resources --- CHANGELOG.md | 8 ++++- .../MSFT_EXODkimSigningConfig.psm1 | 30 +++++-------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..74c364fbcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXODkimSigningConfig + * Remove authentication parameters before changing the resources + FIXES [#4821](https://github.com/microsoft/Microsoft365DSC/issues/4821) + # 1.24.626.1 * AADGroup @@ -19,7 +25,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 index 9e5fc46c6d..dc7239c819 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 @@ -230,37 +230,23 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - $DkimSigningConfigs = Get-DkimSigningConfig - - $DkimSigningConfig = $DkimSigningConfigs | Where-Object -FilterScript { $_.Identity -eq $Identity } + $DkimSigningConfig = Get-TargetResource @PSBoundParameters + $PSBoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters if (('Present' -eq $Ensure ) -and ($null -eq $DkimSigningConfig)) { - $DkimSigningConfigParams = [System.Collections.Hashtable]($PSBoundParameters) - $DkimSigningConfigParams.Remove('Ensure') | Out-Null - $DkimSigningConfigParams.Remove('Credential') | Out-Null - $DkimSigningConfigParams.Remove('ApplicationId') | Out-Null - $DkimSigningConfigParams.Remove('TenantId') | Out-Null - $DkimSigningConfigParams.Remove('CertificateThumbprint') | Out-Null - $DkimSigningConfigParams.Remove('CertificatePath') | Out-Null - $DkimSigningConfigParams.Remove('CertificatePassword') | Out-Null - $DkimSigningConfigParams.Remove('ManagedIdentity') | Out-Null - $DkimSigningConfigParams.Remove('AccessTokens') | Out-Null - $DkimSigningConfigParams += @{ + $PSBoundParameters += @{ DomainName = $PSBoundParameters.Identity } - $DkimSigningConfigParams.Remove('Identity') | Out-Null + $PSBoundParameters.Remove('Identity') | Out-Null Write-Verbose -Message "Creating DkimSigningConfig $($Identity)." - New-DkimSigningConfig @DkimSigningConfigParams + New-DkimSigningConfig @PSBoundParameters } elseif (('Present' -eq $Ensure ) -and ($null -ne $DkimSigningConfig)) { - $DkimSigningConfigParams = $PSBoundParameters - $DkimSigningConfigParams.Remove('Ensure') | Out-Null - $DkimSigningConfigParams.Remove('Credential') | Out-Null - $DkimSigningConfigParams.Remove('KeySize') | Out-Null - Write-Verbose -Message "Setting DkimSigningConfig $($Identity) with values: $(Convert-M365DscHashtableToString -Hashtable $DkimSigningConfigParams)" - Set-DkimSigningConfig @DkimSigningConfigParams -Confirm:$false + $PSBoundParameters.Remove('KeySize') | Out-Null + Write-Verbose -Message "Setting DkimSigningConfig $($Identity) with values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + Set-DkimSigningConfig @PSBoundParameters -Confirm:$false } if (('Absent' -eq $Ensure ) -and ($DkimSigningConfig)) From e701af2a27463747f75f547c9fc886a1f02e1de4 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 2 Jul 2024 08:36:48 -0400 Subject: [PATCH 054/273] Updates --- .../2024/dsc-error-flow/dsc-error-flow.md | 9 +++++---- docs/docs/blog/images/NikCharlebois.jpg | Bin 0 -> 1654636 bytes 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 docs/docs/blog/images/NikCharlebois.jpg diff --git a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md index 39804925d3..8607185d81 100644 --- a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md +++ b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md @@ -1,8 +1,9 @@

    Deep-Dive into the Local Configuration Manager (LCM) Error Flow

    -by Nik Charlebois -

    June 28th, 2024

    - -How to handle the error flow when an error is thrown during a deployment of a configuration baseline is an ongoing debate within the config-as-code community. Should you stop the entire deployment flow the moment an error is encountered, or should you allow the process to continue past the error to attempt and deploy other components? This article aims to shed light on how the current Local Configuration Manager (LCM) service handles the error flow in configuration deployment and describes what options are available users to have some control over it. + +

    by Nik Charlebois
    +June 28th, 2024

    +


    +

    How to handle the error flow when an error is thrown during a deployment of a configuration baseline is an ongoing debate within the config-as-code community. Should you stop the entire deployment flow the moment an error is encountered, or should you allow the process to continue past the error to attempt and deploy other components? This article aims to shed light on how the current Local Configuration Manager (LCM) service handles the error flow in configuration deployment and describes what options are available users to have some control over it.

    To better illustrate the options that are available to the users, I’ve created a bogus Desired State Configuration (DSC) module named BlogDSC which contains 2 resources: 1 that will always succeed its execution without errors (WorkingResource), and 1 that will always fail its execution and throw an error (FailingResource). The FailingResource will accept a parameter that will specify in what method the error should be thrown (Get/Set/Test). Both resources will return $false from their Test-TargetResource method in order to allow the LCM flow to call into the Set-TargetResource. Upon entering method, the module's logic will log an entry in Event Viewer. We will use these event logs to confirm the execution flow of our resources and their methods. The source code for the DSC module used in this blog are available to download from: Link diff --git a/docs/docs/blog/images/NikCharlebois.jpg b/docs/docs/blog/images/NikCharlebois.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d247fd596c1c678219dfafe5420fb5d89dafecb GIT binary patch literal 1654636 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

    fGE8(;n)u`g6S2yrq;(i{jgL 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

    V#KepSvq7v)UFJ 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ƣ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 ^gXEDe8{+AhWp-FfCzDrHzV(Z(xd;kdY;;s{j;a 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%0Dy-q;{tE3w5kwCv`nAZepLZm(U36vRD!*@_x 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 NYyW?k-$8#y{vSbjo|gas literal 0 HcmV?d00001 From 8a2a739e447e7161005347eaafcc63cd0b49bc2e Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 2 Jul 2024 09:06:58 -0400 Subject: [PATCH 055/273] Update dsc-error-flow.md --- docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md index 8607185d81..e8578b609c 100644 --- a/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md +++ b/docs/docs/blog/2024/dsc-error-flow/dsc-error-flow.md @@ -1,5 +1,5 @@

    Deep-Dive into the Local Configuration Manager (LCM) Error Flow

    - +

    by Nik Charlebois
    June 28th, 2024




    From 9fec44ca2f2ab972e32c832fdea068988f48bbdd Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Wed, 3 Jul 2024 13:14:42 +0200 Subject: [PATCH 056/273] Add filter functions to Intune resources --- CHANGELOG.md | 9 +++ .../MSFT_IntuneAppConfigurationPolicy.psm1 | 7 +++ ...MSFT_IntuneAppProtectionPolicyAndroid.psm1 | 7 +++ .../MSFT_IntuneAppProtectionPolicyiOS.psm1 | 7 +++ ...eviceAndAppManagementAssignmentFilter.psm1 | 7 +++ ...T_IntuneDeviceCompliancePolicyAndroid.psm1 | 7 +++ ...iceCompliancePolicyAndroidDeviceOwner.psm1 | 7 +++ ...iceCompliancePolicyAndroidWorkProfile.psm1 | 7 +++ ...SFT_IntuneDeviceCompliancePolicyMacOS.psm1 | 7 +++ ...IntuneDeviceCompliancePolicyWindows10.psm1 | 7 +++ .../MSFT_IntuneDeviceCompliancePolicyiOs.psm1 | 7 +++ ...nProtectionPolicyWindows10MdmEnrolled.psm1 | 6 ++ ...BusinessFeatureUpdateProfileWindows10.psm1 | 7 +++ .../Modules/M365DSCDRGUtil.psm1 | 56 +++++++++++++++++++ 14 files changed, 148 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..c443c3e5f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCDRGUtil + * Added Microsoft Graph filter functions. +* MISC + * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources + that did not support it previously. + FIXES [#4597](https://github.com/microsoft/Microsoft365DSC/issues/4597) + # 1.24.626.1 * AADGroup diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 index b4bac5a922..b0b30fc177 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 @@ -466,7 +466,14 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configPolicies = Get-MgBetaDeviceAppManagementTargetedManagedAppConfiguration -All:$true -Filter $Filter -ErrorAction Stop + $configPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configPolicies + $i = 1 $dscContent = '' if ($configPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 index 93bc056ba5..3c9cdb0c46 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 @@ -1102,7 +1102,14 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$policies = Get-MgBetaDeviceAppManagementAndroidManagedAppProtection -All:$true -Filter $Filter -ErrorAction Stop + $policies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $policies + $i = 1 $dscContent = '' if ($policies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 index 5873e4d98e..94f6a51ff1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 @@ -1153,7 +1153,14 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$policies = Get-MgBetaDeviceAppManagementiOSManagedAppProtection -All:$true -Filter $Filter -ErrorAction Stop + $policies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $policies + $i = 1 $dscContent = '' if ($policies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 index e6d5df4f20..050cf4c1c9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 @@ -414,7 +414,14 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + Write-Warning -Message "Microsoft Graph filter is only supported for the platform on this resource. Other filters are only supported using startswith, endswith and contains and done by best-effort." + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$assignmentFilters = Get-MgBetaDeviceManagementAssignmentFilter -All:$true -Filter $Filter -ErrorAction Stop + $assignmentFilters = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $assignmentFilters if ($policies.Length -eq 0) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 index f7e538c895..54f83d20eb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 @@ -806,9 +806,16 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configDeviceAndroidPolicies = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` -ErrorAction Stop -All:$true -Filter $Filter | Where-Object ` -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.androidCompliancePolicy' } + $configDeviceAndroidPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configDeviceAndroidPolicies + $i = 1 $dscContent = '' if ($configDeviceAndroidPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 index 926adf50cc..dc65a3ad11 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 @@ -656,11 +656,18 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configDeviceAndroidPolicies = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` -ErrorAction Stop -All:$true -Filter $Filter | Where-Object ` -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerCompliancePolicy' } + $configDeviceAndroidPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configDeviceAndroidPolicies + $i = 1 $dscContent = '' if ($configDeviceAndroidPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 index c97f699a6b..e29a750f94 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 @@ -769,9 +769,16 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configDeviceAndroidPolicies = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` -ErrorAction Stop -All:$true -Filter $Filter | Where-Object ` -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.androidWorkProfileCompliancePolicy' } + $configDeviceAndroidPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configDeviceAndroidPolicies + $i = 1 $dscContent = '' if ($configDeviceAndroidPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 index 2adffd9e07..c47c2566fd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 @@ -718,9 +718,16 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configDeviceMacOsPolicies = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` -ErrorAction Stop -All:$true -Filter $Filter | Where-Object ` -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.macOSCompliancePolicy' } + $configDeviceMacOsPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configDeviceMacOsPolicies + $i = 1 $dscContent = '' if ($configDeviceMacOsPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index 2842880cb8..419e4ac295 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -850,9 +850,16 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configDeviceWindowsPolicies = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` -ErrorAction Stop -All:$true -Filter $Filter | Where-Object ` -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' } + $configDeviceWindowsPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configDeviceWindowsPolicies + $i = 1 $dscContent = '' if ($configDeviceWindowsPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 index d8fde8e400..f782c63e05 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 @@ -699,9 +699,16 @@ function Export-TargetResource try { + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$configDeviceiOsPolicies = Get-MgBetaDeviceManagementDeviceCompliancePolicy ` -ErrorAction Stop -All:$true -Filter $Filter | Where-Object ` -FilterScript { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.iosCompliancePolicy' } + $configDeviceiOsPolicies = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $configDeviceiOsPolicies + $i = 1 $dscContent = '' if ($configDeviceiOsPolicies.Length -eq 0) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 index 42518f21d1..81c0f4444f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 @@ -950,7 +950,13 @@ function Export-TargetResource try { #region resource generator code + if (-not [string]::IsNullOrEmpty($Filter)) + { + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$getValue = Get-MgBetaDeviceAppManagementMdmWindowsInformationProtectionPolicy -Filter $Filter -All -ErrorAction Stop + $getValue = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $getValue #endregion $i = 1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 index 3e67f9d7a8..c77cbc0fa6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 @@ -511,7 +511,14 @@ function Export-TargetResource #region resource generator code # Filter not supported on this resource # [array]$getValue = Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -Filter $Filter -All -ErrorAction Stop + if (-not [string]::IsNullOrEmpty($Filter)) + { + Write-Warning -Message "Microsoft Graph filter is not supported on this resource. Only best-effort filtering using startswith, endswith and contains is supported." + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } [array]$getValue = Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -All -ErrorAction Stop + $getValue = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $getValue #endregion $i = 1 diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 4c9c429bfb..2cacecc4d2 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1954,3 +1954,59 @@ function Update-IntuneDeviceConfigurationPolicy return $null } } + +function Get-ComplexFunctionsFromFilterQuery { + [CmdletBinding()] + [OutputType([System.Array])] + param ( + [string]$FilterQuery + ) + + $complexFunctionsRegex = "startswith\((.*?),\s*'(.*?)'\)|endswith\((.*?),\s*'(.*?)'\)|contains\((.*?),\s*'(.*?)'\)" + [array]$complexFunctions = [regex]::Matches($FilterQuery, $complexFunctionsRegex) | ForEach-Object { + $_.Value + } + + return $complexFunctions +} + +function Remove-ComplexFunctionsFromFilterQuery { + [CmdletBinding()] + [OutputType([System.String])] + param ( + [string]$FilterQuery + ) + + $complexFunctionsRegex = "startswith\((.*?),\s*'(.*?)'\)|endswith\((.*?),\s*'(.*?)'\)|contains\((.*?),\s*'(.*?)'\)" + $basicFilterQuery = [regex]::Replace($FilterQuery, $complexFunctionsRegex, "").Trim() + $basicFilterQuery = $basicFilterQuery -replace "^and\s","" -replace "\sand$","" -replace "\sand\s+", " and " -replace "\sor\s+", " or " + + return $basicFilterQuery +} + +function Find-GraphDataUsingComplexFunctions { + [CmdletBinding()] + [OutputType([System.Array])] + param ( + [array]$Policies, + [array]$ComplexFunctions + ) + + foreach ($function in $ComplexFunctions) { + if ($function -match "startswith\((.*?),\s*'(.*?)'") { + $property = $matches[1] + $value = $matches[2] + $Policies = $Policies | Where-Object { $_.$property -like "$value*" } + } elseif ($function -match "endswith\((.*?),\s*'(.*?)'") { + $property = $matches[1] + $value = $matches[2] + $Policies = $Policies | Where-Object { $_.$property -like "*$value" } + } elseif ($function -match "contains\((.*?),\s*'(.*?)'") { + $property = $matches[1] + $value = $matches[2] + $Policies = $Policies | Where-Object { $_.$property -like "*$value*" } + } + } + + return $Policies +} \ No newline at end of file From db5769f4917788def85286ba5e50f83e7db496df Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 3 Jul 2024 08:20:27 -0400 Subject: [PATCH 057/273] Updated DSCParser to version 2.0.0.6 --- CHANGELOG.md | 7 ++++++- Modules/Microsoft365DSC/Dependencies/Manifest.psd1 | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bc8ff791..435ebba2aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* DEPENDENCIES + * Updated DSCParser to version 2.0.0.6 + # 1.24.626.1 * AADGroup @@ -19,7 +24,7 @@ * M365DSCUtil * Fixes an issue where the comparison with null-valued desired value throws an error. * DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + * Updated MSCloudLoginAssistant to version 1.1.18 * M365DSCResourceGenerator * Update CimInstance comparison template * MISC diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index b1f218cf87..2db7b16296 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -2,7 +2,7 @@ Dependencies = @( @{ ModuleName = 'DSCParser' - RequiredVersion = '2.0.0.5' + RequiredVersion = '2.0.0.6' }, @{ ModuleName = 'ExchangeOnlineManagement' From 86257db1e279201c8546709bae9afe20d1be2b51 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 14:24:46 +0000 Subject: [PATCH 058/273] Updated Resources and Cmdlet documentation pages --- .../IntuneExploitProtectionPolicyWindows10SettingCatalog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md b/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md index e72108edb0..05e7646068 100644 --- a/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md +++ b/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md @@ -8,7 +8,7 @@ | **DisplayName** | Key | String | Display name of the endpoint protection policy. | | | **Description** | Write | String | Description of the endpoint protection. | | | **ExploitProtectionSettings** | Write | String | Enables the IT admin to push out a configuration representing the desired system and application mitigation options to all the devices in the organization. The configuration is represented by an XML. | | -| **disallowexploitprotectionoverride** | Write | String | Prevent users from making changes to the exploit protection settings area in the Windows Defender Security Center.values 0:disable, 1:enable | `0`, `1` | +| **DisallowExploitProtectionOverride** | Write | String | Prevent users from making changes to the exploit protection settings area in the Windows Defender Security Center.values 0:disable, 1:enable | `0`, `1` | | **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | Assignments of the endpoint protection. | | | **Ensure** | Write | String | Present ensures the policy exists, absent ensures it is removed | `Present`, `Absent` | | **Credential** | Write | PSCredential | Credentials of the Intune Admin | | From 34c4aa4547d526cad937d5070f193cee6925f29c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 14:26:15 +0000 Subject: [PATCH 059/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 55bafee6c4..e4483e0c58 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -29764,7 +29764,7 @@ }, { "CIMType": "String", - "Name": "disallowexploitprotectionoverride", + "Name": "DisallowExploitProtectionOverride", "Option": "Write" }, { From 92e63a4287823f7e526233dd70332396c269a9c9 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 15:21:42 +0000 Subject: [PATCH 060/273] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/exchange/EXODkimSigningConfig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/exchange/EXODkimSigningConfig.md b/docs/docs/resources/exchange/EXODkimSigningConfig.md index eb1bdd9c5d..6638eca381 100644 --- a/docs/docs/resources/exchange/EXODkimSigningConfig.md +++ b/docs/docs/resources/exchange/EXODkimSigningConfig.md @@ -8,7 +8,7 @@ | **AdminDisplayName** | Write | String | The AdminDisplayName parameter specifies a description for the policy. | | | **BodyCanonicalization** | Write | String | The BodyCanonicalization parameter specifies the canonicalization algorithm that's used to create and verify the message body part of the DKIM signature. This value effectively controls the sensitivity of DKIM to changes to the message body in transit. Valid values are 'Simple' or 'Relaxed'. 'Relaxed' is the default. | `Simple`, `Relaxed` | | **HeaderCanonicalization** | Write | String | The HeaderCanonicalization parameter specifies the canonicalization algorithm that's used to create and verify the message header part of the DKIM signature. This value effectively controls the sensitivity of DKIM to changes to the message headers in transit. Valid values are 'Simple' or 'Relaxed'. 'Relaxed' is the default. | `Simple`, `Relaxed` | -| **KeySize** | Write | UInt16 | The KeySize parameter specifies the size in bits of the public key that's used in the DKIM signing policy. The only available value is 1024. | `1024` | +| **KeySize** | Write | UInt16 | The KeySize parameter specifies the size in bits of the public key that's used in the DKIM signing policy. Valid values are 1024 and 2048 | `1024`, `2048` | | **Enabled** | Write | Boolean | The Enabled parameter specifies whether the DKIM Signing Configuration is enabled or disabled. Default is $true. | | | **Ensure** | Write | String | Specifies if this Client Access Rule should exist. | `Present`, `Absent` | | **Credential** | Write | PSCredential | Credentials of the Exchange Global Admin | | From d092400e858207ae1933e2c623bc384b8e40208c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 16:28:41 +0000 Subject: [PATCH 061/273] Updated Resources and Cmdlet documentation pages --- .../exchange/EXOEOPProtectionPolicyRule.md | 79 +++++++++++++++++++ .../exchange/EXOExternalInOutlook.md | 66 ++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md create mode 100644 docs/docs/resources/exchange/EXOExternalInOutlook.md diff --git a/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md b/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md new file mode 100644 index 0000000000..c439f3314c --- /dev/null +++ b/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md @@ -0,0 +1,79 @@ +# EXOEOPProtectionPolicyRule + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **Comments** | Write | String | The Comments parameter specifies informative comments for the rule, such as what the rule is used for or how it has changed over time. The length of the comment can't exceed 1024 characters. | | +| **ExceptIfRecipientDomainIs** | Write | StringArray[] | The ExceptIfRecipientDomainIs parameter specifies an exception that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas. | | +| **ExceptIfSentTo** | Write | StringArray[] | The ExceptIfSentTo parameter specifies an exception that looks for recipients in messages. You can use any value that uniquely identifies the recipient. | | +| **ExceptIfSentToMemberOf** | Write | StringArray[] | The ExceptIfSentToMemberOf parameter specifies an exception that looks for messages sent to members of groups. You can use any value that uniquely identifies the group. | | +| **Identity** | Key | String | The Identity parameter specifies the rule that you want to view. You can use any value that uniquely identifies the rule. | | +| **State** | Write | String | This parameter defin if the rule is enabled or disabled | | +| **Name** | Write | String | The Name parameter specifies a unique name for the rule. The maximum length is 64 characters. | | +| **Priority** | Write | UInt32 | The Priority parameter specifies a priority value for the rule that determines the order of rule processing. A lower integer value indicates a higher priority, the value 0 is the highest priority, and rules can't have the same priority value. | | +| **RecipientDomainIs** | Write | StringArray[] | The RecipientDomainIs parameter specifies a condition that looks for recipients with email addresses in the specified domains. You can specify multiple domains separated by commas. | | +| **SentTo** | Write | StringArray[] | The SentTo parameter specifies a condition that looks for recipients in messages. You can use any value that uniquely identifies the recipient. | | +| **SentToMemberOf** | Write | StringArray[] | The SentToMemberOf parameter specifies a condition that looks for messages sent to members of distribution groups, dynamic distribution groups, or mail-enabled security groups. You can use any value that uniquely identifies the group. | | +| **Ensure** | Write | String | Present ensures the instance exists, absent ensures it is removed. | `Present`, `Absent` | +| **Credential** | Write | PSCredential | Credentials of the workload's 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. | | +| **CertificateThumbprint** | Write | String | Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. | | +| **ApplicationSecret** | Write | PSCredential | Secret of the Azure Active Directory tenant used for authentication. | | + + +## Description + +This resource configures EOP Protection Policy Rules. + +## Permissions + +### Exchange + +To authenticate with Microsoft Exchange, this resource required the following permissions: + +#### Roles + +- SecurityAdmin, TransportHygiene + +#### Role Groups + +- None + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + $Domain = $Credscredential.Username.Split('@')[1] + node localhost + { + EXOEOPProtectionPolicyRule "EXOEOPProtectionPolicyRule-Strict Preset Security Policy" + { + ApplicationId = $ConfigurationData.NonNodeData.ApplicationId; + CertificateThumbprint = $ConfigurationData.NonNodeData.CertificateThumbprint; + Ensure = "Present"; + ExceptIfRecipientDomainIs = @("sandrodev.onmicrosoft.com"); + Identity = "Strict Preset Security Policy"; + Name = "Strict Preset Security Policy"; + Priority = 0; + State = "Enabled"; + TenantId = $OrganizationName; + } + } +} +``` + diff --git a/docs/docs/resources/exchange/EXOExternalInOutlook.md b/docs/docs/resources/exchange/EXOExternalInOutlook.md new file mode 100644 index 0000000000..14a617a670 --- /dev/null +++ b/docs/docs/resources/exchange/EXOExternalInOutlook.md @@ -0,0 +1,66 @@ +# EXOExternalInOutlook + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **Identity** | Key | String | OrganisationIDParameter, not needed for cmdlet Functionality, use 'ExternalinOutlook' to use the same configuration for multiple Tenants | | +| **Enabled** | Write | Boolean | The Enabled parameter enables or disables external sender identification in supported versions of Outlook. Valid values are:$true: External sender identification in Outlook is enabled. An External icon is added in the area of the subject line of messages from external senders. To exempt specific senders or sender domains from this identification, use the AllowList parameter.$false: External sender identification in Outlook is disabled. | | +| **AllowList** | Write | StringArray[] | The AllowList parameter specifies exceptions to external sender identification in supported versions of Outlook. Messages received from the specified senders or senders in the specified domains don't receive native External sender identification. The allow list uses the 5322.From address (also known as the From address or P2 sender). Valid values are an individual domain (contoso.com), a domain and all subdomains (*.contoso.com) or email addresses (admin@contoso.com). | | +| **Ensure** | Write | String | Present ensures the instance exists, absent ensures it is removed. | `Present`, `Absent` | +| **Credential** | Write | PSCredential | Credentials of the workload's 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. | | +| **CertificateThumbprint** | Write | String | Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. | | +| **ApplicationSecret** | Write | PSCredential | Secret of the Azure Active Directory tenant used for authentication. | | + + +## Description + +This resource will use Set-ExternalInOutlook cmdlet to modify the configuration of external sender identification that's available in Outlook, Outlook for Mac, Outlook on the web, and Outlook for iOS and Android. + +## Permissions + +### Exchange + +To authenticate with Microsoft Exchange, this resource required the following permissions: + +#### Roles + +- O365SupportViewConfig, OrganizationConfiguration, ViewOnlyConfiguration + +#### Role Groups + +- None + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + EXOExternalInOutlook "EXOExternalInOutlook" + { + Identity = "ExternalInOutlook"; + AllowList = @("mobile01@contoso.onmicrosoft.com","*contoso.onmicrosoft.com","contoso.com"); + Enabled = $False; + Ensure = "Present"; + Credential = $Credscredential + } + } +} +``` + From 94fb3f2f3ec5bffc2535d0a3b1d3b1fa9258a8bd Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 16:30:27 +0000 Subject: [PATCH 062/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 90 +++++++++++++++++-- 1 file changed, 82 insertions(+), 8 deletions(-) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index b4add20621..e168ade125 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -7492,11 +7492,6 @@ { "ClassName": "MSFT_EXOEOPProtectionPolicyRule", "Parameters": [ - { - "CIMType": "String", - "Name": "Identity", - "Option": "Key" - }, { "CIMType": "String", "Name": "Comments", @@ -7520,8 +7515,7 @@ { "CIMType": "String", "Name": "Identity", - "Option": "Write", - "Mandatory": true + "Option": "Key" }, { "CIMType": "String", @@ -7534,7 +7528,7 @@ "Option": "Write" }, { - "CIMType": "Int32", + "CIMType": "UInt32", "Name": "Priority", "Option": "Write" }, @@ -7552,6 +7546,86 @@ "CIMType": "String[]", "Name": "SentToMemberOf", "Option": "Write" + }, + { + "CIMType": "string", + "Name": "Ensure", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" + } + ] + }, + { + "ClassName": "MSFT_EXOExternalInOutlook", + "Parameters": [ + { + "CIMType": "string", + "Name": "Identity", + "Option": "Key" + }, + { + "CIMType": "Boolean", + "Name": "Enabled", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AllowList", + "Option": "Write" + }, + { + "CIMType": "string", + "Name": "Ensure", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" } ] }, From 45b8b4ca5a4a12d05b7eee2aa46f52ed66086fb9 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 20:02:45 +0100 Subject: [PATCH 063/273] Add missing property ExternalAccessWithTrialTenants --- CHANGELOG.md | 5 ++++- .../MSFT_TeamsFederationConfiguration.psm1 | 16 ++++++++++++++++ .../MSFT_TeamsFederationConfiguration.schema.mof | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b13f6da448..03ad4e5737 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,12 @@ FIXES [#4805](https://github.com/microsoft/Microsoft365DSC/issues/4805) * EXOGroupSettings * Export unlimited number of groups - FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) + FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) * IntuneExploitProtectionPolicyWindows10SettingCatalog * Migrate to new settings catalog cmdlets. +* TeamsFederationConfiguration + * Add missing property `ExternalAccessWithTrialTenants` + FIXES [#4829](https://github.com/microsoft/Microsoft365DSC/issues/4829) * M365DSCDRGUtil * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. * DEPENDENCIES diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 index 7ac2fd857c..d738830901 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 @@ -33,6 +33,11 @@ function Get-TargetResource [System.Boolean] $AllowTeamsConsumerInbound, + [Parameter()] + [System.String] + [ValidateSet('Allowed', 'Blocked')] + $ExternalAccessWithTrialTenants, + [Parameter()] [System.Boolean] $TreatDiscoveredPartnersAsUnverified, @@ -125,6 +130,7 @@ function Get-TargetResource AllowPublicUsers = $config.AllowPublicUsers AllowTeamsConsumer = $config.AllowTeamsConsumer AllowTeamsConsumerInbound = $config.AllowTeamsConsumerInbound + ExternalAccessWithTrialTenants = $config.ExternalAccessWithTrialTenants TreatDiscoveredPartnersAsUnverified = $config.TreatDiscoveredPartnersAsUnverified SharedSipAddressSpace = $config.SharedSipAddressSpace RestrictTeamsConsumerToExternalUserProfiles = $config.RestrictTeamsConsumerToExternalUserProfiles @@ -182,6 +188,11 @@ function Set-TargetResource [System.Boolean] $AllowTeamsConsumerInbound, + [Parameter()] + [System.String] + [ValidateSet('Allowed', 'Blocked')] + $ExternalAccessWithTrialTenants, + [Parameter()] [System.Boolean] $TreatDiscoveredPartnersAsUnverified, @@ -293,6 +304,11 @@ function Test-TargetResource [System.Boolean] $AllowTeamsConsumerInbound, + [Parameter()] + [System.String] + [ValidateSet('Allowed', 'Blocked')] + $ExternalAccessWithTrialTenants, + [Parameter()] [System.Boolean] $TreatDiscoveredPartnersAsUnverified, diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.schema.mof index 2cd57348df..d07af349a8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.schema.mof @@ -8,6 +8,7 @@ class MSFT_TeamsFederationConfiguration : OMI_BaseResource [Write, Description("When set to True users will be potentially allowed to communicate with users who have accounts on public IM and presence providers.")] Boolean AllowPublicUsers; [Write, Description("Allows federation with people using Teams with an account that's not managed by an organization.")] Boolean AllowTeamsConsumer; [Write, Description("Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization.")] Boolean AllowTeamsConsumerInbound; + [Write, Description("When set to Blocked, all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to Blocked, users from the trial-only tenant will also be removed from existing chats."), ValueMap{"Allowed","Blocked"}, Values{"Allowed","Blocked"}] String ExternalAccessWithTrialTenants; [Write, Description("When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list.")] Boolean TreatDiscoveredPartnersAsUnverified; [Write, Description("When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server.")] Boolean SharedSipAddressSpace; [Write, Description("When set to True, Teamsconsumer have access only to external user profiles")] Boolean RestrictTeamsConsumerToExternalUserProfiles; From e2a9ef88ae6ef90052e073e688ee9164d38c2ef8 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 20:28:29 +0100 Subject: [PATCH 064/273] Remove Identity parameter which is incorrect --- .../MSFT_EXOHostedContentFilterRule.psm1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 index a27fdaf969..ff7e195b48 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 @@ -342,8 +342,7 @@ function Set-TargetResource $UpdateParams.Remove('ManagedIdentity') | Out-Null $UpdateParams.Remove('Enabled') | Out-Null $UpdateParams.Remove('AccessTokens') | Out-Null - $UpdateParams.Identity = $HostedContentFilterPolicy - if ($CurrentValues.HostedContentFilterPolicy -eq $UpdateParams.HostedContentFilterPolicy ) + if ($CurrentValues.HostedContentFilterPolicy -eq $UpdateParams.HostedContentFilterPolicy) { $UpdateParams.Remove('HostedContentFilterPolicy') | Out-Null } From a9805423296b09642cdc18496f8fc09073620c43 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 20:33:33 +0100 Subject: [PATCH 065/273] Remove authentication parameters from bound params --- .../MSFT_EXOHostedContentFilterRule.psm1 | 38 +++++-------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 index ff7e195b48..6ea3b6dda9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 @@ -303,19 +303,11 @@ function Set-TargetResource } $CurrentValues = Get-TargetResource @PSBoundParameters + $BoundParameters = ([System.Collections.Hashtable]$PSBoundParameters).Clone() + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters if ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Absent') { - $CreationParams = $PSBoundParameters - $CreationParams.Remove('Ensure') | Out-Null - $CreationParams.Remove('Credential') | Out-Null - $CreationParams.Remove('ApplicationId') | Out-Null - $CreationParams.Remove('TenantId') | Out-Null - $CreationParams.Remove('CertificateThumbprint') | Out-Null - $CreationParams.Remove('CertificatePath') | Out-Null - $CreationParams.Remove('CertificatePassword') | Out-Null - $CreationParams.Remove('ManagedIdentity') | Out-Null - $CreationParams.Remove('AccessTokens') | Out-Null if ($Enabled -and ('Disabled' -eq $CurrentValues.State)) { # New-HostedContentFilterRule has the Enabled parameter, Set-HostedContentFilterRule does not. @@ -324,30 +316,20 @@ function Set-TargetResource Remove-HostedContentFilterRule -Identity $Identity -Confirm:$false } Write-Verbose -Message "Creating new HostedContentFilterRule {$Identity}" - Write-Verbose -Message "With Parameters: $(Convert-M365DscHashtableToString -Hashtable $CreationParams)" - $CreationParams.Add('Name', $Identity) - $CreationParams.Remove('Identity') | Out-Null - New-HostedContentFilterRule @CreationParams + Write-Verbose -Message "With Parameters: $(Convert-M365DscHashtableToString -Hashtable $BoundParameters)" + $BoundParameters.Add('Name', $Identity) + $BoundParameters.Remove('Identity') | Out-Null + New-HostedContentFilterRule @BoundParameters } elseif ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Present') { - $UpdateParams = [System.Collections.Hashtable]($PSBoundParameters) - $UpdateParams.Remove('Ensure') | Out-Null - $UpdateParams.Remove('Credential') | Out-Null - $UpdateParams.Remove('ApplicationId') | Out-Null - $UpdateParams.Remove('TenantId') | Out-Null - $UpdateParams.Remove('CertificateThumbprint') | Out-Null - $UpdateParams.Remove('CertificatePath') | Out-Null - $UpdateParams.Remove('CertificatePassword') | Out-Null - $UpdateParams.Remove('ManagedIdentity') | Out-Null - $UpdateParams.Remove('Enabled') | Out-Null - $UpdateParams.Remove('AccessTokens') | Out-Null - if ($CurrentValues.HostedContentFilterPolicy -eq $UpdateParams.HostedContentFilterPolicy) + $BoundParameters.Remove('Enabled') | Out-Null + if ($CurrentValues.HostedContentFilterPolicy -eq $BoundParameters.HostedContentFilterPolicy) { - $UpdateParams.Remove('HostedContentFilterPolicy') | Out-Null + $BoundParameters.Remove('HostedContentFilterPolicy') | Out-Null } Write-Verbose -Message "Updating HostedContentFilterRule {$Identity}" - Set-HostedContentFilterRule @UpdateParams + Set-HostedContentFilterRule @BoundParameters } elseif ($Ensure -eq 'Absent' -and $CurrentValues.Ensure -eq 'Present') { From f0ca4806c59275e16388f7d1302ade5b490b2aa7 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 20:35:40 +0100 Subject: [PATCH 066/273] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c4bec5b52..b799d4acff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,11 @@ * Add support for 2048 key size FIXES [#4805](https://github.com/microsoft/Microsoft365DSC/issues/4805) * EXOGroupSettings - * Export unlimited number of groups - FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) + * Export unlimited number of groups + FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) +* EXOHostedContentFilterRule + * When updating the resource assign property `Identity` to the correct value + FIXES [#4836](https://github.com/microsoft/Microsoft365DSC/issues/4836) * IntuneExploitProtectionPolicyWindows10SettingCatalog * Migrate to new settings catalog cmdlets. * M365DSCDRGUtil From adc78584fe8e4be56db6e98da29cf6dcce9e2f43 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 21:10:49 +0100 Subject: [PATCH 067/273] Remove property Enabled from being set while updating resource --- .../MSFT_EXOHostedOutboundSpamFilterRule.psm1 | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 index 41a1d2e016..d79b5d4e4a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 @@ -336,6 +336,7 @@ function Set-TargetResource $UpdateParams.Remove('CertificatePassword') | Out-Null $UpdateParams.Remove('ManagedIdentity') | Out-Null $UpdateParams.Remove('AccessTokens') | Out-Null + $UpdateParams.Remove('Enabled') | Out-Null Write-Verbose -Message "Updating HostedOutboundSpamFilterRule {$Identity}" Set-HostedOutboundSpamFilterRule @UpdateParams } From 787dc8d0cbb7d3a87a95301d82bd4d9d525ec239 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 21:41:49 +0100 Subject: [PATCH 068/273] Fix issues with resource --- .../MSFT_EXOHostedOutboundSpamFilterRule.psm1 | 38 ++++++------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 index d79b5d4e4a..e506f74888 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 @@ -299,19 +299,11 @@ function Set-TargetResource } $CurrentValues = Get-TargetResource @PSBoundParameters + $BoundParameters = ([System.Collections.Hashtable]$PSBoundParameters).Clone() + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $BoundParameters if ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Absent') { - $CreationParams = $PSBoundParameters - $CreationParams.Remove('Ensure') | Out-Null - $CreationParams.Remove('Credential') | Out-Null - $CreationParams.Remove('ApplicationId') | Out-Null - $CreationParams.Remove('TenantId') | Out-Null - $CreationParams.Remove('CertificateThumbprint') | Out-Null - $CreationParams.Remove('CertificatePath') | Out-Null - $CreationParams.Remove('CertificatePassword') | Out-Null - $CreationParams.Remove('ManagedIdentity') | Out-Null - $CreationParams.Remove('AccessTokens') | Out-Null if ($Enabled -and ('Disabled' -eq $CurrentValues.State)) { # New-HostedOutboundSpamFilterRule has the Enabled parameter, Set-HostedOutboundSpamFilterRule does not. @@ -320,25 +312,19 @@ function Set-TargetResource Remove-HostedOutboundSpamFilterRule -Identity $Identity -Confirm:$false } Write-Verbose -Message "Creating new HostedOutboundSpamFilterRule {$Identity}" - $CreationParams.Add('Name', $Identity) - $CreationParams.Remove('Identity') | Out-Null - New-HostedOutboundSpamFilterRule @CreationParams + $BoundParameters.Add('Name', $Identity) + $BoundParameters.Remove('Identity') | Out-Null + New-HostedOutboundSpamFilterRule @BoundParameters } - elseif ($Ensure -eq 'Present' -and $CurrentValues -eq 'Present') + elseif ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Present') { - $UpdateParams = [System.Collections.Hashtable]($PSBoundParameters) - $UpdateParams.Remove('Ensure') | Out-Null - $UpdateParams.Remove('Credential') | Out-Null - $UpdateParams.Remove('ApplicationId') | Out-Null - $UpdateParams.Remove('TenantId') | Out-Null - $UpdateParams.Remove('CertificateThumbprint') | Out-Null - $UpdateParams.Remove('CertificatePath') | Out-Null - $UpdateParams.Remove('CertificatePassword') | Out-Null - $UpdateParams.Remove('ManagedIdentity') | Out-Null - $UpdateParams.Remove('AccessTokens') | Out-Null - $UpdateParams.Remove('Enabled') | Out-Null + $BoundParameters.Remove('Enabled') | Out-Null + if ($CurrentValues.HostedOutboundSpamFilterPolicy -eq $BoundParameters.HostedOutboundSpamFilterPolicy) + { + $BoundParameters.Remove('HostedOutboundSpamFilterPolicy') | Out-Null + } Write-Verbose -Message "Updating HostedOutboundSpamFilterRule {$Identity}" - Set-HostedOutboundSpamFilterRule @UpdateParams + Set-HostedOutboundSpamFilterRule @BoundParameters } elseif ($Ensure -eq 'Absent' -and $CurrentValues.Ensure -eq 'Present') { From 487ea487c67c6bf84b39ac28722720c2944d9772 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 3 Jul 2024 21:45:38 +0100 Subject: [PATCH 069/273] Update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f0acb005d..b5dec7d977 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,14 @@ * Add support for 2048 key size FIXES [#4805](https://github.com/microsoft/Microsoft365DSC/issues/4805) * EXOGroupSettings - * Export unlimited number of groups - FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) + * Export unlimited number of groups + FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) +* EXOHostedOutboundSpamFilterRule + * Fix `if` clause on update scenario, remove property `Enabled` from being set + while updating the resource and ensure that also while updating the resource + the property `HostedOutboundSpamFilterPolicy` is only sent if it differs + from what the resource already has currently assigned + FIXES [#4838](https://github.com/microsoft/Microsoft365DSC/issues/4838) * EXOMailboxPlan * Remove `DisplayName` from set parameters FIXES [#4817](https://github.com/microsoft/Microsoft365DSC/issues/4817) From 373312a2d923e6e85e4b9d895e8bbe402cbd74c1 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 23:38:16 +0000 Subject: [PATCH 070/273] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/teams/TeamsFederationConfiguration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/docs/resources/teams/TeamsFederationConfiguration.md b/docs/docs/resources/teams/TeamsFederationConfiguration.md index 8d2e4677f6..94463dfe94 100644 --- a/docs/docs/resources/teams/TeamsFederationConfiguration.md +++ b/docs/docs/resources/teams/TeamsFederationConfiguration.md @@ -11,6 +11,7 @@ | **AllowPublicUsers** | Write | Boolean | When set to True users will be potentially allowed to communicate with users who have accounts on public IM and presence providers. | | | **AllowTeamsConsumer** | Write | Boolean | Allows federation with people using Teams with an account that's not managed by an organization. | | | **AllowTeamsConsumerInbound** | Write | Boolean | Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization. | | +| **ExternalAccessWithTrialTenants** | Write | String | When set to Blocked, all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to Blocked, users from the trial-only tenant will also be removed from existing chats. | `Allowed`, `Blocked` | | **TreatDiscoveredPartnersAsUnverified** | Write | Boolean | When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list. | | | **SharedSipAddressSpace** | Write | Boolean | When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server. | | | **RestrictTeamsConsumerToExternalUserProfiles** | Write | Boolean | When set to True, Teamsconsumer have access only to external user profiles | | From 6c37b10b19a3ff7607845c95c3558445e30ec115 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 3 Jul 2024 23:39:46 +0000 Subject: [PATCH 071/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index e168ade125..b849b82dc7 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -40852,6 +40852,11 @@ "Name": "AllowTeamsConsumerInbound", "Option": "Write" }, + { + "CIMType": "String", + "Name": "ExternalAccessWithTrialTenants", + "Option": "Write" + }, { "CIMType": "Boolean", "Name": "TreatDiscoveredPartnersAsUnverified", From 45a0031604ad3b3083e18858272768d0187f5a68 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 4 Jul 2024 11:17:56 +0000 Subject: [PATCH 072/273] Updated Resources and Cmdlet documentation pages --- ...neSettingCatalogASRRulesPolicyWindows10.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md b/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md index 9971a9081a..9aa201c36c 100644 --- a/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md @@ -10,27 +10,45 @@ | **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | Assignments of the endpoint protection. | | | **AttackSurfaceReductionOnlyExclusions** | Write | StringArray[] | Exclude files and paths from attack surface reduction rules | | | **BlockAbuseOfExploitedVulnerableSignedDrivers** | Write | String | This rule prevents an application from writing a vulnerable signed driver to disk. | `off`, `block`, `audit`, `warn` | +| **BlockAbuseOfExploitedVulnerableSignedDrivers_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockAdobeReaderFromCreatingChildProcesses** | Write | String | This rule prevents attacks by blocking Adobe Reader from creating processes. | `off`, `block`, `audit`, `warn` | +| **BlockAdobeReaderFromCreatingChildProcesses_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockAllOfficeApplicationsFromCreatingChildProcesses** | Write | String | This rule blocks Office apps from creating child processes. Office apps include Word, Excel, PowerPoint, OneNote, and Access. | `off`, `block`, `audit`, `warn` | +| **BlockAllOfficeApplicationsFromCreatingChildProcesses_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions (off: Off, block: Block, audit: Audit, warn: Warn) | | | **BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem** | Write | String | This rule helps prevent credential stealing by locking down Local Security Authority Subsystem Service (LSASS). | `off`, `block`, `audit`, `warn` | +| **BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockExecutableContentFromEmailClientAndWebmail** | Write | String | This rule blocks the following file types from launching from email opened within the Microsoft Outlook application, or Outlook.com and other popular webmail providers. | `off`, `block`, `audit`, `warn` | +| **BlockExecutableContentFromEmailClientAndWebmail_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion** | Write | String | This rule blocks executable files that don't meet a prevalence, age, or trusted list criteria, such as .exe, .dll, or .scr, from launching. | `off`, `block`, `audit`, `warn` | +| **BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockExecutionOfPotentiallyObfuscatedScripts** | Write | String | This rule detects suspicious properties within an obfuscated script. | `off`, `block`, `audit`, `warn` | +| **BlockExecutionOfPotentiallyObfuscatedScripts_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent** | Write | String | This rule prevents scripts from launching potentially malicious downloaded content. | `off`, `block`, `audit`, `warn` | +| **BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockOfficeApplicationsFromCreatingExecutableContent** | Write | String | This rule prevents Office apps, including Word, Excel, and PowerPoint, from creating potentially malicious executable content, by blocking malicious code from being written to disk. | `off`, `block`, `audit`, `warn` | +| **BlockOfficeApplicationsFromCreatingExecutableContent_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses** | Write | String | This rule blocks code injection attempts from Office apps into other processes. | `off`, `block`, `audit`, `warn` | +| **BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockOfficeCommunicationAppFromCreatingChildProcesses** | Write | String | This rule prevents Outlook from creating child processes, while still allowing legitimate Outlook functions. | `off`, `block`, `audit`, `warn` | +| **BlockOfficeCommunicationAppFromCreatingChildProcesses_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockPersistenceThroughWMIEventSubscription** | Write | String | This rule prevents malware from abusing WMI to attain persistence on a device. | `off`, `block`, `audit`, `warn` | | **BlockProcessCreationsFromPSExecAndWMICommands** | Write | String | This rule blocks processes created through PsExec and WMI from running. | `off`, `block`, `audit`, `warn` | +| **BlockProcessCreationsFromPSExecAndWMICommands_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockRebootingMachineInSafeMode** | Write | String | This rule prevents the execution of commands to restart machines in Safe Mode. | `off`, `block`, `audit`, `warn` | +| **BlockRebootingMachineInSafeMode_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockUntrustedUnsignedProcessesThatRunFromUSB** | Write | String | With this rule, admins can prevent unsigned or untrusted executable files from running from USB removable drives, including SD cards. | `off`, `block`, `audit`, `warn` | +| **BlockUntrustedUnsignedProcessesThatRunFromUSB_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockUseOfCopiedOrImpersonatedSystemTools** | Write | String | This rule blocks the use of executable files that are identified as copies of Windows system tools. These files are either duplicates or impostors of the original system tools. | `off`, `block`, `audit`, `warn` | +| **BlockUseOfCopiedOrImpersonatedSystemTools_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockWebShellCreationForServers** | Write | String | This rule blocks webshell creation for servers. | `off`, `block`, `audit`, `warn` | +| **BlockWebshellCreationForServers_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **BlockWin32APICallsFromOfficeMacros** | Write | String | This rule prevents VBA macros from calling Win32 APIs. | `off`, `block`, `audit`, `warn` | +| **BlockWin32APICallsFromOfficeMacros_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **UseAdvancedProtectionAgainstRansomware** | Write | String | This rule provides an extra layer of protection against ransomware. | `off`, `block`, `audit`, `warn` | +| **UseAdvancedProtectionAgainstRansomware_ASROnlyPerRuleExclusions** | Write | StringArray[] | ASR Only Per Rule Exclusions | | | **ControlledFolderAccessProtectedFolders** | Write | StringArray[] | List of additional folders that need to be protected | | | **ControlledFolderAccessAllowedApplications** | Write | StringArray[] | List of apps that have access to protected folders. | | -| **EnableControlledFolderAccess** | Write | String | This rule enable Controlled folder access which protects your data by checking apps against a list of known, trusted apps.values 0:disable, 1:enable, 2:audit | `0`, `1`, `2` | +| **EnableControlledFolderAccess** | Write | String | This rule enables Controlled folder access which protects your data by checking apps against a list of known, trusted apps.values 0:disable, 1:enable, 2:audit | `0`, `1`, `2` | | **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. | | From f7bd0cd3fe99c9e579422bc386c554914b29cb25 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 4 Jul 2024 11:20:50 +0000 Subject: [PATCH 073/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index b849b82dc7..cc4e3f0fe7 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -30272,56 +30272,111 @@ "Name": "BlockAbuseOfExploitedVulnerableSignedDrivers", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockAbuseOfExploitedVulnerableSignedDrivers_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockAdobeReaderFromCreatingChildProcesses", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockAdobeReaderFromCreatingChildProcesses_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockAllOfficeApplicationsFromCreatingChildProcesses", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockAllOfficeApplicationsFromCreatingChildProcesses_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockCredentialStealingFromWindowsLocalSecurityAuthoritySubsystem_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockExecutableContentFromEmailClientAndWebmail", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockExecutableContentFromEmailClientAndWebmail_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockExecutableFilesRunningUnlessTheyMeetPrevalenceAgeTrustedListCriterion_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockExecutionOfPotentiallyObfuscatedScripts", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockExecutionOfPotentiallyObfuscatedScripts_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockJavaScriptOrVBScriptFromLaunchingDownloadedExecutableContent_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockOfficeApplicationsFromCreatingExecutableContent", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockOfficeApplicationsFromCreatingExecutableContent_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockOfficeApplicationsFromInjectingCodeIntoOtherProcesses_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockOfficeCommunicationAppFromCreatingChildProcesses", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockOfficeCommunicationAppFromCreatingChildProcesses_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockPersistenceThroughWMIEventSubscription", @@ -30332,36 +30387,71 @@ "Name": "BlockProcessCreationsFromPSExecAndWMICommands", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockProcessCreationsFromPSExecAndWMICommands_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockRebootingMachineInSafeMode", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockRebootingMachineInSafeMode_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockUntrustedUnsignedProcessesThatRunFromUSB", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockUntrustedUnsignedProcessesThatRunFromUSB_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockUseOfCopiedOrImpersonatedSystemTools", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockUseOfCopiedOrImpersonatedSystemTools_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockWebShellCreationForServers", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockWebshellCreationForServers_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "BlockWin32APICallsFromOfficeMacros", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "BlockWin32APICallsFromOfficeMacros_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String", "Name": "UseAdvancedProtectionAgainstRansomware", "Option": "Write" }, + { + "CIMType": "String[]", + "Name": "UseAdvancedProtectionAgainstRansomware_ASROnlyPerRuleExclusions", + "Option": "Write" + }, { "CIMType": "String[]", "Name": "ControlledFolderAccessProtectedFolders", From eef2644c21ad0e2ff173c1cd1008d6fd6c75d92c Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 4 Jul 2024 14:33:37 +0200 Subject: [PATCH 074/273] Fix Intune policy assignment comparison --- CHANGELOG.md | 2 + .../Modules/M365DSCDRGUtil.psm1 | 69 +++++++++++++------ 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b5c45295b..20c93ba334 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,8 @@ * M365DSCDRGUtil * Added Microsoft Graph filter functions. * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. + * Fix an issue when comparing Intune policy assignments. + FIXES [#4830](https://github.com/microsoft/Microsoft365DSC/issues/4830) * MISC * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources that did not support it previously. diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index f8bb79ddbf..cb9cea0379 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -600,16 +600,32 @@ function Compare-M365DSCComplexObject if ($Source.GetType().FullName -like '*CimInstance[[\]]' -or $Source.GetType().FullName -like '*Hashtable[[\]]') { - if ($source.Count -ne $target.Count) + if ($Source.Count -ne $Target.Count) { - Write-Verbose -Message "Configuration drift - The complex array have different number of items: Source {$($source.Count)} Target {$($target.Count)}" + Write-Verbose -Message "Configuration drift - The complex array have different number of items: Source {$($Source.Count)} Target {$($Target.Count)}" return $false } - if ($source.Count -eq 0) + if ($Source.Count -eq 0) { return $true } + if ($Source[0].CimClass.CimClassName -eq 'MSFT_DeviceManagementConfigurationPolicyAssignments' -or + $Source[0].CimClass.CimClassName -like 'MSFT_Intune*Assignments') + { + $compareResult = Compare-M365DSCIntunePolicyAssignment ` + -Source @($Source) ` + -Target @($Target) + + if (-not $compareResult) + { + Write-Verbose -Message "Configuration drift - Intune Policy Assignment: $key Source {$Source} Target {$Target}" + return $false + } + + return $true + } + foreach ($item in $Source) { foreach ($targetItem in $Target) @@ -630,12 +646,13 @@ function Compare-M365DSCComplexObject return $false } } + return $true } if ($Source.GetType().FullName -like "*CimInstance") { - $keys = $Source.CimInstanceProperties.Name | Where-Object -FilterScript { $_ -notin @('PSComputerName', 'CimClass', 'CmiInstanceProperties', 'CimSystemProperties') } + $keys = $Source.CimInstanceProperties.Name | Where-Object -FilterScript { $_ -notin @('PSComputerName', 'CimClass', 'CimInstanceProperties', 'CimSystemProperties') } } else { @@ -645,31 +662,28 @@ function Compare-M365DSCComplexObject foreach ($key in $keys) { #Matching possible key names between Source and Target - $skey = $key - $tkey = $key - $sourceValue = $Source.$key - $targetValue = $Target.$tkey + $targetValue = $Target.$key + #One of the item is null and not the other - if (($null -eq $Source.$key) -xor ($null -eq $Target.$tkey)) + if (($null -eq $Source.$key) -xor ($null -eq $Target.$key)) { - if ($null -eq $Source.$key) { $sourceValue = 'null' } - if ($null -eq $Target.$tkey) + if ($null -eq $Target.$key) { $targetValue = 'null' } - #Write-Verbose -Message "Configuration drift - key: $key Source {$sourceValue} Target {$targetValue}" + Write-Verbose -Message "Configuration drift - key: $key Source {$sourceValue} Target {$targetValue}" return $false } #Both keys aren't null or empty - if (($null -ne $Source.$key) -and ($null -ne $Target.$tkey)) + if (($null -ne $Source.$key) -and ($null -ne $Target.$key)) { if ($Source.$key.GetType().FullName -like '*CimInstance*' -or $Source.$key.GetType().FullName -like '*hashtable*') { @@ -679,30 +693,30 @@ function Compare-M365DSCComplexObject { $compareResult = Compare-M365DSCIntunePolicyAssignment ` -Source @($Source.$key) ` - -Target @($Target.$tkey) + -Target @($Target.$key) } else { #Recursive call for complex object $compareResult = Compare-M365DSCComplexObject ` -Source $Source.$key ` - -Target $Target.$tkey + -Target $Target.$key } if (-not $compareResult) { - #Write-Verbose -Message "Configuration drift - complex object key: $key Source {$sourceValue} Target {$targetValue}" + Write-Verbose -Message "Configuration drift - complex object key: $key Source {$sourceValue} Target {$targetValue}" return $false } } else { #Simple object comparison - $referenceObject = $Target.$tkey + $referenceObject = $Target.$key $differenceObject = $Source.$key #Identifying date from the current values - $targetType = ($Target.$tkey.GetType()).Name + $targetType = ($Target.$key.GetType()).Name if ($targetType -like '*Date*') { $compareResult = $true @@ -721,7 +735,7 @@ function Compare-M365DSCComplexObject if ($null -ne $compareResult) { - #Write-Verbose -Message "Configuration drift - simple object key: $key Source {$sourceValue} Target {$targetValue}" + Write-Verbose -Message "Configuration drift - simple object key: $key Source {$sourceValue} Target {$targetValue}" return $false } } @@ -1182,6 +1196,7 @@ function Compare-M365DSCIntunePolicyAssignment ) $testResult = $Source.Count -eq $Target.Count + Write-Verbose "Count: $($Source.Count) - $($Target.Count)" if ($testResult) { foreach ($assignment in $Source) @@ -1193,26 +1208,38 @@ function Compare-M365DSCIntunePolicyAssignment # Using assignment groupDisplayName only if the groupId is not found in the directory otherwise groupId should be the key if (-not $testResult) { + Write-Verbose 'Group not found by groupId, checking if group exists by id' $groupNotFound = $null -eq (Get-MgGroup -GroupId ($assignment.groupId) -ErrorAction SilentlyContinue) } if (-not $testResult -and $groupNotFound) { + Write-Verbose 'Group not found by groupId, looking for group by groupDisplayName' $assignmentTarget = $Target | Where-Object -FilterScript { $_.dataType -eq $assignment.DataType -and $_.groupDisplayName -eq $assignment.groupDisplayName } $testResult = $null -ne $assignmentTarget } if ($testResult) { - $isFilterIdSpecified = $assignment.deviceAndAppManagementAssignmentFilterType -ne 'none' - $testResult = $assignment.deviceAndAppManagementAssignmentFilterType -eq $assignmentTarget.deviceAndAppManagementAssignmentFilterType + Write-Verbose 'Group found by groupId or groupDisplayName, checking filters' + $isFilterTypeSpecified = ($null -ne $assignment.deviceAndAppManagementAssignmentFilterType -and $assignment.deviceAndAppManagementAssignmentFilterType -ne 'none') -or ` + ($null -ne $assignmentTarget.deviceAndAppManagementAssignmentFilterType -and $assignmentTarget.deviceAndAppManagementAssignmentFilterType -ne 'none') + $isFilterIdSpecified = ($null -ne $assignment.deviceAndAppManagementAssignmentFilterId -and $assignment.deviceAndAppManagementAssignmentFilterId -ne '00000000-0000-0000-0000-000000000000') -or ` + ($null -ne $assignmentTarget.deviceAndAppManagementAssignmentFilterId -and $assignmentTarget.deviceAndAppManagementAssignmentFilterId -ne '00000000-0000-0000-0000-000000000000') + if ($isFilterTypeSpecified) + { + Write-Verbose 'FilterType specified, checking filterType' + $testResult = $assignment.deviceAndAppManagementAssignmentFilterType -eq $assignmentTarget.deviceAndAppManagementAssignmentFilterType + } if ($testResult -and $isFilterIdSpecified) { + Write-Verbose 'FilterId specified, checking filterId' $testResult = $assignment.deviceAndAppManagementAssignmentFilterId -eq $assignmentTarget.deviceAndAppManagementAssignmentFilterId } } if ($testResult) { + Write-Verbose 'Group and filters match, checking collectionId' $testResult = $assignment.collectionId -eq $assignmentTarget.collectionId } } From 9a6e613ed51bc0f40b9c044c287e8c0a0e55568c Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 4 Jul 2024 12:53:29 -0400 Subject: [PATCH 075/273] Release 1.24.703.1 --- CHANGELOG.md | 8 +-- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 58 ++++++++++++++------ 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b5c45295b..8ac8b32ccb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.703.1 * EXOCASMailboxPlan * Remove `DisplayName` from set parameters @@ -36,10 +36,10 @@ * Added Microsoft Graph filter functions. * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. * MISC - * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources - that did not support it previously. + * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources + that did not support it previously. FIXES [#4597](https://github.com/microsoft/Microsoft365DSC/issues/4597) - * Fixes issues with values of type `groupSettingCollection` and `choiceSetting` + * Fixes issues with values of type `groupSettingCollection` and `choiceSetting` when creating the settings catalog policy settings body. * DEPENDENCIES * Updated DSCParser to version 2.0.0.6 diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 8109119103..91838ced73 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-06-26 +# Generated on: 2024-07-04 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.626.1' + ModuleVersion = '1.24.703.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,23 +142,47 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* AADGroup - * FIXES [#4782](https://github.com/microsoft/Microsoft365DSC/issues/4782) -* IntuneDeviceManagementComplianceSettings - * Initial Release. -* IntuneDeviceRemediation - * Fix invalid assignment export and import. - FIXES [#4726](https://github.com/microsoft/Microsoft365DSC/issues/4726) -* DEPENDENCIES - * Updated MSCloudLoginAssistant to version 1.1.18 + ReleaseNotes = '* EXOCASMailboxPlan + * Remove `DisplayName` from set parameters + FIXES [#4814](https://github.com/microsoft/Microsoft365DSC/issues/4814) +* EXODkimSigningConfig + * Add support for 2048 key size; + * Remove authentication parameters before changing the resources + FIXES [#4821](https://github.com/microsoft/Microsoft365DSC/issues/4821) + FIXES [#4805](https://github.com/microsoft/Microsoft365DSC/issues/4805) +* EXOGroupSettings + * Export unlimited number of groups + FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) +* EXOHostedContentFilterRule + * When updating the resource assign property `Identity` to the correct value + FIXES [#4836](https://github.com/microsoft/Microsoft365DSC/issues/4836) +* EXOMailboxPlan + * Remove `DisplayName` from set parameters + FIXES [#4817](https://github.com/microsoft/Microsoft365DSC/issues/4817) +* EXOHostedOutboundSpamFilterRule + * Fix `if` clause on update scenario, remove property `Enabled` from being set + while updating the resource and ensure that also while updating the resource + the property `HostedOutboundSpamFilterPolicy` is only sent if it differs + from what the resource already has currently assigned + FIXES [#4838](https://github.com/microsoft/Microsoft365DSC/issues/4838) +* IntuneExploitProtectionPolicyWindows10SettingCatalog + * Migrate to new settings catalog cmdlets. +* IntuneSettingCatalogASRRulesPolicyWindows10 + * Migrate to new settings catalog cmdlets. +* TeamsFederationConfiguration + * Add missing property `ExternalAccessWithTrialTenants` + FIXES [#4829](https://github.com/microsoft/Microsoft365DSC/issues/4829) * M365DSCDRGUtil - * Add `collectionId` export to `ConvertFrom-IntunePolicyAssignment` - * Add handling for Intune assignments in `Compare-M365DSCComplexObject` -* M365DSCResourceGenerator - * Update CimInstance comparison template + * Added Microsoft Graph filter functions. + * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. * MISC - * Add group display name export and update assignment comparison across Intune - resources.' + * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources + that did not support it previously. + FIXES [#4597](https://github.com/microsoft/Microsoft365DSC/issues/4597) + * Fixes issues with values of type `groupSettingCollection` and `choiceSetting` + when creating the settings catalog policy settings body. +* DEPENDENCIES + * Updated DSCParser to version 2.0.0.6' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From cd5024ab3aa066604fd5dbff5021677f3307187b Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 4 Jul 2024 17:30:43 +0200 Subject: [PATCH 076/273] Fix complex object comparison when key is default available on target --- CHANGELOG.md | 4 +- ...figurationCustomPolicyWindows10.schema.mof | 2 +- .../Modules/M365DSCDRGUtil.psm1 | 51 +++++++++++++++---- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20c93ba334..88c5746773 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,8 +35,10 @@ * M365DSCDRGUtil * Added Microsoft Graph filter functions. * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. - * Fix an issue when comparing Intune policy assignments. + * Fixed an issue when comparing Intune policy assignments. FIXES [#4830](https://github.com/microsoft/Microsoft365DSC/issues/4830) + * Fixed an issue when comparing complex objects where the key to compare is available as a + instance property on the class. * MISC * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources that did not support it previously. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.schema.mof index 3edf10f08a..696e1321cc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.schema.mof @@ -16,7 +16,7 @@ class MSFT_MicrosoftGraphOmaSetting [Write, Description("Indicates whether the value field is encrypted. This property is read-only.")] Boolean IsEncrypted; [Write, Description("OMA.")] String OmaUri; [Write, Description("ReferenceId for looking up secret for decryption. This property is read-only.")] String SecretReferenceValueId; - [Write, Description("File name associated with the Value property (.cer")] String FileName; + [Write, Description("File name associated with the Value property (.cer)")] String FileName; [Write, Description("Value. (Base64 encoded string)")] String Value; [Write, Description("By setting to true, the CSP (configuration service provider) specified in the OMA-URI will perform a get, instead of set")] Boolean IsReadOnly; [Write, Description("The type of the entity."), ValueMap{"#microsoft.graph.omaSettingBase64","#microsoft.graph.omaSettingBoolean","#microsoft.graph.omaSettingDateTime","#microsoft.graph.omaSettingFloatingPoint","#microsoft.graph.omaSettingInteger","#microsoft.graph.omaSettingString","#microsoft.graph.omaSettingStringXml"}, Values{"#microsoft.graph.omaSettingBase64","#microsoft.graph.omaSettingBoolean","#microsoft.graph.omaSettingDateTime","#microsoft.graph.omaSettingFloatingPoint","#microsoft.graph.omaSettingInteger","#microsoft.graph.omaSettingString","#microsoft.graph.omaSettingStringXml"}] String odataType; diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index cb9cea0379..925a6ffc41 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -616,7 +616,7 @@ function Compare-M365DSCComplexObject $compareResult = Compare-M365DSCIntunePolicyAssignment ` -Source @($Source) ` -Target @($Target) - + if (-not $compareResult) { Write-Verbose -Message "Configuration drift - Intune Policy Assignment: $key Source {$Source} Target {$Target}" @@ -652,28 +652,61 @@ function Compare-M365DSCComplexObject if ($Source.GetType().FullName -like "*CimInstance") { - $keys = $Source.CimInstanceProperties.Name | Where-Object -FilterScript { $_ -notin @('PSComputerName', 'CimClass', 'CimInstanceProperties', 'CimSystemProperties') } + $keys = @() + $Source.CimInstanceProperties | Foreach-Object { + if ($_.Name -notin @('PSComputerName', 'CimClass', 'CimInstanceProperties', 'CimSystemProperties') ` + -and $_.IsValueModified) + { + $keys += $_.Name + } + } } else { $keys = $Source.Keys | Where-Object -FilterScript { $_ -ne 'PSComputerName' } } + if ($Target.GetType().FullName -like "*CimInstance") + { + $targetKeys = @() + $Target.CimInstanceProperties | Foreach-Object { + if ($_.Name -notin @('PSComputerName', 'CimClass', 'CimInstanceProperties', 'CimSystemProperties') ` + -and $_.IsValueModified) + { + $targetKeys += $_.Name + } + } + } + else + { + $targetKeys = $Target.Keys | Where-Object -FilterScript { $_ -ne 'PSComputerName' } + } + foreach ($key in $keys) { #Matching possible key names between Source and Target $sourceValue = $Source.$key - $targetValue = $Target.$key + + # Some classes might contain default properties that have the same name as the key, + # so we need to check if the key is present in the target object --> Hashtable <-> IsReadOnly property + if ($key -in $targetKeys) + { + $targetValue = $Target.$key + } + else + { + $targetValue = $null + } #One of the item is null and not the other - if (($null -eq $Source.$key) -xor ($null -eq $Target.$key)) + if (($null -eq $Source.$key) -xor ($null -eq $targetValue)) { if ($null -eq $Source.$key) { $sourceValue = 'null' } - if ($null -eq $Target.$key) + if ($null -eq $targetValue) { $targetValue = 'null' } @@ -1230,7 +1263,7 @@ function Compare-M365DSCIntunePolicyAssignment Write-Verbose 'FilterType specified, checking filterType' $testResult = $assignment.deviceAndAppManagementAssignmentFilterType -eq $assignmentTarget.deviceAndAppManagementAssignmentFilterType } - if ($testResult -and $isFilterIdSpecified) + if ($testResult -and $isFilterTypeSpecified -and $isFilterIdSpecified) { Write-Verbose 'FilterId specified, checking filterId' $testResult = $assignment.deviceAndAppManagementAssignmentFilterId -eq $assignmentTarget.deviceAndAppManagementAssignmentFilterId @@ -1292,7 +1325,7 @@ function Update-DeviceConfigurationPolicyAssignment { $target = $target.target } - + $formattedTarget = @{"@odata.type" = $target.dataType} if(-not $formattedTarget."@odata.type" -and $target."@odata.type") { @@ -1894,7 +1927,7 @@ function Export-IntuneSettingCatalogPolicySettings $combinationMatches = $SettingDefinitions | Where-Object -FilterScript { $_.Name -eq $settingName -and ` (($_.AdditionalProperties.dependentOn.parentSettingId.Count -gt 0 -and $_.AdditionalProperties.dependentOn.parentSettingId.Contains($parentSetting.Id)) -or ` - ($_.AdditionalProperties.options.dependentOn.parentSettingId.Count -gt 0 -and $_.AdditionalProperties.options.dependentOn.parentSettingId.Contains($parentSetting.Id))) + ($_.AdditionalProperties.options.dependentOn.parentSettingId.Count -gt 0 -and $_.AdditionalProperties.options.dependentOn.parentSettingId.Contains($parentSetting.Id))) } # If the combination of parent setting and setting name is unique, add the parent setting name to the setting name @@ -2078,4 +2111,4 @@ function Find-GraphDataUsingComplexFunctions { } return $Policies -} \ No newline at end of file +} From 9e575034a59113d15a3a9378e6b0a7529292afa9 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 6 Jul 2024 01:13:20 +0200 Subject: [PATCH 077/273] Fix settings instance array return value --- CHANGELOG.md | 7 +++++++ Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ac8b32ccb..b97cb78447 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCDRGUtil + * Fixes an issue where the return value was changed to a single object + instead of an array. + FIXES [#4844](https://github.com/microsoft/Microsoft365DSC/issues/4844) + # 1.24.703.1 * EXOCASMailboxPlan diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index f8bb79ddbf..61ef8c7b07 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1476,7 +1476,7 @@ function Get-IntuneSettingCatalogPolicySetting } } - return $settingInstances + return ,$settingInstances } function Get-IntuneSettingCatalogPolicySettingInstanceValue @@ -2051,4 +2051,4 @@ function Find-GraphDataUsingComplexFunctions { } return $Policies -} \ No newline at end of file +} From d1a18d816f223f3f73272f877ddd0352fb03cee3 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 8 Jul 2024 10:34:31 +0100 Subject: [PATCH 078/273] Remove auth methods from bound params --- .../MSFT_EXOAntiPhishRule.psm1 | 34 +++++-------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 index c041291da6..02e98e66c5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 @@ -304,21 +304,13 @@ function Set-TargetResource } $CurrentValues = Get-TargetResource @PSBoundParameters + $BoundParameters = ([System.Collections.Hashtable]$PSBoundParameters).Clone() + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters if ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Absent') { - $CreationParams = [System.Collections.Hashtable]($PSBoundParameters) - $CreationParams.Remove('Ensure') | Out-Null - $CreationParams.Remove('Credential') | Out-Null - $CreationParams.Add('Name', $Identity) | Out-Null - $CreationParams.Remove('Identity') | Out-Null - $CreationParams.Remove('ApplicationId') | Out-Null - $CreationParams.Remove('TenantId') | Out-Null - $CreationParams.Remove('CertificateThumbprint') | Out-Null - $CreationParams.Remove('CertificatePath') | Out-Null - $CreationParams.Remove('CertificatePassword') | Out-Null - $CreationParams.Remove('ManagedIdentity') | Out-Null - $CreationParams.Remove('AccessTokens') | Out-Null + $BoundParameters.Add('Name', $Identity) | Out-Null + $BoundParameters.Remove('Identity') | Out-Null # New-AntiPhishRule has the Enabled parameter, Set-AntiPhishRule does not. # There doesn't appear to be any way to change the Enabled state of a rule once created. @@ -329,21 +321,11 @@ function Set-TargetResource } Write-Verbose -Message "Creating AntiPhishRule {$Identity}" - New-AntiPhishRule @CreationParams + New-AntiPhishRule @BoundParameters } elseif ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Present') { - $UpdateParams = $PSBoundParameters - $UpdateParams.Remove('Ensure') | Out-Null - $UpdateParams.Remove('Credential') | Out-Null - $UpdateParams.Remove('Enabled') | Out-Null - $UpdateParams.Remove('ApplicationId') | Out-Null - $UpdateParams.Remove('TenantId') | Out-Null - $UpdateParams.Remove('CertificateThumbprint') | Out-Null - $UpdateParams.Remove('CertificatePath') | Out-Null - $UpdateParams.Remove('CertificatePassword') | Out-Null - $UpdateParams.Remove('ManagedIdentity') | Out-Null - $UpdateParams.Remove('AccessTokens') | Out-Null + $BoundParameters.Remove('Enabled') | Out-Null # Check to see if the specified policy already has the rule assigned; $existingRule = Get-AntiPhishRule | Where-Object -FilterScript { $_.AntiPhishPolicy -eq $AntiPhishPolicy } @@ -351,11 +333,11 @@ function Set-TargetResource if ($null -ne $existingRule) { # The rule is already assigned to the policy, do try to update the AntiPhishPolicy parameter; - $UpdateParams.Remove('AntiPhishPolicy') | Out-Null + $BoundParameters.Remove('AntiPhishPolicy') | Out-Null } Write-Verbose -Message "Updating AntiPhishRule {$Identity}." - Set-AntiPhishRule @UpdateParams + Set-AntiPhishRule @BoundParameters } if ($Ensure -eq 'Absent' -and $CurrentValues.Ensure -eq 'Present') { From ff4f4fe4e84a16b6f30127aaf6be5c482229de71 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 8 Jul 2024 10:35:46 +0100 Subject: [PATCH 079/273] Don't check AntiPhishPolicy if removing --- .../MSFT_EXOAntiPhishRule.psm1 | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 index 02e98e66c5..d196f9389e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 @@ -295,14 +295,6 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - # Make sure that the associated Policy exists; - $AssociatedPolicy = Get-AntiPhishPolicy -Identity $AntiPhishPolicy -ErrorAction 'SilentlyContinue' - if ($null -eq $AssociatedPolicy) - { - throw "Error attempting to create EXOAntiPhishRule {$Identity}. The specified AntiPhishPolicy {$AntiPhishPolicy} " + ` - "doesn't exist. Make sure you either create it first or specify a valid policy." - } - $CurrentValues = Get-TargetResource @PSBoundParameters $BoundParameters = ([System.Collections.Hashtable]$PSBoundParameters).Clone() $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters @@ -312,6 +304,14 @@ function Set-TargetResource $BoundParameters.Add('Name', $Identity) | Out-Null $BoundParameters.Remove('Identity') | Out-Null + # Make sure that the associated Policy exists; + $AssociatedPolicy = Get-AntiPhishPolicy -Identity $AntiPhishPolicy -ErrorAction 'SilentlyContinue' + if ($null -eq $AssociatedPolicy) + { + throw "Error attempting to create EXOAntiPhishRule {$Identity}. The specified AntiPhishPolicy {$AntiPhishPolicy} " + ` + "doesn't exist. Make sure you either create it first or specify a valid policy." + } + # New-AntiPhishRule has the Enabled parameter, Set-AntiPhishRule does not. # There doesn't appear to be any way to change the Enabled state of a rule once created. if ($CurrentValues.State -eq 'Disabled') @@ -327,6 +327,14 @@ function Set-TargetResource { $BoundParameters.Remove('Enabled') | Out-Null + # Make sure that the associated Policy exists; + $AssociatedPolicy = Get-AntiPhishPolicy -Identity $AntiPhishPolicy -ErrorAction 'SilentlyContinue' + if ($null -eq $AssociatedPolicy) + { + throw "Error attempting to create EXOAntiPhishRule {$Identity}. The specified AntiPhishPolicy {$AntiPhishPolicy} " + ` + "doesn't exist. Make sure you either create it first or specify a valid policy." + } + # Check to see if the specified policy already has the rule assigned; $existingRule = Get-AntiPhishRule | Where-Object -FilterScript { $_.AntiPhishPolicy -eq $AntiPhishPolicy } From 17456b03b7aa897177ba07c54151b87f03924d2b Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 8 Jul 2024 10:40:59 +0100 Subject: [PATCH 080/273] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ac8b32ccb..82fc2bc8e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOAntiPhishRule + * Don't check if associated `EXOAntiPhishPolicy` is present while removing + resource since it's not required + FIXES [#4846](https://github.com/microsoft/Microsoft365DSC/issues/4846) + # 1.24.703.1 * EXOCASMailboxPlan From 41744613bb73fa5abcee5067efc8b3bde21008d4 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 8 Jul 2024 10:56:26 +0100 Subject: [PATCH 081/273] Don't check HostedOutboundSpamFilterPolicy if removing --- CHANGELOG.md | 7 ++++++ .../MSFT_EXOHostedOutboundSpamFilterRule.psm1 | 25 +++++++++++++------ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ac8b32ccb..87b490fa81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOHostedOutboundSpamFilterRule + * Don't check if associated `EXOHostedOutboundSpamFilterPolicy` is present + while removing resource since it's not required + FIXES [#4847](https://github.com/microsoft/Microsoft365DSC/issues/4847) + # 1.24.703.1 * EXOCASMailboxPlan diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 index e506f74888..7cd4956727 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 @@ -290,20 +290,20 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - # Make sure that the associated Policy exists; - $AssociatedPolicy = Get-HostedOutboundSpamFilterPolicy -Identity $HostedOutboundSpamFilterPolicy -ErrorAction 'SilentlyContinue' - if ($null -eq $AssociatedPolicy) - { - throw "Error attempting to create EXOHostedOutboundSpamFilterRule {$Identity}. The specified HostedOutboundSpamFilterPolicy " + ` - "{$HostedOutboundSpamFilterPolicy} doesn't exist. Make sure you either create it first or specify a valid policy." - } - $CurrentValues = Get-TargetResource @PSBoundParameters $BoundParameters = ([System.Collections.Hashtable]$PSBoundParameters).Clone() $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $BoundParameters if ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Absent') { + # Make sure that the associated Policy exists; + $AssociatedPolicy = Get-HostedOutboundSpamFilterPolicy -Identity $HostedOutboundSpamFilterPolicy -ErrorAction 'SilentlyContinue' + if ($null -eq $AssociatedPolicy) + { + throw "Error attempting to create EXOHostedOutboundSpamFilterRule {$Identity}. The specified HostedOutboundSpamFilterPolicy " + ` + "{$HostedOutboundSpamFilterPolicy} doesn't exist. Make sure you either create it first or specify a valid policy." + } + if ($Enabled -and ('Disabled' -eq $CurrentValues.State)) { # New-HostedOutboundSpamFilterRule has the Enabled parameter, Set-HostedOutboundSpamFilterRule does not. @@ -319,6 +319,15 @@ function Set-TargetResource elseif ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Present') { $BoundParameters.Remove('Enabled') | Out-Null + + # Make sure that the associated Policy exists; + $AssociatedPolicy = Get-HostedOutboundSpamFilterPolicy -Identity $HostedOutboundSpamFilterPolicy -ErrorAction 'SilentlyContinue' + if ($null -eq $AssociatedPolicy) + { + throw "Error attempting to create EXOHostedOutboundSpamFilterRule {$Identity}. The specified HostedOutboundSpamFilterPolicy " + ` + "{$HostedOutboundSpamFilterPolicy} doesn't exist. Make sure you either create it first or specify a valid policy." + } + if ($CurrentValues.HostedOutboundSpamFilterPolicy -eq $BoundParameters.HostedOutboundSpamFilterPolicy) { $BoundParameters.Remove('HostedOutboundSpamFilterPolicy') | Out-Null From 65ee95408f75f0b526c870318d38ba59af476dba Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 8 Jul 2024 11:54:37 -0400 Subject: [PATCH 082/273] Various Fixes --- CHANGELOG.md | 11 ++++++ .../MSFT_AADGroup/MSFT_AADGroup.psm1 | 2 +- .../Dependencies/Manifest.psd1 | 38 +++++++++---------- .../Modules/M365DSCTelemetryEngine.psm1 | 31 +++++++++++++++ .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 1 - 5 files changed, 62 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ac8b32ccb..b2a752a242 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* AADGroup + * Fixes an error where the duplicate error was being trapped, + which could cause extra instanceds to be created. +* TELEMETRY + * Added instance count. +* DEPENDENCIES + * Updated Microsoft.Graph to version 2.20.0 + * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191 + # 1.24.703.1 * EXOCASMailboxPlan diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 index 826c629314..02f13b01dc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 @@ -298,7 +298,7 @@ function Get-TargetResource -TenantId $TenantId ` -Credential $Credential - return $nullReturn + throw $_ } } diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index 2db7b16296..e127b32ef9 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -10,79 +10,79 @@ }, @{ ModuleName = 'Microsoft.Graph.Applications' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Authentication' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.DeviceManagement' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.Devices.CorporateManagement' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.DeviceManagement.Administration' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.DeviceManagement.Enrollment' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.Identity.DirectoryManagement' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.Identity.Governance' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.Identity.SignIns' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.Reports' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.Teams' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.DeviceManagement.Administration' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Beta.DirectoryObjects' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Groups' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Planner' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Sites' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Users' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.Graph.Users.Actions' - RequiredVersion = '2.19.0' + RequiredVersion = '2.20.0' }, @{ ModuleName = 'Microsoft.PowerApps.Administration.PowerShell' - RequiredVersion = '2.0.188' + RequiredVersion = '2.0.191' }, @{ ModuleName = 'MicrosoftTeams' diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index 536421afa1..b5796aeecb 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -63,9 +63,40 @@ function Add-M365DSCTelemetryEvent [System.Collections.Generic.Dictionary[[System.String], [System.Double]]] $Metrics ) + $VerbosePreference = 'Continue' $TelemetryEnabled = [System.Environment]::GetEnvironmentVariable('M365DSCTelemetryEnabled', ` [System.EnvironmentVariableTarget]::Machine) + if ($Type -eq 'DriftEvaluation') + { + try + { + $hostId = (Get-Host).InstanceId + Write-Verbose -Message "CURRENT HOST::::$hostId" + Write-Verbose -Message "PREVIOUS HOST::::$($Script:M365DSCExecutionContextId)" + if ($null -eq $Script:M365DSCCountResourceInstance -or $hostId -ne $Script:M365DSCExecutionContextId) + { + $Script:M365DSCCountResourceInstance = 1 + } + else + { + $Script:M365DSCCountResourceInstance++ + } + + if ($hostId -ne $Script:M365DSCExecutionContextId) + { + $Script:M365DSCExecutionContextId = $hostId + } + Write-Verbose -Message "COUNT::::$($Script:M365DSCCountResourceInstance)" + $Data.Add('ResourceInstancesCount', $Script:M365DSCCountResourceInstance) + $Data.Add('M365DSCExecutionContextId', $hostId) + } + catch + { + Write-Verbose -Message $_ + } + } + if ($null -eq $TelemetryEnabled -or $TelemetryEnabled -eq $true) { $TelemetryClient = Get-M365DSCApplicationInsightsTelemetryClient diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 3203824f83..ef570cfeb4 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -602,7 +602,6 @@ function Test-M365DSCParameterState if ($null -ne $IncludedDrifts -and $IncludedDrifts.Keys.Count -gt 0) { $DriftedParameters = $IncludedDrifts - Write-Verbose -Message "@@@@@@@@@@`r`n$($IncludedDrifts | Out-String)" $returnValue = $false } From 27c86de9792efbc227d1f12d93ae59e71b8141c4 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 8 Jul 2024 12:49:42 -0400 Subject: [PATCH 083/273] Fixes --- CHANGELOG.md | 5 ++++- .../MSFT_AADApplication/MSFT_AADApplication.psm1 | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2a752a242..9ac5bdab3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,12 @@ # UNRELEASED +* AADApplication + * Fixes an error where the duplicate error was being trapped, + which could cause extra instances to be created. * AADGroup * Fixes an error where the duplicate error was being trapped, - which could cause extra instanceds to be created. + which could cause extra instances to be created. * TELEMETRY * Added instance count. * DEPENDENCIES diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 index 92186c5ce3..11292d32cc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 @@ -238,7 +238,7 @@ function Get-TargetResource -TenantId $TenantId ` -Credential $Credential - return $nullReturn + throw $_ } } } From fac000ea128f9d5a2b0d1f2f263f8d76f6cc922f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 8 Jul 2024 13:52:49 -0400 Subject: [PATCH 084/273] Update M365DSCTelemetryEngine.psm1 --- Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index b5796aeecb..f2dab7af6e 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -63,7 +63,6 @@ function Add-M365DSCTelemetryEvent [System.Collections.Generic.Dictionary[[System.String], [System.Double]]] $Metrics ) - $VerbosePreference = 'Continue' $TelemetryEnabled = [System.Environment]::GetEnvironmentVariable('M365DSCTelemetryEnabled', ` [System.EnvironmentVariableTarget]::Machine) @@ -72,8 +71,6 @@ function Add-M365DSCTelemetryEvent try { $hostId = (Get-Host).InstanceId - Write-Verbose -Message "CURRENT HOST::::$hostId" - Write-Verbose -Message "PREVIOUS HOST::::$($Script:M365DSCExecutionContextId)" if ($null -eq $Script:M365DSCCountResourceInstance -or $hostId -ne $Script:M365DSCExecutionContextId) { $Script:M365DSCCountResourceInstance = 1 @@ -87,7 +84,6 @@ function Add-M365DSCTelemetryEvent { $Script:M365DSCExecutionContextId = $hostId } - Write-Verbose -Message "COUNT::::$($Script:M365DSCCountResourceInstance)" $Data.Add('ResourceInstancesCount', $Script:M365DSCCountResourceInstance) $Data.Add('M365DSCExecutionContextId', $hostId) } From ac5a329369374e6c6f75ff4a4aeb3549550ef226 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Tue, 9 Jul 2024 15:50:29 +0200 Subject: [PATCH 085/273] Fix missing assignments when filtered by display name in MacOS scripts --- CHANGELOG.md | 6 ++++++ .../MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af48f4216b..e88bb2ee70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ * AADGroup * Fixes an error where the duplicate error was being trapped, which could cause extra instances to be created. +* IntuneDeviceConfigurationPlatformScriptMacOS + * Fixes an issue where the assignments are missing if filtered by display name. +* M365DSCDRGUtil + * Fixes an issue where the return value was changed to a single object + instead of an array. + FIXES [#4844](https://github.com/microsoft/Microsoft365DSC/issues/4844) * TELEMETRY * Added instance count. * DEPENDENCIES diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 index a036525817..bc144a7c91 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 @@ -124,7 +124,7 @@ function Get-TargetResource -ErrorAction SilentlyContinue if ($null -ne $getValue) { - $getValue = Get-MgBetaDeviceManagementDeviceShellScript -DeviceShellScriptId $getValue.Id + $getValue = Get-MgBetaDeviceManagementDeviceShellScript -DeviceShellScriptId $getValue.Id -ExpandProperty "assignments" } } } @@ -346,6 +346,7 @@ function Set-TargetResource $UpdateParameters.$key = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $UpdateParameters.$key } } + #region resource generator code $UpdateParameters.Add("@odata.type", "#microsoft.graph.DeviceShellScript") Update-MgBetaDeviceManagementDeviceShellScript ` From 3190fc359959787bc61093cc68cc2d9b1f0fd97c Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Tue, 9 Jul 2024 17:49:20 +0200 Subject: [PATCH 086/273] Fix Microsoft Graph model complex object to hashtable --- CHANGELOG.md | 1 + Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e88bb2ee70..4369278b4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ * Fixes an issue where the return value was changed to a single object instead of an array. FIXES [#4844](https://github.com/microsoft/Microsoft365DSC/issues/4844) + * Fixes an issue where Graph models were not treated properly as a complex object. * TELEMETRY * Added instance count. * DEPENDENCIES diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 925a6ffc41..83a45baa7d 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -677,8 +677,13 @@ function Compare-M365DSCComplexObject } } } - else + elseif ($Target.GetType().FullName -like "*Hashtable") + { + $targetKeys = $Target.Keys | Where-Object -FilterScript { $_ -ne 'PSComputerName' } + } + else # Most likely a Microsoft Graph Model { + $Target = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $Target $targetKeys = $Target.Keys | Where-Object -FilterScript { $_ -ne 'PSComputerName' } } From 1dc3770a7c6501ccd8d13f1bf7cd4d4afce427e8 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 9 Jul 2024 17:05:08 -0400 Subject: [PATCH 087/273] Nav --- .../Modules/M365DSCTelemetryEngine.psm1 | 41 +++++++++++++++++++ .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 38 +++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index f2dab7af6e..c7a14bc758 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -93,6 +93,47 @@ function Add-M365DSCTelemetryEvent } } + try + { + if ($null -eq $Global:M365DSCCurrentRoles -or $Global:M365DSCCurrentRoles.Length -eq 0) + { + if ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('Credential')) + { + try + { + Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction SilentlyContinue + } + catch + { + Write-Verbose -Message $_ + } + $Global:M365DSCCurrentRoles = @() + + $uri = $Global:MSCloudLoginConnectionProfile.MicrosoftGraph.ResourceUrl + 'v1.0/me?$select=id' + $currentUser = Invoke-MgGraphRequest -Uri $uri -Method GET + $currentUserId = $currentUser.id + + $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$currentUserId'" ` + -Property 'RoleDefinitionId' + foreach ($assignment in $assignments) + { + $role = Get-MgBetaRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId $assignment.RoleDefinitionId ` + -Property 'DisplayName' + $Global:M365DSCCurrentRoles += $role.DisplayName + } + $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') + } + } + else + { + $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') + } + } + catch + { + Write-Verbose -Message $_ + } + if ($null -eq $TelemetryEnabled -or $TelemetryEnabled -eq $true) { $TelemetryClient = Get-M365DSCApplicationInsightsTelemetryClient diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index ef570cfeb4..f11d0ca70f 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1791,6 +1791,8 @@ function New-M365DSCConnection $data.Add('Source', 'M365DSCUtil') $data.Add('Workload', $Workload) + $Global:M365DSCTelemetryConnectionToGraphParams = @{} + # Keep track of workloads we already connected so that we don't send additional Telemetry events. if ($null -eq $Script:M365ConnectedToWorkloads) { @@ -1802,6 +1804,7 @@ function New-M365DSCConnection if ($InboundParameters.ApplicationSecret) { $InboundParameters.ApplicationSecret = $InboundParameters.ApplicationSecret.GetNetworkCredential().Password + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) } # Case both authentication methods are attempted @@ -1842,6 +1845,7 @@ function New-M365DSCConnection Write-Verbose -Message 'Credential was specified. Connecting via User Principal' if ([System.String]::IsNullOrEmpty($Url)) { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) Connect-M365Tenant -Workload $Workload ` -Credential $InboundParameters.Credential ` -SkipModuleReload $Global:CurrentModeIsExport @@ -1855,6 +1859,7 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) } } catch @@ -1870,6 +1875,7 @@ function New-M365DSCConnection if ($InboundParameters.ContainsKey('Credential') -and $null -ne $InboundParameters.Credential) { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) Connect-M365Tenant -Workload $Workload ` -Credential $InboundParameters.Credential ` -Url $Url ` @@ -1883,6 +1889,7 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) } } catch @@ -1904,6 +1911,8 @@ function New-M365DSCConnection { if ([System.String]::IsNullOrEmpty($Url)) { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -Credential $InboundParameters.Credential ` @@ -1918,6 +1927,7 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) } } catch @@ -1932,6 +1942,8 @@ function New-M365DSCConnection } else { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -Credential $InboundParameters.Credential ` @@ -1947,6 +1959,7 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $tenantId) } } catch @@ -1970,6 +1983,11 @@ function New-M365DSCConnection if ([System.String]::IsNullOrEmpty($url)) { Write-Verbose -Message 'ApplicationId, TenantId, CertificatePath & CertificatePassword were specified. Connecting via Service Principal' + + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificatePassword', $InboundParameters.CertificatePassword.Password) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificatePath', $InboundParameters.CertificatePath) Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -1983,6 +2001,7 @@ function New-M365DSCConnection if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) } Add-M365DSCTelemetryEvent -Data $data -Type 'Connection' $Script:M365ConnectedToWorkloads += "$Workload-ServicePrincipalWithPath" @@ -2034,6 +2053,10 @@ function New-M365DSCConnection if ([System.String]::IsNullOrEmpty($url)) { Write-Verbose -Message 'ApplicationId, TenantId, ApplicationSecret were specified. Connecting via Service Principal' + + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2054,6 +2077,9 @@ function New-M365DSCConnection } else { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2077,6 +2103,10 @@ function New-M365DSCConnection elseif ($InboundParameters.CertificateThumbprint -and $InboundParameters.ApplicationId -and $InboundParameters.TenantId) { Write-Verbose -Message 'ApplicationId, TenantId, CertificateThumbprint were specified. Connecting via Service Principal' + + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificateThumbprint', $InboundParameters.CertificateThumbprint) Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2099,6 +2129,8 @@ function New-M365DSCConnection elseif ($null -ne $InboundParameters.Credential -and ` -not [System.String]::IsNullOrEmpty($InboundParameters.TenantId)) { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) Connect-M365Tenant -Workload $Workload ` -TenantId $InboundParameters.TenantId ` -Credential $InboundParameters.Credential ` @@ -2121,6 +2153,9 @@ function New-M365DSCConnection -not [System.String]::IsNullOrEmpty($InboundParameters.TenantId)) { Write-Verbose -Message 'Connecting via managed identity' + + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Identity', $true) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) Connect-M365Tenant -Workload $Workload ` -Identity ` -TenantId $InboundParameters.TenantId ` @@ -2143,6 +2178,9 @@ function New-M365DSCConnection -not [System.String]::IsNullOrEmpty($InboundParameters.TenantId)) { Write-Verbose -Message 'Connecting via Access Tokens' + + $Global:M365DSCTelemetryConnectionToGraphParams.Add('AccessTokens', $InboundParameters.AccessTokens) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) Connect-M365Tenant -Workload $Workload ` -AccessTokens $InboundParameters.AccessTokens ` -TenantId $InboundParameters.TenantId ` From df7899290f52879554ba77885beb4e334bbdd97e Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 10 Jul 2024 06:25:17 +0000 Subject: [PATCH 088/273] Updated Resources and Cmdlet documentation pages --- .../intune/IntuneDeviceConfigurationCustomPolicyWindows10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md index b382c60bfc..8dc5f537a4 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md @@ -43,7 +43,7 @@ | **IsEncrypted** | Write | Boolean | Indicates whether the value field is encrypted. This property is read-only. | | | **OmaUri** | Write | String | OMA. | | | **SecretReferenceValueId** | Write | String | ReferenceId for looking up secret for decryption. This property is read-only. | | -| **FileName** | Write | String | File name associated with the Value property (.cer | | +| **FileName** | Write | String | File name associated with the Value property (.cer) | | | **Value** | Write | String | Value. (Base64 encoded string) | | | **IsReadOnly** | Write | Boolean | By setting to true, the CSP (configuration service provider) specified in the OMA-URI will perform a get, instead of set | | | **odataType** | Write | String | The type of the entity. | `#microsoft.graph.omaSettingBase64`, `#microsoft.graph.omaSettingBoolean`, `#microsoft.graph.omaSettingDateTime`, `#microsoft.graph.omaSettingFloatingPoint`, `#microsoft.graph.omaSettingInteger`, `#microsoft.graph.omaSettingString`, `#microsoft.graph.omaSettingStringXml` | From 41ccc980c97d6359a3c0c81d517fa8798b107040 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 10 Jul 2024 07:34:57 -0400 Subject: [PATCH 089/273] Update M365DSCTelemetryEngine.psm1 --- .../Modules/M365DSCTelemetryEngine.psm1 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index c7a14bc758..15139c35e0 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -95,10 +95,13 @@ function Add-M365DSCTelemetryEvent try { - if ($null -eq $Global:M365DSCCurrentRoles -or $Global:M365DSCCurrentRoles.Length -eq 0) + $VerbosePreference = 'continue' + if ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('Credential')) { - if ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('Credential')) + Write-Verbose -Message "Flag1" + if ($null -eq $Global:M365DSCCurrentRoles -or $Global:M365DSCCurrentRoles.Length -eq 0) { + Write-Verbose -Message "Flag3" try { Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction SilentlyContinue @@ -123,10 +126,14 @@ function Add-M365DSCTelemetryEvent } $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') } + else + { + $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') + } } else { - $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') + Write-Verbose -Message "Flag2" } } catch From 463b1825a3a3235fe7284c718db2e5b3eb8743f1 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 10 Jul 2024 10:07:11 -0400 Subject: [PATCH 090/273] Telemetry Updates --- .../Modules/M365DSCTelemetryEngine.psm1 | 67 +++++++++++++++---- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 28 ++++---- 2 files changed, 69 insertions(+), 26 deletions(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index 15139c35e0..33618bc2e9 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -95,13 +95,10 @@ function Add-M365DSCTelemetryEvent try { - $VerbosePreference = 'continue' if ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('Credential')) { - Write-Verbose -Message "Flag1" - if ($null -eq $Global:M365DSCCurrentRoles -or $Global:M365DSCCurrentRoles.Length -eq 0) + if ($null -eq $Script:M365DSCCurrentRoles -or $Script:M365DSCCurrentRoles.Length -eq 0) { - Write-Verbose -Message "Flag3" try { Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction SilentlyContinue @@ -110,30 +107,69 @@ function Add-M365DSCTelemetryEvent { Write-Verbose -Message $_ } - $Global:M365DSCCurrentRoles = @() + $Script:M365DSCCurrentRoles = @() $uri = $Global:MSCloudLoginConnectionProfile.MicrosoftGraph.ResourceUrl + 'v1.0/me?$select=id' $currentUser = Invoke-MgGraphRequest -Uri $uri -Method GET $currentUserId = $currentUser.id $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$currentUserId'" ` - -Property 'RoleDefinitionId' + -Property @('RoleDefinitionId', 'DirectoryScopeId') -All + + $roles = Get-MgBetaRoleManagementDirectoryRoleDefinition -All ` + -Property @('Id', 'DisplayName') foreach ($assignment in $assignments) { - $role = Get-MgBetaRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId $assignment.RoleDefinitionId ` - -Property 'DisplayName' - $Global:M365DSCCurrentRoles += $role.DisplayName + $role = $roles | Where-Object -FilterScript {$_.Id -eq $assignment.RoleDefinitionId} + if ($null -ne $role) + { + $Script:M365DSCCurrentRoles += $role.DisplayName + '|' + $assignment.DirectoryScopeId + } } - $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') } else { - $Data.Add('M365DSCCurrentRoles', $Global:M365DSCCurrentRoles -join ',') + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') } } - else + elseif ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('ServicePrincipal')) { - Write-Verbose -Message "Flag2" + if ($null -eq $Script:M365DSCCurrentRoles -or $Script:M365DSCCurrentRoles.Length -eq 0) + { + try + { + Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction Stop + $Script:M365DSCCurrentRoles = @() + + $sp = Get-MgServicePrincipal -Filter "AppId eq '$($Global:M365DSCTelemetryConnectionToGraphParams.ApplicationId)'" ` + -ErrorAction 'SilentlyContinue' + if ($null -ne $sp) + { + $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$($sp.Id)'" ` + -Property @('RoleDefinitionId', 'DirectoryScopeId') -All + $roles = Get-MgBetaRoleManagementDirectoryRoleDefinition -All ` + -Property @('Id', 'DisplayName') + foreach ($assignment in $assignments) + { + $role = $roles | Where-Object -FilterScript {$_.Id -eq $assignment.RoleDefinitionId} + if ($null -ne $role) + { + $Script:M365DSCCurrentRoles += $role.DisplayName + '|' + $assignment.DirectoryScopeId + } + } + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + } + } + catch + { + Write-Verbose -Message $_ + } + } + else + { + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + } } } catch @@ -523,6 +559,7 @@ function Format-M365DSCTelemetryParameters [System.Collections.Hashtable] $Parameters ) + $VerbosePreference = 'continue' $data = [System.Collections.Generic.Dictionary[[String], [String]]]::new() try @@ -550,7 +587,9 @@ function Format-M365DSCTelemetryParameters { $data.Add('Tenant', $Parameters.TenantId) } - $data.Add('ConnectionMode', (Get-M365DSCAuthenticationMode -Parameters $Parameters)) + $connectionMode = Get-M365DSCAuthenticationMode -Parameters $Parameters + $data.Add('ConnectionMode', $connectionMode) + Write-Verbose -Message "ConnectionMODE:: $connectionMode" } catch { diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index f11d0ca70f..b0c64e487f 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1852,7 +1852,7 @@ function New-M365DSCConnection if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-Credential") { - $data.Add('ConnectionType', 'Credential') + $data.Add('ConnectionMode', 'Credentials') try { if (-not $Data.ContainsKey('Tenant')) @@ -1882,7 +1882,7 @@ function New-M365DSCConnection -SkipModuleReload $Global:CurrentModeIsExport if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-Credential") { - $data.Add('ConnectionType', 'Credential') + $data.Add('ConnectionMode', 'Credential') try { if (-not $Data.ContainsKey('Tenant')) @@ -1919,7 +1919,7 @@ function New-M365DSCConnection -SkipModuleReload $Global:CurrentModeIsExport if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-CredentialsWithApplicationId") { - $data.Add('ConnectionType', 'CredentialsWithApplicationId') + $data.Add('ConnectionMode', 'CredentialsWithApplicationId') try { @@ -1951,7 +1951,7 @@ function New-M365DSCConnection -SkipModuleReload $Global:CurrentModeIsExport if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-CredentialsWithApplicationId") { - $data.Add('ConnectionType', 'CredentialsWithApplicationId') + $data.Add('ConnectionMode', 'CredentialsWithApplicationId') try { @@ -1997,7 +1997,7 @@ function New-M365DSCConnection if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-ServicePrincipalWithPath") { - $data.Add('ConnectionType', 'ServicePrincipalWithPath') + $data.Add('ConnectionMode', 'ServicePrincipalWithPath') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -2027,7 +2027,7 @@ function New-M365DSCConnection } else { - $data.Add('ConnectionType', 'ServicePrincipalWithPath') + $data.Add('ConnectionMode', 'ServicePrincipalWithPath') if (-not $data.ContainsKey('Tenant')) { if (-not [System.String]::IsNullOrEmpty($InboundParameters.TenantId)) @@ -2065,7 +2065,7 @@ function New-M365DSCConnection if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-ServicePrincipalWithSecret") { - $data.Add('ConnectionType', 'ServicePrincipalWithSecret') + $data.Add('ConnectionMode', 'ServicePrincipalWithSecret') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -2089,7 +2089,7 @@ function New-M365DSCConnection if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-ServicePrincipalWithSecret") { - $data.Add('ConnectionType', 'ServicePrincipalWithSecret') + $data.Add('ConnectionMode', 'ServicePrincipalWithSecret') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -2115,7 +2115,7 @@ function New-M365DSCConnection -Url $Url if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-ServicePrincipalWithThumbprint") { - $data.Add('ConnectionType', 'ServicePrincipalWithThumbprint') + $data.Add('ConnectionMode', 'ServicePrincipalWithThumbprint') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -2138,7 +2138,7 @@ function New-M365DSCConnection -SkipModuleReload $Global:CurrentModeIsExport if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-CredentialsWithTenantId") { - $data.Add('ConnectionType', 'CredentialsWithTenantId') + $data.Add('ConnectionMode', 'CredentialsWithTenantId') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -2163,7 +2163,7 @@ function New-M365DSCConnection if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-ManagedIdentity") { - $data.Add('ConnectionType', 'ManagedIdentity') + $data.Add('ConnectionMode', 'ManagedIdentity') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -2188,7 +2188,7 @@ function New-M365DSCConnection if (-not $Script:M365ConnectedToWorkloads -contains "$Workload-AccessTokens") { - $data.Add('ConnectionType', 'AccessTokens') + $data.Add('ConnectionMode', 'AccessTokens') if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) @@ -4064,6 +4064,10 @@ function Get-M365DSCAuthenticationMode { $AuthenticationType = 'ManagedIdentity' } + elseif ($Parameters.AccessTokens) + { + $AuthenticationType = 'AccessTokens' + } else { $AuthenticationType = 'Interactive' From b56f49fe381fb64ff96e215972172db77ce43bff Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 10 Jul 2024 12:55:19 -0400 Subject: [PATCH 091/273] Release 1.24.710.1 --- CHANGELOG.md | 12 ++-- .../Dependencies/Manifest.psd1 | 2 +- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 61 ++++++------------- 3 files changed, 28 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4369278b4f..c328807ce4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.710.1 * AADApplication * Fixes an error where the duplicate error was being trapped, @@ -11,13 +11,15 @@ * IntuneDeviceConfigurationPlatformScriptMacOS * Fixes an issue where the assignments are missing if filtered by display name. * M365DSCDRGUtil - * Fixes an issue where the return value was changed to a single object - instead of an array. + * Fixes an issue where the return value was changed to a single object + instead of an array. FIXES [#4844](https://github.com/microsoft/Microsoft365DSC/issues/4844) * Fixes an issue where Graph models were not treated properly as a complex object. * TELEMETRY * Added instance count. + * Added roles scopes info. * DEPENDENCIES + * Updated DSCParser to version 2.0.0.7. * Updated Microsoft.Graph to version 2.20.0 * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191 @@ -56,9 +58,9 @@ * M365DSCDRGUtil * Added Microsoft Graph filter functions. * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. - * Fixed an issue when comparing Intune policy assignments. + * Fixed an issue when comparing Intune policy assignments. FIXES [#4830](https://github.com/microsoft/Microsoft365DSC/issues/4830) - * Fixed an issue when comparing complex objects where the key to compare is available as a + * Fixed an issue when comparing complex objects where the key to compare is available as a instance property on the class. * MISC * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index e127b32ef9..9cb6e8da66 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -2,7 +2,7 @@ Dependencies = @( @{ ModuleName = 'DSCParser' - RequiredVersion = '2.0.0.6' + RequiredVersion = '2.0.0.7' }, @{ ModuleName = 'ExchangeOnlineManagement' diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 91838ced73..8eb340653c 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-07-04 +# Generated on: 2024-07-10 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.703.1' + ModuleVersion = '1.24.710.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,47 +142,26 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* EXOCASMailboxPlan - * Remove `DisplayName` from set parameters - FIXES [#4814](https://github.com/microsoft/Microsoft365DSC/issues/4814) -* EXODkimSigningConfig - * Add support for 2048 key size; - * Remove authentication parameters before changing the resources - FIXES [#4821](https://github.com/microsoft/Microsoft365DSC/issues/4821) - FIXES [#4805](https://github.com/microsoft/Microsoft365DSC/issues/4805) -* EXOGroupSettings - * Export unlimited number of groups - FIXES [#4800](https://github.com/microsoft/Microsoft365DSC/issues/4800) -* EXOHostedContentFilterRule - * When updating the resource assign property `Identity` to the correct value - FIXES [#4836](https://github.com/microsoft/Microsoft365DSC/issues/4836) -* EXOMailboxPlan - * Remove `DisplayName` from set parameters - FIXES [#4817](https://github.com/microsoft/Microsoft365DSC/issues/4817) -* EXOHostedOutboundSpamFilterRule - * Fix `if` clause on update scenario, remove property `Enabled` from being set - while updating the resource and ensure that also while updating the resource - the property `HostedOutboundSpamFilterPolicy` is only sent if it differs - from what the resource already has currently assigned - FIXES [#4838](https://github.com/microsoft/Microsoft365DSC/issues/4838) -* IntuneExploitProtectionPolicyWindows10SettingCatalog - * Migrate to new settings catalog cmdlets. -* IntuneSettingCatalogASRRulesPolicyWindows10 - * Migrate to new settings catalog cmdlets. -* TeamsFederationConfiguration - * Add missing property `ExternalAccessWithTrialTenants` - FIXES [#4829](https://github.com/microsoft/Microsoft365DSC/issues/4829) + ReleaseNotes = '* AADApplication + * Fixes an error where the duplicate error was being trapped, + which could cause extra instances to be created. +* AADGroup + * Fixes an error where the duplicate error was being trapped, + which could cause extra instances to be created. +* IntuneDeviceConfigurationPlatformScriptMacOS + * Fixes an issue where the assignments are missing if filtered by display name. * M365DSCDRGUtil - * Added Microsoft Graph filter functions. - * Force array as parameter in `Compare-M365DSCIntunePolicyAssignment`. -* MISC - * Added support for `startswith`, `endswith` and `contains` filter methods to Intune resources - that did not support it previously. - FIXES [#4597](https://github.com/microsoft/Microsoft365DSC/issues/4597) - * Fixes issues with values of type `groupSettingCollection` and `choiceSetting` - when creating the settings catalog policy settings body. + * Fixes an issue where the return value was changed to a single object + instead of an array. + FIXES [#4844](https://github.com/microsoft/Microsoft365DSC/issues/4844) + * Fixes an issue where Graph models were not treated properly as a complex object. +* TELEMETRY + * Added instance count. + * Added roles scopes info. * DEPENDENCIES - * Updated DSCParser to version 2.0.0.6' + * Updated DSCParser to version 2.0.0.7. + * Updated Microsoft.Graph to version 2.20.0 + * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From 5f403e5c3e6be417d696e19f902813857e566fb4 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 10 Jul 2024 12:59:58 -0400 Subject: [PATCH 092/273] Update M365DSCTelemetryEngine.psm1 --- Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index 33618bc2e9..cdfef0434a 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -559,7 +559,6 @@ function Format-M365DSCTelemetryParameters [System.Collections.Hashtable] $Parameters ) - $VerbosePreference = 'continue' $data = [System.Collections.Generic.Dictionary[[String], [String]]]::new() try @@ -589,7 +588,6 @@ function Format-M365DSCTelemetryParameters } $connectionMode = Get-M365DSCAuthenticationMode -Parameters $Parameters $data.Add('ConnectionMode', $connectionMode) - Write-Verbose -Message "ConnectionMODE:: $connectionMode" } catch { From a2cc984e32c15fad32df8903f0dcfbc4281eda6e Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 08:40:03 -0400 Subject: [PATCH 093/273] Release 1.24.710.2 --- CHANGELOG.md | 5 + Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 4 +- .../Modules/M365DSCTelemetryEngine.psm1 | 158 ++++++++++-------- 3 files changed, 91 insertions(+), 76 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9295b7f91..a91791ba43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# 1.24.710.2 + +* Telemetry + * Fixed error handling on getting roles. + # 1.24.710.1 * AADApplication diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 8eb340653c..b562ab2eab 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-07-10 +# Generated on: 2024-07-11 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.710.1' + ModuleVersion = '1.24.710.2' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index cdfef0434a..6ac0e57bfb 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -66,89 +66,61 @@ function Add-M365DSCTelemetryEvent $TelemetryEnabled = [System.Environment]::GetEnvironmentVariable('M365DSCTelemetryEnabled', ` [System.EnvironmentVariableTarget]::Machine) - if ($Type -eq 'DriftEvaluation') - { - try - { - $hostId = (Get-Host).InstanceId - if ($null -eq $Script:M365DSCCountResourceInstance -or $hostId -ne $Script:M365DSCExecutionContextId) - { - $Script:M365DSCCountResourceInstance = 1 - } - else - { - $Script:M365DSCCountResourceInstance++ - } - - if ($hostId -ne $Script:M365DSCExecutionContextId) - { - $Script:M365DSCExecutionContextId = $hostId - } - $Data.Add('ResourceInstancesCount', $Script:M365DSCCountResourceInstance) - $Data.Add('M365DSCExecutionContextId', $hostId) - } - catch - { - Write-Verbose -Message $_ - } - } - - try + if ($null -eq $TelemetryEnabled -or $TelemetryEnabled -eq $true) { - if ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('Credential')) + if ($Type -eq 'DriftEvaluation') { - if ($null -eq $Script:M365DSCCurrentRoles -or $Script:M365DSCCurrentRoles.Length -eq 0) + try { - try + $hostId = (Get-Host).InstanceId + if ($null -eq $Script:M365DSCCountResourceInstance -or $hostId -ne $Script:M365DSCExecutionContextId) { - Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction SilentlyContinue + $Script:M365DSCCountResourceInstance = 1 } - catch + else { - Write-Verbose -Message $_ + $Script:M365DSCCountResourceInstance++ } - $Script:M365DSCCurrentRoles = @() - - $uri = $Global:MSCloudLoginConnectionProfile.MicrosoftGraph.ResourceUrl + 'v1.0/me?$select=id' - $currentUser = Invoke-MgGraphRequest -Uri $uri -Method GET - $currentUserId = $currentUser.id - $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$currentUserId'" ` - -Property @('RoleDefinitionId', 'DirectoryScopeId') -All - - $roles = Get-MgBetaRoleManagementDirectoryRoleDefinition -All ` - -Property @('Id', 'DisplayName') - foreach ($assignment in $assignments) + if ($hostId -ne $Script:M365DSCExecutionContextId) { - $role = $roles | Where-Object -FilterScript {$_.Id -eq $assignment.RoleDefinitionId} - if ($null -ne $role) - { - $Script:M365DSCCurrentRoles += $role.DisplayName + '|' + $assignment.DirectoryScopeId - } + $Script:M365DSCExecutionContextId = $hostId } - $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + $Data.Add('ResourceInstancesCount', $Script:M365DSCCountResourceInstance) + $Data.Add('M365DSCExecutionContextId', $hostId) } - else + catch { - $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + Write-Verbose -Message $_ } } - elseif ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('ServicePrincipal')) + + try { - if ($null -eq $Script:M365DSCCurrentRoles -or $Script:M365DSCCurrentRoles.Length -eq 0) + if ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('Credential')) { - try + if ($null -eq $Script:M365DSCCurrentRoles -or $Script:M365DSCCurrentRoles.Length -eq 0) { - Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction Stop + try + { + Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction SilentlyContinue + } + catch + { + Write-Verbose -Message $_ + } $Script:M365DSCCurrentRoles = @() - $sp = Get-MgServicePrincipal -Filter "AppId eq '$($Global:M365DSCTelemetryConnectionToGraphParams.ApplicationId)'" ` - -ErrorAction 'SilentlyContinue' - if ($null -ne $sp) + $uri = $Global:MSCloudLoginConnectionProfile.MicrosoftGraph.ResourceUrl + 'v1.0/me?$select=id' + $currentUser = Invoke-MgGraphRequest -Uri $uri -Method GET + $currentUserId = $currentUser.id + + $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$currentUserId'" ` + -Property @('RoleDefinitionId', 'DirectoryScopeId') -All -ErrorAction 'SilentlyContinue' + + if ($null -ne $assignments) { - $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$($sp.Id)'" ` - -Property @('RoleDefinitionId', 'DirectoryScopeId') -All - $roles = Get-MgBetaRoleManagementDirectoryRoleDefinition -All ` + $roles = Get-MgBetaRoleManagementDirectoryRoleDefinition -All ` -Property @('Id', 'DisplayName') foreach ($assignment in $assignments) { @@ -161,24 +133,58 @@ function Add-M365DSCTelemetryEvent $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') } } - catch + else { - Write-Verbose -Message $_ + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') } } - else + elseif ($null -ne $Data.ConnectionMode -and $Data.ConnectionMode.StartsWith('ServicePrincipal')) { - $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + if ($null -eq $Script:M365DSCCurrentRoles -or $Script:M365DSCCurrentRoles.Length -eq 0) + { + try + { + Connect-M365Tenant -Workload 'MicrosoftGraph' @Global:M365DSCTelemetryConnectionToGraphParams -ErrorAction Stop + $Script:M365DSCCurrentRoles = @() + + $sp = Get-MgServicePrincipal -Filter "AppId eq '$($Global:M365DSCTelemetryConnectionToGraphParams.ApplicationId)'" ` + -ErrorAction 'SilentlyContinue' + if ($null -ne $sp) + { + $assignments = Get-MgBetaRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$($sp.Id)'" ` + -Property @('RoleDefinitionId', 'DirectoryScopeId') -All -ErrorAction 'SilentlyContinue' + if ($null -ne $assignments) + { + $roles = Get-MgBetaRoleManagementDirectoryRoleDefinition -All ` + -Property @('Id', 'DisplayName') + foreach ($assignment in $assignments) + { + $role = $roles | Where-Object -FilterScript {$_.Id -eq $assignment.RoleDefinitionId} + if ($null -ne $role) + { + $Script:M365DSCCurrentRoles += $role.DisplayName + '|' + $assignment.DirectoryScopeId + } + } + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + } + } + } + catch + { + Write-Verbose -Message $_ + } + } + else + { + $Data.Add('M365DSCCurrentRoles', $Script:M365DSCCurrentRoles -join ',') + } } } - } - catch - { - Write-Verbose -Message $_ - } + catch + { + Write-Verbose -Message $_ + } - if ($null -eq $TelemetryEnabled -or $TelemetryEnabled -eq $true) - { $TelemetryClient = Get-M365DSCApplicationInsightsTelemetryClient try @@ -433,6 +439,10 @@ function Add-M365DSCTelemetryEvent } } } + else + { + return + } } <# From 8765ca821598bcb87b35b10cfddd4d3c732c3fc1 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 10:18:33 -0400 Subject: [PATCH 094/273] Updated Tests to use SP --- .../workflows/Global - Integration - AAD.yml | 2 +- ...-AADActivityBasedTimeoutPolicy-Example.ps1 | 18 ++++++++--- .../AADAdministrativeUnit/1-Create.ps1 | 21 +++++++++---- .../AADAdministrativeUnit/2-Update.ps1 | 21 +++++++++---- .../AADAdministrativeUnit/3-Remove.ps1 | 21 +++++++++---- .../Resources/AADApplication/1-Create.ps1 | 18 ++++++++--- .../Resources/AADApplication/2-Update.ps1 | 18 ++++++++--- .../Resources/AADApplication/3-Remove.ps1 | 18 ++++++++--- .../Resources/AADAttributeSet/1-Create.ps1 | 21 +++++++++---- .../Resources/AADAttributeSet/2-Update.ps1 | 21 +++++++++---- .../1-Create.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../AADAuthenticationFlowPolicy/2-Update.ps1 | 17 +++++++++-- .../2-Update.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 4 ++- .../1-Create.ps1 | 21 +++++++++---- .../2-Update.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../AADAuthorizationPolicy/2-Update.ps1 | 21 +++++++++---- .../AADConditionalAccessPolicy/1-Create.ps1 | 21 +++++++++---- .../AADConditionalAccessPolicy/2-Update.ps1 | 21 +++++++++---- .../AADConditionalAccessPolicy/3-Remove.ps1 | 21 +++++++++---- .../AADCrossTenantAccessPolicy/2-Update.ps1 | 18 ++++++++--- .../2-Update.ps1 | 18 ++++++++--- .../1-Create.ps1 | 18 ++++++++--- .../2-Update.ps1 | 18 ++++++++--- .../3-Remove.ps1 | 18 ++++++++--- .../1-Create.ps1 | 18 ++++++++--- .../2-Update.ps1 | 18 ++++++++--- .../3-Remove.ps1 | 18 ++++++++--- .../1-Create.ps1 | 18 ++++++++--- .../2-Update.ps1 | 18 ++++++++--- .../3-Remove.ps1 | 18 ++++++++--- .../1-Create.ps1 | 18 ++++++++--- .../2-Update.ps1 | 18 ++++++++--- .../3-Remove.ps1 | 18 ++++++++--- .../1-Create.ps1 | 23 +++++++++----- .../2-Update.ps1 | 23 +++++++++----- .../3-Remove.ps1 | 18 ++++++++--- .../1-Create.ps1 | 21 +++++++++---- .../3-Remove.ps1 | 21 +++++++++---- .../AADExternalIdentityPolicy/2-Update.ps1 | 21 +++++++++---- .../Examples/Resources/AADGroup/1-Create.ps1 | 21 +++++++++---- .../Examples/Resources/AADGroup/2-Update.ps1 | 21 +++++++++---- .../Examples/Resources/AADGroup/3-Remove.ps1 | 18 ++++++++--- .../AADGroupLifecyclePolicy/2-Update.ps1 | 20 +++++++++---- .../AADGroupLifecyclePolicy/3-Remove.ps1 | 20 +++++++++---- .../AADGroupsNamingPolicy/2-Update.ps1 | 18 ++++++++--- .../AADGroupsNamingPolicy/3-Remove.ps1 | 18 ++++++++--- .../Resources/AADGroupsSettings/2-Update.ps1 | 18 ++++++++--- .../Resources/AADGroupsSettings/3-Remove.ps1 | 18 ++++++++--- .../AADNamedLocationPolicy/1-Create.ps1 | 18 ++++++++--- .../AADNamedLocationPolicy/2-Update.ps1 | 18 ++++++++--- .../AADNamedLocationPolicy/3-Remove.ps1 | 18 ++++++++--- .../Resources/AADRoleDefinition/1-Create.ps1 | 18 ++++++++--- .../Resources/AADRoleDefinition/2-Update.ps1 | 18 ++++++++--- .../Resources/AADRoleDefinition/3-Remove.ps1 | 18 ++++++++--- .../1-Create.ps1 | 7 +++-- .../2-Update.ps1 | 7 +++-- .../3-Remove.ps1 | 6 ++-- .../Resources/AADRoleSetting/2-Update.ps1 | 18 ++++++++--- .../AADSecurityDefaults/2-Update.ps1 | 18 ++++++++--- .../AADServicePrincipal/1-Create.ps1 | 25 +++++++++++----- .../AADServicePrincipal/2-Update.ps1 | 25 +++++++++++----- .../AADServicePrincipal/3-Remove.ps1 | 18 ++++++++--- .../AADSocialIdentityProvider/1-Create.ps1 | 21 +++++++++---- .../AADSocialIdentityProvider/2-Update.ps1 | 21 +++++++++---- .../AADSocialIdentityProvider/3-Remove.ps1 | 21 +++++++++---- .../Resources/AADTenantDetails/2-Update.ps1 | 18 ++++++++--- .../AADTokenLifetimePolicy/1-Create.ps1 | 18 ++++++++--- .../AADTokenLifetimePolicy/2-Update.ps1 | 18 ++++++++--- .../AADTokenLifetimePolicy/3-Remove.ps1 | 18 ++++++++--- .../Examples/Resources/AADUser/1-Create.ps1 | 21 +++++++++---- .../Examples/Resources/AADUser/2-Update.ps1 | 21 +++++++++---- .../Examples/Resources/AADUser/3-Remove.ps1 | 21 +++++++++---- Tests/Integration/M365DSCTestEngine.psm1 | 30 ++++++++++++++----- 90 files changed, 1267 insertions(+), 448 deletions(-) diff --git a/.github/workflows/Global - Integration - AAD.yml b/.github/workflows/Global - Integration - AAD.yml index 67e0d5cff9..ce236fcc76 100644 --- a/.github/workflows/Global - Integration - AAD.yml +++ b/.github/workflows/Global - Integration - AAD.yml @@ -56,7 +56,7 @@ jobs: $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) try { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.AAD.Create.Tests.ps1 -Credential $Credential + & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.AAD.Create.Tests.ps1 -ApplicationId $env:APPLICATIONID -TenantId $env:TENANTID -CertificateThumbprint $env:CERTIFICATETHUMBPRINT } catch { diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADActivityBasedTimeoutPolicy/1-AADActivityBasedTimeoutPolicy-Example.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADActivityBasedTimeoutPolicy/1-AADActivityBasedTimeoutPolicy-Example.ps1 index 1d915a10b4..5bcfbc9182 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADActivityBasedTimeoutPolicy/1-AADActivityBasedTimeoutPolicy-Example.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADActivityBasedTimeoutPolicy/1-AADActivityBasedTimeoutPolicy-Example.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example DisplayName = "displayName-value"; Ensure = "Present"; Id = "000000-0000-0000-0000-000000000000"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 index c8cd6045bb..31c5d07bc5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -34,7 +41,9 @@ Configuration Example } } ) - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 index c9f01960e9..bd5fd79f4c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -35,7 +42,9 @@ Configuration Example } } ) - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 index ae31a25232..9de6056775 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example { DisplayName = 'Test-Unit' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 index 50de632034..e121cf248b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -51,7 +59,9 @@ Configuration Example } ) Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 index b61f02d26f..d77b1a52b8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -51,7 +59,9 @@ Configuration Example } ) Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/3-Remove.ps1 index 104eed381a..d74e883bc6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = "AppDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/1-Create.ps1 index e2eddf1bfa..0027794f7b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +25,9 @@ Configuration Example { AADAttributeSet "AADAttributeSetTest" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Attribute set with 420 attributes"; Ensure = "Present"; Id = "TestAttributeSet"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/2-Update.ps1 index 52b8df2775..63cad5eca2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAttributeSet/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +25,9 @@ Configuration Example { AADAttributeSet "AADAttributeSetTest" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Attribute set with 420 attributes"; Ensure = "Present"; Id = "TestAttributeSet"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/1-Create.ps1 index 33c0004a94..7abe999a3d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +25,9 @@ Configuration Example { AADAuthenticationContextClassReference "AADAuthenticationContextClassReference-Test" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test"; DisplayName = "My Context"; Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/2-Update.ps1 index 902a3e01e3..83a52bbbb7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +25,9 @@ Configuration Example { AADAuthenticationContextClassReference "AADAuthenticationContextClassReference-Test" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test Updated"; # Updated Property DisplayName = "My Context"; Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/3-Remove.ps1 index b562f75732..e0cdad4aa2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationContextClassReference/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +25,9 @@ Configuration Example { AADAuthenticationContextClassReference "AADAuthenticationContextClassReference-Test" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test Updated"; # Updated Property DisplayName = "My Context"; Ensure = "Absent"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationFlowPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationFlowPolicy/2-Update.ps1 index 6e8e006574..59700ac6de 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationFlowPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationFlowPolicy/2-Update.ps1 @@ -5,8 +5,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [System.Management.Automation.PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -15,7 +24,9 @@ Configuration Example { { AADAuthenticationFlowPolicy "AADAuthenticationFlowPolicy" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Authentication flows policy allows modification of settings related to authentication flows in AAD tenant, such as self-service sign up configuration."; DisplayName = "Authentication flows policy"; Id = "authenticationFlowsPolicy"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicy/2-Update.ps1 index 3ad69bbb1d..533b73f0bb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -35,7 +42,9 @@ Configuration Example State = 'default' } }; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/2-Update.ps1 index cd3382cfa8..55b70dc485 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicyAuthenticator "AADAuthenticationMethodPolicyAuthenticator-MicrosoftAuthenticator" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyAuthenticatorExcludeTarget{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/3-Remove.ps1 index 9e646afa6e..0b95b98d20 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyAuthenticator/3-Remove.ps1 @@ -9,11 +9,18 @@ Configuration Example Node localhost { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) AADAuthenticationMethodPolicyAuthenticator "AADAuthenticationMethodPolicyAuthenticator-MicrosoftAuthenticator" { @@ -27,7 +34,9 @@ Configuration Example ); IsSoftwareOathEnabled = $True; # Updated Property State = "enabled"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyEmail/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyEmail/2-Update.ps1 index 889bee8111..1237994612 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyEmail/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyEmail/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +25,9 @@ Configuration Example AADAuthenticationMethodPolicyEmail "AADAuthenticationMethodPolicyEmail-Email" { AllowExternalIdToUseEmailOtp = "enabled"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyEmailExcludeTarget{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/2-Update.ps1 index cce861359c..d6696fb373 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicyFido2 "AADAuthenticationMethodPolicyFido2-Fido2" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyFido2ExcludeTarget{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/3-Remove.ps1 index 373788d186..f11914f361 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyFido2/3-Remove.ps1 @@ -9,17 +9,26 @@ Configuration Example Node localhost { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) AADAuthenticationMethodPolicyFido2 "AADAuthenticationMethodPolicyFido2-Fido2" { Ensure = "Absent"; Id = "Fido2"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/2-Update.ps1 index 7111b8b114..437304c66e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicySms "AADAuthenticationMethodPolicySms-Sms" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicySmsExcludeTarget{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/3-Remove.ps1 index 14b220283c..1f4ccb0a59 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySms/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicySms "AADAuthenticationMethodPolicySms-Sms" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "Sms"; } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/2-Update.ps1 index 808ff41034..3c9f260c3a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicySoftware "AADAuthenticationMethodPolicySoftware-SoftwareOath" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicySoftwareExcludeTarget{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/3-Remove.ps1 index 055f75fc9e..8b1b8a49d5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicySoftware/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicySoftware "AADAuthenticationMethodPolicySoftware-SoftwareOath" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "SoftwareOath"; } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/2-Update.ps1 index da062cb512..d78048db51 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicyTemporary "AADAuthenticationMethodPolicyTemporary-TemporaryAccessPass" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DefaultLength = 9; # Updated Property DefaultLifetimeInMinutes = 60; Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/3-Remove.ps1 index 151a54bf4b..c7d0c273a8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyTemporary/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicyTemporary "AADAuthenticationMethodPolicyTemporary-TemporaryAccessPass" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "TemporaryAccessPass"; } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyVoice/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyVoice/3-Remove.ps1 index 859ee2321e..bb46883b2e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyVoice/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyVoice/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +24,9 @@ Configuration Example { AADAuthenticationMethodPolicyVoice "AADAuthenticationMethodPolicyVoice-Voice" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "Voice"; } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/2-Update.ps1 index 47ee911aea..9d6e307835 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -38,7 +45,9 @@ Configuration Example X509CertificateField = 'SubjectKeyIdentifier' } ); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyX509ExcludeTarget{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/3-Remove.ps1 index ce1b97d528..03b284b3cf 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationMethodPolicyX509/3-Remove.ps1 @@ -17,7 +17,9 @@ Configuration Example { AADAuthenticationMethodPolicyX509 "AADAuthenticationMethodPolicyX509-X509Certificate" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "X509Certificate"; } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/1-Create.ps1 index 41957eb493..642111df1d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +28,9 @@ Configuration Example Description = "This is an example"; DisplayName = "Example"; Ensure = "Present"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/2-Update.ps1 index a7e0364755..855d6456fe 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +28,9 @@ Configuration Example Description = "This is an example"; DisplayName = "Example"; Ensure = "Present"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/3-Remove.ps1 index 48c8e61ab4..8e85d6869b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthenticationStrengthPolicy/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { DisplayName = "Example"; Ensure = "Absent"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAuthorizationPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAuthorizationPolicy/2-Update.ps1 index 05d87f1232..b4c2d8453c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAuthorizationPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAuthorizationPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +39,9 @@ Configuration Example GuestUserRole = 'Guest' PermissionGrantPolicyIdsAssignedToDefaultUserRole = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/1-Create.ps1 index cdd98d0524..620033193f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { BuiltInControls = @("mfa"); ClientAppTypes = @("all"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DeviceFilterMode = "exclude"; DeviceFilterRule = "device.trustType -eq `"AzureAD`" -or device.trustType -eq `"ServerAD`" -or device.trustType -eq `"Workplace`""; DisplayName = "Example CAP"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/2-Update.ps1 index b484a00998..6fe1f8f115 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { BuiltInControls = @("mfa"); ClientAppTypes = @("all"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DeviceFilterMode = "exclude"; DeviceFilterRule = "device.trustType -eq `"AzureAD`" -or device.trustType -eq `"ServerAD`" -or device.trustType -eq `"Workplace`""; DisplayName = "Example CAP"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/3-Remove.ps1 index b1e7893a92..c00e9443c0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADConditionalAccessPolicy/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { DisplayName = 'Example CAP' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicy/2-Update.ps1 index 3123883dd3..78728b47a2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example AADCrossTenantAccessPolicy "AADCrossTenantAccessPolicy" { AllowedCloudEndpoints = @("microsoftonline.us"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "MyXTAPPolicy"; Ensure = "Present"; IsSingleInstance = "Yes"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationDefault/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationDefault/2-Update.ps1 index 15e50852b7..89c3b6b506 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationDefault/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationDefault/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -96,7 +104,9 @@ Configuration Example ) } } - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; InboundTrust = MSFT_AADCrossTenantAccessPolicyInboundTrust { IsCompliantDeviceAccepted = $False diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/1-Create.ps1 index 20018ebc40..3927db26d6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -41,7 +49,9 @@ Configuration Example ) } }; - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/2-Update.ps1 index d3064c63ae..5a55a7a169 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -41,7 +49,9 @@ Configuration Example ) } }; - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/3-Remove.ps1 index 4598bcd52a..14fdfe863e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADCrossTenantAccessPolicyConfigurationPartner/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,9 @@ Configuration Example { AADCrossTenantAccessPolicyConfigurationPartner "AADCrossTenantAccessPolicyConfigurationPartner" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; PartnerTenantId = "12345-12345-12345-12345-12345"; } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/1-Create.ps1 index 778b2ae509..fe39b962e4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { AccessPackagesIncompatibleWith = @(); CatalogId = "General"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Integration Tests"; DisplayName = "Integration Package"; Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/2-Update.ps1 index 668580ab74..cb29006fa5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { AccessPackagesIncompatibleWith = @(); CatalogId = "General"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Integration Tests"; DisplayName = "Integration Package"; Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/3-Remove.ps1 index 3a8a14b1b3..89c3ef84c0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackage/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'Integration Package' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/1-Create.ps1 index 1acbe3c12f..6fc2c28b2a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example IsExternallyVisible = $True Managedidentity = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/2-Update.ps1 index 30621cfbe4..c1a0688bbc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example IsExternallyVisible = $False # Updated Property Managedidentity = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/3-Remove.ps1 index 2507ef22a3..7f61ec18d3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalog/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'My Catalog' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index acfae36718..21ae8d25c5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +34,9 @@ Configuration Example ResourceType = 'SharePoint Online Site' Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 7cbaf4e00b..c948f13fb9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +34,9 @@ Configuration Example ResourceType = 'SharePoint Online Site' Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index ff7e3443b3..a6948ba719 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'Communication site' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/1-Create.ps1 index 1d4fcd1896..5c4bd6ea36 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/1-Create.ps1 @@ -6,20 +6,27 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { Description = "this is the tenant partner"; DisplayName = "Test Tenant - DSC"; - ExternalSponsors = @("AdeleV@$Domain"); + ExternalSponsors = @("AdeleV@$TenantId"); IdentitySources = @( MSFT_AADEntitlementManagementConnectedOrganizationIdentitySource{ ExternalTenantId = "e7a80bcf-696e-40ca-8775-a7f85fbb3ebc" @@ -27,10 +34,12 @@ Configuration Example odataType = '#microsoft.graph.azureActiveDirectoryTenant' } ); - InternalSponsors = @("AdeleV@$Domain"); + InternalSponsors = @("AdeleV@$TenantId"); State = "configured"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/2-Update.ps1 index 5044b39b3a..401a3757e8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/2-Update.ps1 @@ -6,20 +6,27 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { Description = "This is the tenant partner - Updated"; # Updated Property DisplayName = "Test Tenant - DSC"; - ExternalSponsors = @("AdeleV@$Domain"); + ExternalSponsors = @("AdeleV@$TenantId"); IdentitySources = @( MSFT_AADEntitlementManagementConnectedOrganizationIdentitySource{ ExternalTenantId = "e7a80bcf-696e-40ca-8775-a7f85fbb3ebc" @@ -27,10 +34,12 @@ Configuration Example odataType = '#microsoft.graph.azureActiveDirectoryTenant' } ); - InternalSponsors = @("AdeleV@$Domain"); + InternalSponsors = @("AdeleV@$TenantId"); State = "configured"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/3-Remove.ps1 index cf45043c10..addb134743 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementConnectedOrganization/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = "Test Tenant - DSC"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 index 62fb587326..3794cb68fa 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 @@ -6,21 +6,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementRoleAssignment "AADEntitlementManagementRoleAssignment-Create" { AppScopeId = "/"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; - Principal = "John.Smith@$Domain"; + Principal = "John.Smith@$TenantId"; RoleDefinition = "Catalog creator"; } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 index c6fa5e0a91..b673df788c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 @@ -6,21 +6,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementRoleAssignment "AADEntitlementManagementRoleAssignment-Remove" { AppScopeId = "/"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; - Principal = "John.Smith@$Domain"; + Principal = "John.Smith@$TenantId"; RoleDefinition = "Catalog creator"; } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADExternalIdentityPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADExternalIdentityPolicy/2-Update.ps1 index d722519c05..a43b2b19b0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADExternalIdentityPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADExternalIdentityPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example { AllowDeletedIdentitiesDataRemoval = $False; AllowExternalIdentitiesToLeave = $True; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint IsSingleInstance = "Yes"; } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroup/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroup/1-Create.ps1 index 41f8825460..243f549348 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroup/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroup/1-Create.ps1 @@ -6,12 +6,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { @@ -24,9 +31,11 @@ Configuration Example GroupTypes = @("Unified") MailNickname = "M365DSC" Visibility = "Private" - Owners = @("admin@$Domain", "AdeleV@$Domain") + Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroup/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroup/2-Update.ps1 index 7862017a86..827370cdcc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroup/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroup/2-Update.ps1 @@ -6,12 +6,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADGroup 'MyGroups' @@ -23,9 +30,11 @@ Configuration Example GroupTypes = @("Unified") MailNickname = "M365DSC" Visibility = "Private" - Owners = @("admin@$Domain", "AdeleV@$Domain") + Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroup/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroup/3-Remove.ps1 index b51e513cf6..172dd9b7bb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroup/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroup/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example MailEnabled = $True DisplayName = "DSCGroup" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/2-Update.ps1 index de3aaa81b0..0603551a46 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,11 +25,13 @@ Configuration Example AADGroupLifecyclePolicy 'GroupLifecyclePolicy' { IsSingleInstance = "Yes" - AlternateNotificationEmails = @("john.smith@contoso.com") + AlternateNotificationEmails = @("john.smith@$TenantId") GroupLifetimeInDays = 99 ManagedGroupTypes = "Selected" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/3-Remove.ps1 index 29cf864c51..9e61e3593b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroupLifecyclePolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,11 +25,13 @@ Configuration Example AADGroupLifecyclePolicy 'GroupLifecyclePolicy' { IsSingleInstance = "Yes" - AlternateNotificationEmails = @("john.smith@contoso.com") + AlternateNotificationEmails = @("john.smith@$TenantId") GroupLifetimeInDays = 99 ManagedGroupTypes = "Selected" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/2-Update.ps1 index 2a901421fe..0b54e68c7a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example CustomBlockedWordsList = @("CEO", "President") PrefixSuffixNamingRequirement = "[Title]Test[Company][GroupName][Office]Redmond" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/3-Remove.ps1 index e07d6dbeeb..f2c687123a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsNamingPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { IsSingleInstance = "Yes" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/2-Update.ps1 index e0cdef430d..605e63942b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,9 @@ Configuration Example GuestUsageGuidelinesUrl = "https://contoso.com/guestusage" UsageGuidelinesUrl = "https://contoso.com/usage" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/3-Remove.ps1 index 6fc6a4be3b..bfe2f1b754 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADGroupsSettings/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { IsSingleInstance = "Yes" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/1-Create.ps1 index 2cfe4b2336..92dbfc2b4f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example IsTrusted = $False OdataType = "#microsoft.graph.ipNamedLocation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/2-Update.ps1 index 9f1b9edb57..0e487acdf6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example IsTrusted = $False OdataType = "#microsoft.graph.ipNamedLocation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/3-Remove.ps1 index 7020b1c2ae..9b96e7ecd8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADNamedLocationPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = "Company Network" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/1-Create.ps1 index d5b7ab71ed..dc49235c47 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read","microsoft.directory/applicationPolicies/allProperties/update","microsoft.directory/applicationPolicies/basic/update" Version = "1.0" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/2-Update.ps1 index e7db69e5e9..c13bdd1da3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read","microsoft.directory/applicationPolicies/allProperties/update","microsoft.directory/applicationPolicies/basic/update" Version = "1.0" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/3-Remove.ps1 index fec85868f1..ab15d63ae4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleDefinition/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read" DisplayName = "DSCRole1" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/1-Create.ps1 index 439d0b39b9..cbf4513a6b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/1-Create.ps1 @@ -14,17 +14,18 @@ Configuration Example Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADRoleEligibilityScheduleRequest "MyRequest" { Action = "AdminAssign"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Present"; IsValidationOnly = $False; - Principal = "AdeleV@$Domain"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:40:44Z' diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/2-Update.ps1 index fbfb5574ca..5ae77143e8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/2-Update.ps1 @@ -14,17 +14,18 @@ Configuration Example Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADRoleEligibilityScheduleRequest "MyRequest" { Action = "AdminUpdate"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Present"; IsValidationOnly = $False; - Principal = "AdeleV@$Domain"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:45:44Z' # Updated Property diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/3-Remove.ps1 index 6fff4548fc..0e561e0f05 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleEligibilityScheduleRequest/3-Remove.ps1 @@ -19,11 +19,13 @@ Configuration Example AADRoleEligibilityScheduleRequest "MyRequest" { Action = "AdminAssign"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Absent"; IsValidationOnly = $True; # Updated Property - Principal = "John.Smith@$OrganizationName"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:40:44Z' diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADRoleSetting/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADRoleSetting/2-Update.ps1 index 2c6292e400..1e9654b1e7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADRoleSetting/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADRoleSetting/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -55,7 +63,9 @@ Configuration Example ExpireEligibleAssignment = "P365D"; PermanentActiveAssignmentisExpirationRequired = $False; PermanentEligibleAssignmentisExpirationRequired = $False; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = 'Present' } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADSecurityDefaults/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADSecurityDefaults/2-Update.ps1 index 8ed7979197..533abf2cc2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADSecurityDefaults/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADSecurityDefaults/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,9 @@ Configuration Example { AADSecurityDefaults 'Defaults' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Security defaults is a set of basic identity security mechanisms recommended by Microsoft. When enabled, these recommendations will be automatically enforced in your organization. Administrators and users will be better protected from common identity related attacks."; DisplayName = "Security Defaults"; IsEnabled = $False; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/1-Create.ps1 index 5d148bc5bb..0ed32092b6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/1-Create.ps1 @@ -6,13 +6,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADServicePrincipal 'AADServicePrincipal' @@ -22,13 +29,15 @@ Configuration Example AlternativeNames = "AlternativeName1","AlternativeName2" AccountEnabled = $true AppRoleAssignmentRequired = $false - Homepage = "https://$Domain" - LogoutUrl = "https://$Domain/logout" - ReplyURLs = "https://$Domain" + Homepage = "https://$TenantId" + LogoutUrl = "https://$TenantId/logout" + ReplyURLs = "https://$TenantId" ServicePrincipalType = "Application" Tags = "{WindowsAzureActiveDirectoryIntegratedApp}" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/2-Update.ps1 index d50d7f231c..5a420757d0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/2-Update.ps1 @@ -6,13 +6,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADServicePrincipal 'AADServicePrincipal' @@ -22,13 +29,15 @@ Configuration Example AlternativeNames = "AlternativeName1","AlternativeName3" # Updated Property AccountEnabled = $true AppRoleAssignmentRequired = $false - Homepage = "https://$Domain" - LogoutUrl = "https://$Domain/logout" - ReplyURLs = "https://$Domain" + Homepage = "https://$TenantId" + LogoutUrl = "https://$TenantId/logout" + ReplyURLs = "https://$TenantId" ServicePrincipalType = "Application" Tags = "{WindowsAzureActiveDirectoryIntegratedApp}" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/3-Remove.ps1 index 50f0db3935..db2855bc8d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADServicePrincipal/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example AppId = "AppDisplayName" DisplayName = "AppDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/1-Create.ps1 index 3c4f482979..492fa74ec8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Present"; IdentityProviderType = "Google"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/2-Update.ps1 index 3807438f25..746b6fc3a9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret-Updated"; # Updated Property - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Present"; IdentityProviderType = "Google"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/3-Remove.ps1 index fb8d39bbab..8bd1281080 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADSocialIdentityProvider/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret-Updated"; # Updated Property - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Absent"; IdentityProviderType = "Google"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADTenantDetails/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADTenantDetails/2-Update.ps1 index 09a729a235..6a2feef2d6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADTenantDetails/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADTenantDetails/2-Update.ps1 @@ -5,10 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { param( - [System.Management.Automation.PSCredential] - $credsCredential - ) + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + [Parameter()] + [System.String] + $CertificateThumbprint + ) Import-DscResource -ModuleName Microsoft365DSC Node Localhost @@ -18,7 +26,9 @@ Configuration Example { IsSingleInstance = 'Yes' TechnicalNotificationMails = "example@contoso.com" MarketingNotificationEmails = "example@contoso.com" - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/1-Create.ps1 index 886fe687b7..017f0495ef 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Definition = @("{`"TokenLifetimePolicy`":{`"Version`":1,`"AccessTokenLifetime`":`"02:00:00`"}}"); IsOrganizationDefault = $false Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/2-Update.ps1 index 729710ea27..97b05430e2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Definition = @("{`"TokenLifetimePolicy`":{`"Version`":1,`"AccessTokenLifetime`":`"02:00:00`"}}"); IsOrganizationDefault = $true # Updated Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/3-Remove.ps1 index 6cc645eca1..dfdde0c981 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADTokenLifetimePolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = "PolicyDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADUser/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADUser/1-Create.ps1 index 73cdcbb24b..702b86bc25 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADUser/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADUser/1-Create.ps1 @@ -6,18 +6,25 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" FirstName = "John" LastName = "Smith" DisplayName = "John J. Smith" @@ -26,7 +33,9 @@ Configuration Example Office = "Ottawa - Queen" UsageLocation = "US" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADUser/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADUser/2-Update.ps1 index 238b7e0925..35726df3ad 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADUser/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADUser/2-Update.ps1 @@ -6,18 +6,25 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" FirstName = "John" LastName = "Smith" DisplayName = "John J. Smith" @@ -26,7 +33,9 @@ Configuration Example Office = "Ottawa - Queen" UsageLocation = "US" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADUser/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADUser/3-Remove.ps1 index 72667e151b..eeccbfd03d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADUser/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADUser/3-Remove.ps1 @@ -6,21 +6,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" DisplayName = "John J. Smith" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Tests/Integration/M365DSCTestEngine.psm1 b/Tests/Integration/M365DSCTestEngine.psm1 index d75004b683..5fb4812a98 100644 --- a/Tests/Integration/M365DSCTestEngine.psm1 +++ b/Tests/Integration/M365DSCTestEngine.psm1 @@ -18,21 +18,37 @@ function New-M365DSCIntegrationTest param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { @@ -95,7 +111,7 @@ function New-M365DSCIntegrationTest # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From d29166f68fd9cb0a9f41173e68354682a1905b4a Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 11:32:38 -0400 Subject: [PATCH 095/273] Release 1.24.710.3 --- CHANGELOG.md | 5 + Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 6 +- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 157 ++++++++++++++---- 3 files changed, 135 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a91791ba43..37f9f8c9ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# 1.24.710.3 + +* MISC + * Fixesd issue with App Secret Authentication flow. + # 1.24.710.2 * Telemetry diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index b562ab2eab..f045b33f23 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.710.2' + ModuleVersion = '1.24.710.3' # Supported PSEditions # CompatiblePSEditions = @() @@ -161,7 +161,9 @@ * DEPENDENCIES * Updated DSCParser to version 2.0.0.7. * Updated Microsoft.Graph to version 2.20.0 - * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191' + * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191 +* MISC + * Fixesd issue with App Secret Authentication flow.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index b0c64e487f..03b4cbbf70 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1804,7 +1804,10 @@ function New-M365DSCConnection if ($InboundParameters.ApplicationSecret) { $InboundParameters.ApplicationSecret = $InboundParameters.ApplicationSecret.GetNetworkCredential().Password - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) + } } # Case both authentication methods are attempted @@ -1845,7 +1848,10 @@ function New-M365DSCConnection Write-Verbose -Message 'Credential was specified. Connecting via User Principal' if ([System.String]::IsNullOrEmpty($Url)) { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Credential')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + } Connect-M365Tenant -Workload $Workload ` -Credential $InboundParameters.Credential ` -SkipModuleReload $Global:CurrentModeIsExport @@ -1859,7 +1865,11 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) + + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicatonSecret', $tenantId) + } } } catch @@ -1875,7 +1885,10 @@ function New-M365DSCConnection if ($InboundParameters.ContainsKey('Credential') -and $null -ne $InboundParameters.Credential) { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Credential')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + } Connect-M365Tenant -Workload $Workload ` -Credential $InboundParameters.Credential ` -Url $Url ` @@ -1889,7 +1902,10 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) + } } } catch @@ -1911,8 +1927,14 @@ function New-M365DSCConnection { if ([System.String]::IsNullOrEmpty($Url)) { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Credential')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + } Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -Credential $InboundParameters.Credential ` @@ -1927,7 +1949,10 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) + } } } catch @@ -1942,8 +1967,14 @@ function New-M365DSCConnection } else { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Credential')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + } Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -Credential $InboundParameters.Credential ` @@ -1959,7 +1990,10 @@ function New-M365DSCConnection { $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $tenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $tenantId) + } } } catch @@ -1984,10 +2018,22 @@ function New-M365DSCConnection { Write-Verbose -Message 'ApplicationId, TenantId, CertificatePath & CertificatePassword were specified. Connecting via Service Principal' - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificatePassword', $InboundParameters.CertificatePassword.Password) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificatePath', $InboundParameters.CertificatePath) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('CertificatePassword')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificatePassword', $InboundParameters.CertificatePassword.Password) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('CertificatePath')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificatePath', $InboundParameters.CertificatePath) + } Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2001,7 +2047,10 @@ function New-M365DSCConnection if (-not $data.ContainsKey('Tenant')) { $data.Add('Tenant', $InboundParameters.TenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } } Add-M365DSCTelemetryEvent -Data $data -Type 'Connection' $Script:M365ConnectedToWorkloads += "$Workload-ServicePrincipalWithPath" @@ -2054,9 +2103,18 @@ function New-M365DSCConnection { Write-Verbose -Message 'ApplicationId, TenantId, ApplicationSecret were specified. Connecting via Service Principal' - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) + } Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2077,9 +2135,18 @@ function New-M365DSCConnection } else { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationSecret) + } Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2104,9 +2171,18 @@ function New-M365DSCConnection { Write-Verbose -Message 'ApplicationId, TenantId, CertificateThumbprint were specified. Connecting via Service Principal' - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificateThumbprint', $InboundParameters.CertificateThumbprint) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('CertificateThumbprint')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('CertificateThumbprint', $InboundParameters.CertificateThumbprint) + } Connect-M365Tenant -Workload $Workload ` -ApplicationId $InboundParameters.ApplicationId ` -TenantId $InboundParameters.TenantId ` @@ -2129,8 +2205,14 @@ function New-M365DSCConnection elseif ($null -ne $InboundParameters.Credential -and ` -not [System.String]::IsNullOrEmpty($InboundParameters.TenantId)) { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Credential')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('CertificateThumbprint')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } Connect-M365Tenant -Workload $Workload ` -TenantId $InboundParameters.TenantId ` -Credential $InboundParameters.Credential ` @@ -2154,8 +2236,14 @@ function New-M365DSCConnection { Write-Verbose -Message 'Connecting via managed identity' - $Global:M365DSCTelemetryConnectionToGraphParams.Add('Identity', $true) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Identity')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('Identity', $true) + } + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } Connect-M365Tenant -Workload $Workload ` -Identity ` -TenantId $InboundParameters.TenantId ` @@ -2179,8 +2267,15 @@ function New-M365DSCConnection { Write-Verbose -Message 'Connecting via Access Tokens' - $Global:M365DSCTelemetryConnectionToGraphParams.Add('AccessTokens', $InboundParameters.AccessTokens) - $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('AccessTokens')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('AccessTokens', $InboundParameters.AccessTokens) + } + + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) + { + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) + } Connect-M365Tenant -Workload $Workload ` -AccessTokens $InboundParameters.AccessTokens ` -TenantId $InboundParameters.TenantId ` From df293e85dd97de8e28172e7619a02c0fbbd20d97 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 11:33:54 -0400 Subject: [PATCH 096/273] Fixes Typo --- CHANGELOG.md | 2 +- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37f9f8c9ef..5f62077cf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ # 1.24.710.3 * MISC - * Fixesd issue with App Secret Authentication flow. + * Fixes issue with App Secret Authentication flow. # 1.24.710.2 diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index f045b33f23..56af643474 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -163,7 +163,7 @@ * Updated Microsoft.Graph to version 2.20.0 * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191 * MISC - * Fixesd issue with App Secret Authentication flow.' + * Fixes issue with App Secret Authentication flow.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From 7122108a1e67b73a34ed83d1a61c5af22fc07703 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 11:36:27 -0400 Subject: [PATCH 097/273] Fixes --- Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 03b4cbbf70..882674e3a4 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1866,9 +1866,9 @@ function New-M365DSCConnection $tenantId = $InboundParameters.Credential.Username.Split('@')[1] $data.Add('Tenant', $tenantId) - if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicatonSecret', $tenantId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $tenantId) } } } @@ -1967,9 +1967,9 @@ function New-M365DSCConnection } else { - if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationSecret')) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('ApplicationId')) { - $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationSecret', $InboundParameters.ApplicationId) + $Global:M365DSCTelemetryConnectionToGraphParams.Add('ApplicationId', $InboundParameters.ApplicationId) } if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('Credential')) { @@ -2209,7 +2209,7 @@ function New-M365DSCConnection { $Global:M365DSCTelemetryConnectionToGraphParams.Add('Credential', $InboundParameters.Credential) } - if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('CertificateThumbprint')) + if (-not $Global:M365DSCTelemetryConnectionToGraphParams.ContainsKey('TenantId')) { $Global:M365DSCTelemetryConnectionToGraphParams.Add('TenantId', $InboundParameters.TenantId) } From d4279c7cac7eb0b4182a4b94d6256285fe337339 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 14:53:51 -0400 Subject: [PATCH 098/273] Update Global - Integration - AAD.yml --- .../workflows/Global - Integration - AAD.yml | 172 +----------------- 1 file changed, 1 insertion(+), 171 deletions(-) diff --git a/.github/workflows/Global - Integration - AAD.yml b/.github/workflows/Global - Integration - AAD.yml index ce236fcc76..88c9556977 100644 --- a/.github/workflows/Global - Integration - AAD.yml +++ b/.github/workflows/Global - Integration - AAD.yml @@ -15,21 +15,18 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - - name: Install Microsoft365DSC + - name: Copy Microsoft365DSC shell: powershell run: | - winrm quickconfig -force $source = "./Modules/Microsoft365DSC/" $destination = "C:\Program Files\WindowsPowerShell\Modules" Copy-Item -Path $source -Recurse -Destination $destination -Container -Force - Update-M365DSCDependencies - name: Configure Environment shell: powershell run: | Set-ExecutionPolicy Unrestricted -Force Get-ChildItem "C:\Program Files\WindowsPowerShell\Modules" -Recurse | Unblock-File Set-M365DSCTelemetryOption -Enabled $false - Set-Item -Path WSMan:\localhost\MaxEnvelopeSizekb -Value 99999 - name: Generate {Create} Integration Tests from Examples shell: powershell run: | @@ -46,66 +43,9 @@ jobs: git push $SHA = git rev-parse HEAD echo "commitid=$SHA" >> $env:GITHUB_OUTPUT - - name: Run {Create} Integration Tests - shell: powershell - env: - INTEGRATION_USERNAME: ${{ secrets.INTEGRATION_USERNAME }} - INTEGRATION_PASSWORD: ${{ secrets.INTEGRATION_PASSWORD }} - run: | - $CredPassword = ConvertTo-SecureString $env:INTEGRATION_PASSWORD -AsPlainText -Force - $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) - try - { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.AAD.Create.Tests.ps1 -ApplicationId $env:APPLICATIONID -TenantId $env:TENANTID -CertificateThumbprint $env:CERTIFICATETHUMBPRINT - } - catch - { - throw $_ - } - - name: Validating {Create} Integration Tests - shell: powershell - run: | - try - { - $Result = Test-DSCConfiguration -Detailed -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - - Write-Host "" - - if ($Result.InDesiredState -eq $false) - { - Write-Host -Message "Resources below are not in the Desired State:" - foreach ($Resource in $Result.ResourcesNotInDesiredState) - { - Write-Host $Resource.InstanceName - } - - throw "Could not validate that the Tenant is in the Desired State" - } - else - { - Write-Host "All resources in the Tenant are in the Desired State" - } - - try - { - # Commenting out since this is very finnicky right now and its preventing other tests from running. - # The Get-DSCConfiguration cmdlet isn't providing much value added when failing and doesn't provide - # info about what parsing issues occured. - #$Result = Get-DSCConfiguration -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - name: Generate {Update} Integration Tests from Examples shell: powershell run: | - Import-Module './Tests/Integration/M365DSCTestEngine.psm1' New-M365DSCIntegrationTest -Workload AAD -Step '2-Update' - name: Commit {Update} Integration Tests shell: powershell @@ -118,66 +58,9 @@ jobs: git push $SHA = git rev-parse HEAD echo "commitid=$SHA" >> $env:GITHUB_OUTPUT - - name: Run {Update} Integration Tests - shell: powershell - env: - INTEGRATION_USERNAME: ${{ secrets.INTEGRATION_USERNAME }} - INTEGRATION_PASSWORD: ${{ secrets.INTEGRATION_PASSWORD }} - run: | - $CredPassword = ConvertTo-SecureString $env:INTEGRATION_PASSWORD -AsPlainText -Force - $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) - try - { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.AAD.Update.Tests.ps1 -Credential $Credential - } - catch - { - throw $_ - } - - name: Validating {Update} Integration Tests - shell: powershell - run: | - try - { - $Result = Test-DSCConfiguration -Detailed -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - - Write-Host "" - - if ($Result.InDesiredState -eq $false) - { - Write-Host -Message "Resources below are not in the Desired State:" - foreach ($Resource in $Result.ResourcesNotInDesiredState) - { - Write-Host $Resource.InstanceName - } - - throw "Could not validate that the Tenant is in the Desired State" - } - else - { - Write-Host "All resources in the Tenant are in the Desired State" - } - - try - { - # Commenting out since this is very finnicky right now and its preventing other tests from running. - # The Get-DSCConfiguration cmdlet isn't providing much value added when failing and doesn't provide - # info about what parsing issues occured. - #$Result = Get-DSCConfiguration -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - name: Generate {Remove} Integration Tests from Examples shell: powershell run: | - Import-Module './Tests/Integration/M365DSCTestEngine.psm1' New-M365DSCIntegrationTest -Workload AAD -Step '3-Remove' - name: Commit {Remove} Integration Tests shell: powershell @@ -190,56 +73,3 @@ jobs: git push $SHA = git rev-parse HEAD echo "commitid=$SHA" >> $env:GITHUB_OUTPUT - - name: Run {Remove} Integration Tests - shell: powershell - env: - INTEGRATION_USERNAME: ${{ secrets.INTEGRATION_USERNAME }} - INTEGRATION_PASSWORD: ${{ secrets.INTEGRATION_PASSWORD }} - run: | - $CredPassword = ConvertTo-SecureString $env:INTEGRATION_PASSWORD -AsPlainText -Force - $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) - try - { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.AAD.Remove.Tests.ps1 -Credential $Credential - } - catch - { - throw $_ - } - - name: Validating {Remove} Integration Tests - shell: powershell - run: | - try - { - $Result = Test-DSCConfiguration -Detailed -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - - Write-Host "" - - if ($Result.InDesiredState -eq $false) - { - Write-Host -Message "Resources below are not in the Desired State:" - foreach ($Resource in $Result.ResourcesNotInDesiredState) - { - Write-Host $Resource.InstanceName - } - - throw "Could not validate that the Tenant is in the Desired State" - } - else - { - Write-Host "All resources in the Tenant are in the Desired State" - } - - try - { - #$Result = Get-DSCConfiguration -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } From 13bdcc50ba18d570caec041e864a05e3a56a2c08 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:07:06 -0400 Subject: [PATCH 099/273] Revamp Unit Tests --- .../Scheduled - Generate Permission List.yml | 42 +++++++++++++++++++ .../QA/Microsoft365DSC.SettingsJson.Tests.ps1 | 27 +----------- Tests/TestHarness.psm1 | 35 ++++++++++++++++ 3 files changed, 78 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/Scheduled - Generate Permission List.yml diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml new file mode 100644 index 0000000000..7196b559d6 --- /dev/null +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -0,0 +1,42 @@ +name: Unit Tests +on: [push, pull_request] + +jobs: + # This workflow contains a single job called "build" + UnitTests: + # The type of runner that the job will run on + runs-on: windows-latest + + permissions: write-all + + # Only when run from the main repo + if: github.repository == 'microsoft/Microsoft365DSC' + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Install Dependencies + shell: pwsh + run: | + Import-Module './Modules/M365DSCUtil.psm1' -Force; + Update-M365DSCModule + - name: Get Permissions List + shell: pwsh + run: | + Import-Module './Tests/TestHarness.psm1' -Force; + $permissions = Get-M365DSCAllGraphPermissionsList + $permission - join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' + - name: Commit Permissions List + shell: powershell + run: | + git config --local user.email "nicharl@microsoft.com" + git config --local user.name "NikCharlebois" + git add D:/a/Microsoft365DSC/Microsoft365DSC/Tests/QA/* + git pull + git commit -m "Updated Graph Permissions List" + git push + $SHA = git rev-parse HEAD + echo "commitid=$SHA" >> $env:GITHUB_OUTPUT diff --git a/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 b/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 index de2e26c128..83d7fe119d 100644 --- a/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 +++ b/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 @@ -17,32 +17,7 @@ Describe -Name 'Successfully import Settings.json files' { Describe -Name 'Successfully validate all used permissions in Settings.json files ' { BeforeAll { - $allModules = Get-module Microsoft.graph.* -ListAvailable - $allPermissions = @() - foreach ($module in $allModules) - { - $cmds = Get-Command -Module $module.Name - foreach ($cmd in $cmds) - { - $graphInfo = Find-MgGraphCommand -Command $cmd.Name -ErrorAction SilentlyContinue - if ($null -ne $graphInfo) - { - $permissions = $graphInfo.Permissions | Where-Object -FilterScript {$_.PermissionType -eq 'Application'} - $allPermissions += $permissions.Name - } - } - } - - $allPermissions+= @('OrgSettings-Microsoft365Install.Read.All', ` - 'OrgSettings-Forms.Read.All', ` - 'OrgSettings-Todo.Read.All', ` - 'OrgSettings-AppsAndServices.Read.All', ` - 'OrgSettings-DynamicsVoice.Read.All', ` - 'ReportSettings.Read.All', ` - 'RoleManagementPolicy.Read.Directory', ` - 'RoleEligibilitySchedule.Read.Directory', ` - 'Agreement.Read.All') - $roles = $allPermissions | Select-Object -Unique | Sort-Object -Descending:$false + } It "Permissions used in settings.json file for '' should exist" -TestCases $settingsFiles { diff --git a/Tests/TestHarness.psm1 b/Tests/TestHarness.psm1 index 646022d9af..964a9d8af2 100644 --- a/Tests/TestHarness.psm1 +++ b/Tests/TestHarness.psm1 @@ -126,6 +126,41 @@ function Invoke-TestHarness return $results } +function Get-M365DSCAllGraphPermissionsList +{ + [CmdletBinding()] + [OutputType([System.String[]])] + param() + + $allModules = Get-module Microsoft.graph.* -ListAvailable + $allPermissions = @() + foreach ($module in $allModules) + { + $cmds = Get-Command -Module $module.Name + foreach ($cmd in $cmds) + { + $graphInfo = Find-MgGraphCommand -Command $cmd.Name -ErrorAction SilentlyContinue + if ($null -ne $graphInfo) + { + $permissions = $graphInfo.Permissions | Where-Object -FilterScript {$_.PermissionType -eq 'Application'} + $allPermissions += $permissions.Name + } + } + } + + $allPermissions+= @('OrgSettings-Microsoft365Install.Read.All', ` + 'OrgSettings-Forms.Read.All', ` + 'OrgSettings-Todo.Read.All', ` + 'OrgSettings-AppsAndServices.Read.All', ` + 'OrgSettings-DynamicsVoice.Read.All', ` + 'ReportSettings.Read.All', ` + 'RoleManagementPolicy.Read.Directory', ` + 'RoleEligibilitySchedule.Read.Directory', ` + 'Agreement.Read.All') + $roles = $allPermissions | Select-Object -Unique | Sort-Object -Descending:$false + return $roles +} + function Invoke-QualityChecksHarness { [CmdletBinding()] From df5db19b76c0127e63d2174ac7ac6f0af54d49af Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 11 Jul 2024 19:08:13 +0000 Subject: [PATCH 100/273] Updated Resources and Cmdlet documentation pages --- .../azure-ad/AADActivityBasedTimeoutPolicy.md | 18 +++-- .../azure-ad/AADAdministrativeUnit.md | 63 ++++++++++++----- .../docs/resources/azure-ad/AADApplication.md | 54 +++++++++++---- .../resources/azure-ad/AADAttributeSet.md | 42 ++++++++---- .../AADAuthenticationContextClassReference.md | 63 ++++++++++++----- .../azure-ad/AADAuthenticationFlowPolicy.md | 17 ++++- .../azure-ad/AADAuthenticationMethodPolicy.md | 21 ++++-- ...AuthenticationMethodPolicyAuthenticator.md | 42 ++++++++---- .../AADAuthenticationMethodPolicyEmail.md | 21 ++++-- .../AADAuthenticationMethodPolicyFido2.md | 42 ++++++++---- .../AADAuthenticationMethodPolicySms.md | 42 ++++++++---- .../AADAuthenticationMethodPolicySoftware.md | 42 ++++++++---- .../AADAuthenticationMethodPolicyTemporary.md | 42 ++++++++---- .../AADAuthenticationMethodPolicyVoice.md | 21 ++++-- .../AADAuthenticationMethodPolicyX509.md | 25 +++++-- .../AADAuthenticationStrengthPolicy.md | 63 ++++++++++++----- .../azure-ad/AADAuthorizationPolicy.md | 21 ++++-- .../azure-ad/AADConditionalAccessPolicy.md | 63 ++++++++++++----- .../azure-ad/AADCrossTenantAccessPolicy.md | 18 +++-- ...sTenantAccessPolicyConfigurationDefault.md | 18 +++-- ...sTenantAccessPolicyConfigurationPartner.md | 54 +++++++++++---- .../AADEntitlementManagementAccessPackage.md | 54 +++++++++++---- ...titlementManagementAccessPackageCatalog.md | 54 +++++++++++---- ...tManagementAccessPackageCatalogResource.md | 54 +++++++++++---- ...itlementManagementConnectedOrganization.md | 64 ++++++++++++----- .../AADEntitlementManagementRoleAssignment.md | 42 ++++++++---- .../azure-ad/AADExternalIdentityPolicy.md | 21 ++++-- docs/docs/resources/azure-ad/AADGroup.md | 60 +++++++++++----- .../azure-ad/AADGroupLifecyclePolicy.md | 40 ++++++++--- .../azure-ad/AADGroupsNamingPolicy.md | 36 +++++++--- .../resources/azure-ad/AADGroupsSettings.md | 36 +++++++--- .../azure-ad/AADNamedLocationPolicy.md | 54 +++++++++++---- .../resources/azure-ad/AADRoleDefinition.md | 54 +++++++++++---- .../AADRoleEligibilityScheduleRequest.md | 20 +++--- .../docs/resources/azure-ad/AADRoleSetting.md | 18 +++-- .../resources/azure-ad/AADSecurityDefaults.md | 18 +++-- .../resources/azure-ad/AADServicePrincipal.md | 68 +++++++++++++------ .../azure-ad/AADSocialIdentityProvider.md | 63 ++++++++++++----- .../resources/azure-ad/AADTenantDetails.md | 18 +++-- .../azure-ad/AADTokenLifetimePolicy.md | 54 +++++++++++---- docs/docs/resources/azure-ad/AADUser.md | 63 ++++++++++++----- 41 files changed, 1243 insertions(+), 440 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADActivityBasedTimeoutPolicy.md b/docs/docs/resources/azure-ad/AADActivityBasedTimeoutPolicy.md index 4a0bbe08ae..a6e6de26d7 100644 --- a/docs/docs/resources/azure-ad/AADActivityBasedTimeoutPolicy.md +++ b/docs/docs/resources/azure-ad/AADActivityBasedTimeoutPolicy.md @@ -58,9 +58,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -73,7 +81,9 @@ Configuration Example DisplayName = "displayName-value"; Ensure = "Present"; Id = "000000-0000-0000-0000-000000000000"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADAdministrativeUnit.md b/docs/docs/resources/azure-ad/AADAdministrativeUnit.md index 2aae9da6fb..2b3f72998f 100644 --- a/docs/docs/resources/azure-ad/AADAdministrativeUnit.md +++ b/docs/docs/resources/azure-ad/AADAdministrativeUnit.md @@ -81,11 +81,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -110,7 +117,9 @@ Configuration Example } } ) - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -124,11 +133,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -154,7 +170,9 @@ Configuration Example } } ) - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -168,11 +186,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -183,7 +208,9 @@ Configuration Example { DisplayName = 'Test-Unit' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADApplication.md b/docs/docs/resources/azure-ad/AADApplication.md index 395275f43d..3dff4eb19e 100644 --- a/docs/docs/resources/azure-ad/AADApplication.md +++ b/docs/docs/resources/azure-ad/AADApplication.md @@ -80,9 +80,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +133,9 @@ Configuration Example } ) Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -140,9 +150,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -185,7 +203,9 @@ Configuration Example } ) Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -200,9 +220,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -212,7 +240,9 @@ Configuration Example { DisplayName = "AppDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADAttributeSet.md b/docs/docs/resources/azure-ad/AADAttributeSet.md index 5d02ffe128..a867a28c04 100644 --- a/docs/docs/resources/azure-ad/AADAttributeSet.md +++ b/docs/docs/resources/azure-ad/AADAttributeSet.md @@ -57,11 +57,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -70,7 +77,9 @@ Configuration Example { AADAttributeSet "AADAttributeSetTest" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Attribute set with 420 attributes"; Ensure = "Present"; Id = "TestAttributeSet"; @@ -88,11 +97,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -101,7 +117,9 @@ Configuration Example { AADAttributeSet "AADAttributeSetTest" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Attribute set with 420 attributes"; Ensure = "Present"; Id = "TestAttributeSet"; diff --git a/docs/docs/resources/azure-ad/AADAuthenticationContextClassReference.md b/docs/docs/resources/azure-ad/AADAuthenticationContextClassReference.md index a8a87315ab..88af7e9605 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationContextClassReference.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationContextClassReference.md @@ -58,11 +58,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +78,9 @@ Configuration Example { AADAuthenticationContextClassReference "AADAuthenticationContextClassReference-Test" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test"; DisplayName = "My Context"; Ensure = "Present"; @@ -90,11 +99,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -103,7 +119,9 @@ Configuration Example { AADAuthenticationContextClassReference "AADAuthenticationContextClassReference-Test" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test Updated"; # Updated Property DisplayName = "My Context"; Ensure = "Present"; @@ -122,11 +140,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -135,7 +160,9 @@ Configuration Example { AADAuthenticationContextClassReference "AADAuthenticationContextClassReference-Test" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test Updated"; # Updated Property DisplayName = "My Context"; Ensure = "Absent"; diff --git a/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md b/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md index 581a0a6598..0f173f0864 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md @@ -57,8 +57,17 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { param( - [System.Management.Automation.PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -67,7 +76,9 @@ Configuration Example { { AADAuthenticationFlowPolicy "AADAuthenticationFlowPolicy" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Authentication flows policy allows modification of settings related to authentication flows in AAD tenant, such as self-service sign up configuration."; DisplayName = "Authentication flows policy"; Id = "authenticationFlowsPolicy"; diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicy.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicy.md index ef058b60eb..fd9fa85e4c 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicy.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicy.md @@ -128,11 +128,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -158,7 +165,9 @@ Configuration Example State = 'default' } }; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyAuthenticator.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyAuthenticator.md index 95f6bf00db..ceb80457e4 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyAuthenticator.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyAuthenticator.md @@ -108,11 +108,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -120,7 +127,9 @@ Configuration Example { AADAuthenticationMethodPolicyAuthenticator "AADAuthenticationMethodPolicyAuthenticator-MicrosoftAuthenticator" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyAuthenticatorExcludeTarget{ @@ -181,11 +190,18 @@ Configuration Example Node localhost { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) AADAuthenticationMethodPolicyAuthenticator "AADAuthenticationMethodPolicyAuthenticator-MicrosoftAuthenticator" { @@ -199,7 +215,9 @@ Configuration Example ); IsSoftwareOathEnabled = $True; # Updated Property State = "enabled"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyEmail.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyEmail.md index 46a93f4da3..e8bd849084 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyEmail.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyEmail.md @@ -77,11 +77,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -90,7 +97,9 @@ Configuration Example AADAuthenticationMethodPolicyEmail "AADAuthenticationMethodPolicyEmail-Email" { AllowExternalIdToUseEmailOtp = "enabled"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyEmailExcludeTarget{ diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyFido2.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyFido2.md index 60952ecc93..6828d7d951 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyFido2.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyFido2.md @@ -89,11 +89,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -101,7 +108,9 @@ Configuration Example { AADAuthenticationMethodPolicyFido2 "AADAuthenticationMethodPolicyFido2-Fido2" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyFido2ExcludeTarget{ @@ -145,17 +154,26 @@ Configuration Example Node localhost { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) AADAuthenticationMethodPolicyFido2 "AADAuthenticationMethodPolicyFido2-Fido2" { Ensure = "Absent"; Id = "Fido2"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySms.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySms.md index 5a4c79bb7e..e6c30d33f2 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySms.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySms.md @@ -76,11 +76,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -88,7 +95,9 @@ Configuration Example { AADAuthenticationMethodPolicySms "AADAuthenticationMethodPolicySms-Sms" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicySmsExcludeTarget{ @@ -117,11 +126,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -129,7 +145,9 @@ Configuration Example { AADAuthenticationMethodPolicySms "AADAuthenticationMethodPolicySms-Sms" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "Sms"; } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySoftware.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySoftware.md index ddbcf3cc12..b29a65aad3 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySoftware.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicySoftware.md @@ -76,11 +76,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -88,7 +95,9 @@ Configuration Example { AADAuthenticationMethodPolicySoftware "AADAuthenticationMethodPolicySoftware-SoftwareOath" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicySoftwareExcludeTarget{ @@ -121,11 +130,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -133,7 +149,9 @@ Configuration Example { AADAuthenticationMethodPolicySoftware "AADAuthenticationMethodPolicySoftware-SoftwareOath" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "SoftwareOath"; } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyTemporary.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyTemporary.md index 3a3e50f23b..3c4f8b4c4e 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyTemporary.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyTemporary.md @@ -81,11 +81,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -93,7 +100,9 @@ Configuration Example { AADAuthenticationMethodPolicyTemporary "AADAuthenticationMethodPolicyTemporary-TemporaryAccessPass" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DefaultLength = 9; # Updated Property DefaultLifetimeInMinutes = 60; Ensure = "Present"; @@ -127,11 +136,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -139,7 +155,9 @@ Configuration Example { AADAuthenticationMethodPolicyTemporary "AADAuthenticationMethodPolicyTemporary-TemporaryAccessPass" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "TemporaryAccessPass"; } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyVoice.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyVoice.md index 96f900b4fa..a76a6370ef 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyVoice.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyVoice.md @@ -77,11 +77,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -89,7 +96,9 @@ Configuration Example { AADAuthenticationMethodPolicyVoice "AADAuthenticationMethodPolicyVoice-Voice" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "Voice"; } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyX509.md b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyX509.md index 5789bc2a27..19440efafb 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyX509.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationMethodPolicyX509.md @@ -108,11 +108,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -141,7 +148,9 @@ Configuration Example X509CertificateField = 'SubjectKeyIdentifier' } ); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyX509ExcludeTarget{ @@ -182,7 +191,9 @@ Configuration Example { AADAuthenticationMethodPolicyX509 "AADAuthenticationMethodPolicyX509-X509Certificate" { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "X509Certificate"; } diff --git a/docs/docs/resources/azure-ad/AADAuthenticationStrengthPolicy.md b/docs/docs/resources/azure-ad/AADAuthenticationStrengthPolicy.md index c984932e90..97e991de71 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationStrengthPolicy.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationStrengthPolicy.md @@ -58,11 +58,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -74,7 +81,9 @@ Configuration Example Description = "This is an example"; DisplayName = "Example"; Ensure = "Present"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -88,11 +97,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -104,7 +120,9 @@ Configuration Example Description = "This is an example"; DisplayName = "Example"; Ensure = "Present"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -118,11 +136,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -132,7 +157,9 @@ Configuration Example { DisplayName = "Example"; Ensure = "Absent"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADAuthorizationPolicy.md b/docs/docs/resources/azure-ad/AADAuthorizationPolicy.md index 3fab6e12e0..48e254f332 100644 --- a/docs/docs/resources/azure-ad/AADAuthorizationPolicy.md +++ b/docs/docs/resources/azure-ad/AADAuthorizationPolicy.md @@ -83,11 +83,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -110,7 +117,9 @@ Configuration Example GuestUserRole = 'Guest' PermissionGrantPolicyIdsAssignedToDefaultUserRole = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md b/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md index 166950184d..6c9999834d 100644 --- a/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md +++ b/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md @@ -98,11 +98,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -112,7 +119,9 @@ Configuration Example { BuiltInControls = @("mfa"); ClientAppTypes = @("all"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DeviceFilterMode = "exclude"; DeviceFilterRule = "device.trustType -eq `"AzureAD`" -or device.trustType -eq `"ServerAD`" -or device.trustType -eq `"Workplace`""; DisplayName = "Example CAP"; @@ -139,11 +148,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -153,7 +169,9 @@ Configuration Example { BuiltInControls = @("mfa"); ClientAppTypes = @("all"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DeviceFilterMode = "exclude"; DeviceFilterRule = "device.trustType -eq `"AzureAD`" -or device.trustType -eq `"ServerAD`" -or device.trustType -eq `"Workplace`""; DisplayName = "Example CAP"; @@ -180,11 +198,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -194,7 +219,9 @@ Configuration Example { DisplayName = 'Example CAP' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicy.md b/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicy.md index b8a35807d8..d696e17aa7 100644 --- a/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicy.md +++ b/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicy.md @@ -58,9 +58,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -69,7 +77,9 @@ Configuration Example AADCrossTenantAccessPolicy "AADCrossTenantAccessPolicy" { AllowedCloudEndpoints = @("microsoftonline.us"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "MyXTAPPolicy"; Ensure = "Present"; IsSingleInstance = "Yes"; diff --git a/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationDefault.md b/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationDefault.md index c7641d1bfe..ab8bb5d801 100644 --- a/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationDefault.md +++ b/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationDefault.md @@ -98,9 +98,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -188,7 +196,9 @@ Configuration Example ) } } - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; InboundTrust = MSFT_AADCrossTenantAccessPolicyInboundTrust { IsCompliantDeviceAccepted = $False diff --git a/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationPartner.md b/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationPartner.md index de93aeb652..f864be9bd8 100644 --- a/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationPartner.md +++ b/docs/docs/resources/azure-ad/AADCrossTenantAccessPolicyConfigurationPartner.md @@ -108,9 +108,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -143,7 +151,9 @@ Configuration Example ) } }; - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; } } @@ -159,9 +169,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -194,7 +212,9 @@ Configuration Example ) } }; - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; } } @@ -210,9 +230,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -220,7 +248,9 @@ Configuration Example { AADCrossTenantAccessPolicyConfigurationPartner "AADCrossTenantAccessPolicyConfigurationPartner" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; PartnerTenantId = "12345-12345-12345-12345-12345"; } diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackage.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackage.md index 8e7e27ec9a..0c50a322d3 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackage.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackage.md @@ -75,9 +75,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -87,7 +95,9 @@ Configuration Example { AccessPackagesIncompatibleWith = @(); CatalogId = "General"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Integration Tests"; DisplayName = "Integration Package"; Ensure = "Present"; @@ -107,9 +117,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -119,7 +137,9 @@ Configuration Example { AccessPackagesIncompatibleWith = @(); CatalogId = "General"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Integration Tests"; DisplayName = "Integration Package"; Ensure = "Present"; @@ -139,9 +159,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -151,7 +179,9 @@ Configuration Example { DisplayName = 'Integration Package' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalog.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalog.md index 98cf826d55..2c8685fc73 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalog.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalog.md @@ -61,9 +61,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -78,7 +86,9 @@ Configuration Example IsExternallyVisible = $True Managedidentity = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -93,9 +103,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -110,7 +128,9 @@ Configuration Example IsExternallyVisible = $False # Updated Property Managedidentity = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -125,9 +145,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -137,7 +165,9 @@ Configuration Example { DisplayName = 'My Catalog' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 9b8c17ab51..84558df93d 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -140,9 +140,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -160,7 +168,9 @@ Configuration Example ResourceType = 'SharePoint Online Site' Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -175,9 +185,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -195,7 +213,9 @@ Configuration Example ResourceType = 'SharePoint Online Site' Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -210,9 +230,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -222,7 +250,9 @@ Configuration Example { DisplayName = 'Communication site' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementConnectedOrganization.md b/docs/docs/resources/azure-ad/AADEntitlementManagementConnectedOrganization.md index aa89bc9871..7c614518b6 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementConnectedOrganization.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementConnectedOrganization.md @@ -75,20 +75,27 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { Description = "this is the tenant partner"; DisplayName = "Test Tenant - DSC"; - ExternalSponsors = @("AdeleV@$Domain"); + ExternalSponsors = @("AdeleV@$TenantId"); IdentitySources = @( MSFT_AADEntitlementManagementConnectedOrganizationIdentitySource{ ExternalTenantId = "e7a80bcf-696e-40ca-8775-a7f85fbb3ebc" @@ -96,10 +103,12 @@ Configuration Example odataType = '#microsoft.graph.azureActiveDirectoryTenant' } ); - InternalSponsors = @("AdeleV@$Domain"); + InternalSponsors = @("AdeleV@$TenantId"); State = "configured"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -114,20 +123,27 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { Description = "This is the tenant partner - Updated"; # Updated Property DisplayName = "Test Tenant - DSC"; - ExternalSponsors = @("AdeleV@$Domain"); + ExternalSponsors = @("AdeleV@$TenantId"); IdentitySources = @( MSFT_AADEntitlementManagementConnectedOrganizationIdentitySource{ ExternalTenantId = "e7a80bcf-696e-40ca-8775-a7f85fbb3ebc" @@ -135,10 +151,12 @@ Configuration Example odataType = '#microsoft.graph.azureActiveDirectoryTenant' } ); - InternalSponsors = @("AdeleV@$Domain"); + InternalSponsors = @("AdeleV@$TenantId"); State = "configured"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -153,9 +171,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -165,7 +191,9 @@ Configuration Example { DisplayName = "Test Tenant - DSC"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md b/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md index 0370fd5913..f9c3bbfb34 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md @@ -60,21 +60,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementRoleAssignment "AADEntitlementManagementRoleAssignment-Create" { AppScopeId = "/"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; - Principal = "John.Smith@$Domain"; + Principal = "John.Smith@$TenantId"; RoleDefinition = "Catalog creator"; } } @@ -90,21 +99,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementRoleAssignment "AADEntitlementManagementRoleAssignment-Remove" { AppScopeId = "/"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; - Principal = "John.Smith@$Domain"; + Principal = "John.Smith@$TenantId"; RoleDefinition = "Catalog creator"; } } diff --git a/docs/docs/resources/azure-ad/AADExternalIdentityPolicy.md b/docs/docs/resources/azure-ad/AADExternalIdentityPolicy.md index f44a35cb37..b924f4faaf 100644 --- a/docs/docs/resources/azure-ad/AADExternalIdentityPolicy.md +++ b/docs/docs/resources/azure-ad/AADExternalIdentityPolicy.md @@ -55,11 +55,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -70,7 +77,9 @@ Configuration Example { AllowDeletedIdentitiesDataRemoval = $False; AllowExternalIdentitiesToLeave = $True; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint IsSingleInstance = "Yes"; } } diff --git a/docs/docs/resources/azure-ad/AADGroup.md b/docs/docs/resources/azure-ad/AADGroup.md index da1d4c8760..c9a32bcf2e 100644 --- a/docs/docs/resources/azure-ad/AADGroup.md +++ b/docs/docs/resources/azure-ad/AADGroup.md @@ -81,12 +81,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { @@ -99,9 +106,11 @@ Configuration Example GroupTypes = @("Unified") MailNickname = "M365DSC" Visibility = "Private" - Owners = @("admin@$Domain", "AdeleV@$Domain") + Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -116,12 +125,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADGroup 'MyGroups' @@ -133,9 +149,11 @@ Configuration Example GroupTypes = @("Unified") MailNickname = "M365DSC" Visibility = "Private" - Owners = @("admin@$Domain", "AdeleV@$Domain") + Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -150,9 +168,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -165,7 +191,9 @@ Configuration Example MailEnabled = $True DisplayName = "DSCGroup" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADGroupLifecyclePolicy.md b/docs/docs/resources/azure-ad/AADGroupLifecyclePolicy.md index 0927a1e338..14b00a6227 100644 --- a/docs/docs/resources/azure-ad/AADGroupLifecyclePolicy.md +++ b/docs/docs/resources/azure-ad/AADGroupLifecyclePolicy.md @@ -58,9 +58,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -69,11 +77,13 @@ Configuration Example AADGroupLifecyclePolicy 'GroupLifecyclePolicy' { IsSingleInstance = "Yes" - AlternateNotificationEmails = @("john.smith@contoso.com") + AlternateNotificationEmails = @("john.smith@$TenantId") GroupLifetimeInDays = 99 ManagedGroupTypes = "Selected" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -88,9 +98,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -99,11 +117,13 @@ Configuration Example AADGroupLifecyclePolicy 'GroupLifecyclePolicy' { IsSingleInstance = "Yes" - AlternateNotificationEmails = @("john.smith@contoso.com") + AlternateNotificationEmails = @("john.smith@$TenantId") GroupLifetimeInDays = 99 ManagedGroupTypes = "Selected" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADGroupsNamingPolicy.md b/docs/docs/resources/azure-ad/AADGroupsNamingPolicy.md index 8330417501..eb62239af4 100644 --- a/docs/docs/resources/azure-ad/AADGroupsNamingPolicy.md +++ b/docs/docs/resources/azure-ad/AADGroupsNamingPolicy.md @@ -57,9 +57,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +79,9 @@ Configuration Example CustomBlockedWordsList = @("CEO", "President") PrefixSuffixNamingRequirement = "[Title]Test[Company][GroupName][Office]Redmond" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -86,9 +96,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -98,7 +116,9 @@ Configuration Example { IsSingleInstance = "Yes" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADGroupsSettings.md b/docs/docs/resources/azure-ad/AADGroupsSettings.md index 38d9bd215c..1bdb022d83 100644 --- a/docs/docs/resources/azure-ad/AADGroupsSettings.md +++ b/docs/docs/resources/azure-ad/AADGroupsSettings.md @@ -66,9 +66,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -85,7 +93,9 @@ Configuration Example GuestUsageGuidelinesUrl = "https://contoso.com/guestusage" UsageGuidelinesUrl = "https://contoso.com/usage" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -100,9 +110,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -112,7 +130,9 @@ Configuration Example { IsSingleInstance = "Yes" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADNamedLocationPolicy.md b/docs/docs/resources/azure-ad/AADNamedLocationPolicy.md index d39f1b3624..543d44d66f 100644 --- a/docs/docs/resources/azure-ad/AADNamedLocationPolicy.md +++ b/docs/docs/resources/azure-ad/AADNamedLocationPolicy.md @@ -62,9 +62,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -77,7 +85,9 @@ Configuration Example IsTrusted = $False OdataType = "#microsoft.graph.ipNamedLocation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -92,9 +102,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -107,7 +125,9 @@ Configuration Example IsTrusted = $False OdataType = "#microsoft.graph.ipNamedLocation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -122,9 +142,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -134,7 +162,9 @@ Configuration Example { DisplayName = "Company Network" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADRoleDefinition.md b/docs/docs/resources/azure-ad/AADRoleDefinition.md index ac11d0fee9..0e1833f242 100644 --- a/docs/docs/resources/azure-ad/AADRoleDefinition.md +++ b/docs/docs/resources/azure-ad/AADRoleDefinition.md @@ -65,9 +65,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -82,7 +90,9 @@ Configuration Example RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read","microsoft.directory/applicationPolicies/allProperties/update","microsoft.directory/applicationPolicies/basic/update" Version = "1.0" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -97,9 +107,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -114,7 +132,9 @@ Configuration Example RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read","microsoft.directory/applicationPolicies/allProperties/update","microsoft.directory/applicationPolicies/basic/update" Version = "1.0" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -129,9 +149,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -143,7 +171,9 @@ Configuration Example RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read" DisplayName = "DSCRole1" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADRoleEligibilityScheduleRequest.md b/docs/docs/resources/azure-ad/AADRoleEligibilityScheduleRequest.md index 6d64b26924..112b40bd04 100644 --- a/docs/docs/resources/azure-ad/AADRoleEligibilityScheduleRequest.md +++ b/docs/docs/resources/azure-ad/AADRoleEligibilityScheduleRequest.md @@ -138,17 +138,18 @@ Configuration Example Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADRoleEligibilityScheduleRequest "MyRequest" { Action = "AdminAssign"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Present"; IsValidationOnly = $False; - Principal = "AdeleV@$Domain"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:40:44Z' @@ -180,17 +181,18 @@ Configuration Example Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADRoleEligibilityScheduleRequest "MyRequest" { Action = "AdminUpdate"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Present"; IsValidationOnly = $False; - Principal = "AdeleV@$Domain"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:45:44Z' # Updated Property @@ -227,11 +229,13 @@ Configuration Example AADRoleEligibilityScheduleRequest "MyRequest" { Action = "AdminAssign"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Absent"; IsValidationOnly = $True; # Updated Property - Principal = "John.Smith@$OrganizationName"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:40:44Z' diff --git a/docs/docs/resources/azure-ad/AADRoleSetting.md b/docs/docs/resources/azure-ad/AADRoleSetting.md index 935ca93ce3..33484e1065 100644 --- a/docs/docs/resources/azure-ad/AADRoleSetting.md +++ b/docs/docs/resources/azure-ad/AADRoleSetting.md @@ -99,9 +99,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -148,7 +156,9 @@ Configuration Example ExpireEligibleAssignment = "P365D"; PermanentActiveAssignmentisExpirationRequired = $False; PermanentEligibleAssignmentisExpirationRequired = $False; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = 'Present' } } diff --git a/docs/docs/resources/azure-ad/AADSecurityDefaults.md b/docs/docs/resources/azure-ad/AADSecurityDefaults.md index 13a46da3f5..ecdda35cdb 100644 --- a/docs/docs/resources/azure-ad/AADSecurityDefaults.md +++ b/docs/docs/resources/azure-ad/AADSecurityDefaults.md @@ -58,9 +58,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -68,7 +76,9 @@ Configuration Example { AADSecurityDefaults 'Defaults' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Security defaults is a set of basic identity security mechanisms recommended by Microsoft. When enabled, these recommendations will be automatically enforced in your organization. Administrators and users will be better protected from common identity related attacks."; DisplayName = "Security Defaults"; IsEnabled = $False; diff --git a/docs/docs/resources/azure-ad/AADServicePrincipal.md b/docs/docs/resources/azure-ad/AADServicePrincipal.md index 2bd9e35831..ea0b418f8f 100644 --- a/docs/docs/resources/azure-ad/AADServicePrincipal.md +++ b/docs/docs/resources/azure-ad/AADServicePrincipal.md @@ -79,13 +79,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADServicePrincipal 'AADServicePrincipal' @@ -95,13 +102,15 @@ Configuration Example AlternativeNames = "AlternativeName1","AlternativeName2" AccountEnabled = $true AppRoleAssignmentRequired = $false - Homepage = "https://$Domain" - LogoutUrl = "https://$Domain/logout" - ReplyURLs = "https://$Domain" + Homepage = "https://$TenantId" + LogoutUrl = "https://$TenantId/logout" + ReplyURLs = "https://$TenantId" ServicePrincipalType = "Application" Tags = "{WindowsAzureActiveDirectoryIntegratedApp}" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -116,13 +125,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADServicePrincipal 'AADServicePrincipal' @@ -132,13 +148,15 @@ Configuration Example AlternativeNames = "AlternativeName1","AlternativeName3" # Updated Property AccountEnabled = $true AppRoleAssignmentRequired = $false - Homepage = "https://$Domain" - LogoutUrl = "https://$Domain/logout" - ReplyURLs = "https://$Domain" + Homepage = "https://$TenantId" + LogoutUrl = "https://$TenantId/logout" + ReplyURLs = "https://$TenantId" ServicePrincipalType = "Application" Tags = "{WindowsAzureActiveDirectoryIntegratedApp}" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -153,9 +171,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -166,7 +192,9 @@ Configuration Example AppId = "AppDisplayName" DisplayName = "AppDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADSocialIdentityProvider.md b/docs/docs/resources/azure-ad/AADSocialIdentityProvider.md index f0bf04e72a..2472e76d61 100644 --- a/docs/docs/resources/azure-ad/AADSocialIdentityProvider.md +++ b/docs/docs/resources/azure-ad/AADSocialIdentityProvider.md @@ -60,11 +60,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -75,7 +82,9 @@ Configuration Example { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Present"; IdentityProviderType = "Google"; @@ -92,11 +101,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -107,7 +123,9 @@ Configuration Example { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret-Updated"; # Updated Property - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Present"; IdentityProviderType = "Google"; @@ -124,11 +142,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -139,7 +164,9 @@ Configuration Example { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret-Updated"; # Updated Property - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Absent"; IdentityProviderType = "Google"; diff --git a/docs/docs/resources/azure-ad/AADTenantDetails.md b/docs/docs/resources/azure-ad/AADTenantDetails.md index 47f811507a..22b442721c 100644 --- a/docs/docs/resources/azure-ad/AADTenantDetails.md +++ b/docs/docs/resources/azure-ad/AADTenantDetails.md @@ -59,10 +59,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { param( - [System.Management.Automation.PSCredential] - $credsCredential - ) + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + [Parameter()] + [System.String] + $CertificateThumbprint + ) Import-DscResource -ModuleName Microsoft365DSC Node Localhost @@ -72,7 +80,9 @@ Configuration Example { IsSingleInstance = 'Yes' TechnicalNotificationMails = "example@contoso.com" MarketingNotificationEmails = "example@contoso.com" - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADTokenLifetimePolicy.md b/docs/docs/resources/azure-ad/AADTokenLifetimePolicy.md index c52961807a..172290d023 100644 --- a/docs/docs/resources/azure-ad/AADTokenLifetimePolicy.md +++ b/docs/docs/resources/azure-ad/AADTokenLifetimePolicy.md @@ -59,9 +59,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -73,7 +81,9 @@ Configuration Example Definition = @("{`"TokenLifetimePolicy`":{`"Version`":1,`"AccessTokenLifetime`":`"02:00:00`"}}"); IsOrganizationDefault = $false Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -88,9 +98,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -102,7 +120,9 @@ Configuration Example Definition = @("{`"TokenLifetimePolicy`":{`"Version`":1,`"AccessTokenLifetime`":`"02:00:00`"}}"); IsOrganizationDefault = $true # Updated Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -117,9 +137,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -129,7 +157,9 @@ Configuration Example { DisplayName = "PolicyDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/azure-ad/AADUser.md b/docs/docs/resources/azure-ad/AADUser.md index 7beee6094b..8a53f0316d 100644 --- a/docs/docs/resources/azure-ad/AADUser.md +++ b/docs/docs/resources/azure-ad/AADUser.md @@ -80,18 +80,25 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" FirstName = "John" LastName = "Smith" DisplayName = "John J. Smith" @@ -100,7 +107,9 @@ Configuration Example Office = "Ottawa - Queen" UsageLocation = "US" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -115,18 +124,25 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" FirstName = "John" LastName = "Smith" DisplayName = "John J. Smith" @@ -135,7 +151,9 @@ Configuration Example Office = "Ottawa - Queen" UsageLocation = "US" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -150,21 +168,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" DisplayName = "John J. Smith" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From e9a27e966073640c8dc7a55a5e7002c1137961da Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 11 Jul 2024 19:09:51 +0000 Subject: [PATCH 101/273] Updated {Create} EXO Integration Tests --- .../M365DSCIntegration.EXO.Create.Tests.ps1 | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 index b1b1aca5d5..5d0291451f 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 @@ -1,21 +1,37 @@ param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { EXOAcceptedDomain 'O365DSCDomain' @@ -794,7 +810,7 @@ # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From 70a28acd81caacd460460eb2b3c58d1dc3398dde Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 11 Jul 2024 19:10:09 +0000 Subject: [PATCH 102/273] Updated {Create} Intune Integration Tests --- ...M365DSCIntegration.INTUNE.Create.Tests.ps1 | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index 71cbbb9dc0..4650b4880f 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -1,21 +1,37 @@ param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy 'My Account Protection LAPS Policy' @@ -2702,7 +2718,7 @@ # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From 46faf98d0067536c0dff77c5abc686a5afaf68c7 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:32:42 -0400 Subject: [PATCH 103/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 7196b559d6..fd34ba8d68 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -1,9 +1,9 @@ -name: Unit Tests +name: Generate Permissions List on: [push, pull_request] jobs: # This workflow contains a single job called "build" - UnitTests: + GeneratePermissionsList: # The type of runner that the job will run on runs-on: windows-latest From 08d56cfa4f3e1a9b221736d299fd5e106e2532b3 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 11 Jul 2024 19:34:14 +0000 Subject: [PATCH 104/273] Updated {Create} AAD Integration Tests --- .../M365DSCIntegration.AAD.Create.Tests.ps1 | 128 +++++++++++++----- 1 file changed, 92 insertions(+), 36 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index 6f8c8a7041..6b22978208 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -1,21 +1,37 @@ param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { AADAdministrativeUnit 'TestUnit' @@ -36,7 +52,9 @@ } } ) - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADApplication 'AADApp1' { @@ -74,11 +92,15 @@ } ) Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAttributeSet 'AADAttributeSetTest' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Attribute set with 420 attributes"; Ensure = "Present"; Id = "TestAttributeSet"; @@ -86,7 +108,9 @@ } AADAuthenticationContextClassReference 'AADAuthenticationContextClassReference-Test' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test"; DisplayName = "My Context"; Ensure = "Present"; @@ -99,13 +123,17 @@ Description = "This is an example"; DisplayName = "Example"; Ensure = "Present"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADConditionalAccessPolicy 'ConditionalAccessPolicy' { BuiltInControls = @("mfa"); ClientAppTypes = @("all"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DeviceFilterMode = "exclude"; DeviceFilterRule = "device.trustType -eq `"AzureAD`" -or device.trustType -eq `"ServerAD`" -or device.trustType -eq `"Workplace`""; DisplayName = "Example CAP"; @@ -147,14 +175,18 @@ ) } }; - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; } AADEntitlementManagementAccessPackage 'myAccessPackage' { AccessPackagesIncompatibleWith = @(); CatalogId = "General"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Integration Tests"; DisplayName = "Integration Package"; Ensure = "Present"; @@ -197,7 +229,9 @@ IsExternallyVisible = $True Managedidentity = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { @@ -210,13 +244,15 @@ ResourceType = 'SharePoint Online Site' Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { Description = "this is the tenant partner"; DisplayName = "Test Tenant - DSC"; - ExternalSponsors = @("AdeleV@$Domain"); + ExternalSponsors = @("AdeleV@$TenantId"); IdentitySources = @( MSFT_AADEntitlementManagementConnectedOrganizationIdentitySource{ ExternalTenantId = "e7a80bcf-696e-40ca-8775-a7f85fbb3ebc" @@ -224,17 +260,21 @@ odataType = '#microsoft.graph.azureActiveDirectoryTenant' } ); - InternalSponsors = @("AdeleV@$Domain"); + InternalSponsors = @("AdeleV@$TenantId"); State = "configured"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementRoleAssignment 'AADEntitlementManagementRoleAssignment-Create' { AppScopeId = "/"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; - Principal = "John.Smith@$Domain"; + Principal = "John.Smith@$TenantId"; RoleDefinition = "Catalog creator"; } AADGroup 'MyGroups' @@ -246,9 +286,11 @@ GroupTypes = @("Unified") MailNickname = "M365DSC" Visibility = "Private" - Owners = @("admin@$Domain", "AdeleV@$Domain") + Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADNamedLocationPolicy 'CompanyNetwork' { @@ -257,7 +299,9 @@ IsTrusted = $False OdataType = "#microsoft.graph.ipNamedLocation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADRoleDefinition 'AADRoleDefinition1' { @@ -268,16 +312,20 @@ RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read","microsoft.directory/applicationPolicies/allProperties/update","microsoft.directory/applicationPolicies/basic/update" Version = "1.0" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADRoleEligibilityScheduleRequest 'MyRequest' { Action = "AdminAssign"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Present"; IsValidationOnly = $False; - Principal = "AdeleV@$Domain"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:40:44Z' @@ -295,19 +343,23 @@ AlternativeNames = "AlternativeName1","AlternativeName2" AccountEnabled = $true AppRoleAssignmentRequired = $false - Homepage = "https://$Domain" - LogoutUrl = "https://$Domain/logout" - ReplyURLs = "https://$Domain" + Homepage = "https://$TenantId" + LogoutUrl = "https://$TenantId/logout" + ReplyURLs = "https://$TenantId" ServicePrincipalType = "Application" Tags = "{WindowsAzureActiveDirectoryIntegratedApp}" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADSocialIdentityProvider 'AADSocialIdentityProvider-Google' { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Present"; IdentityProviderType = "Google"; @@ -318,11 +370,13 @@ Definition = @("{`"TokenLifetimePolicy`":{`"Version`":1,`"AccessTokenLifetime`":`"02:00:00`"}}"); IsOrganizationDefault = $false Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" FirstName = "John" LastName = "Smith" DisplayName = "John J. Smith" @@ -331,7 +385,9 @@ Office = "Ottawa - Queen" UsageLocation = "US" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -348,7 +404,7 @@ # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From 2613891425d6819c1a69c841ba007dcacd17119b Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:40:53 -0400 Subject: [PATCH 105/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index fd34ba8d68..30c9ad12bd 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -15,13 +15,10 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Checkout Repository - uses: actions/checkout@v3 - - name: Install Dependencies shell: pwsh run: | - Import-Module './Modules/M365DSCUtil.psm1' -Force; + Import-Module '.Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; Update-M365DSCModule - name: Get Permissions List shell: pwsh From 3879219adbc72f0a0b7651ebf9e79d8fe1b64633 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:49:16 -0400 Subject: [PATCH 106/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 30c9ad12bd..6b84b7f0f9 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -18,7 +18,7 @@ jobs: - name: Install Dependencies shell: pwsh run: | - Import-Module '.Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; + Import-Module './Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; Update-M365DSCModule - name: Get Permissions List shell: pwsh From 539a2d8fb33cacf34d0f26732eafcf3fcb5d1163 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:53:35 -0400 Subject: [PATCH 107/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 6b84b7f0f9..f34b1e2b32 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -23,6 +23,7 @@ jobs: - name: Get Permissions List shell: pwsh run: | + get-childitem -recurse Import-Module './Tests/TestHarness.psm1' -Force; $permissions = Get-M365DSCAllGraphPermissionsList $permission - join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' From a550dc87bb4d2459e22b0662d536aec4ddee5684 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:54:39 -0400 Subject: [PATCH 108/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index f34b1e2b32..d74d9d99f3 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -18,12 +18,12 @@ jobs: - name: Install Dependencies shell: pwsh run: | + get-childitem -recurse Import-Module './Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; Update-M365DSCModule - name: Get Permissions List shell: pwsh run: | - get-childitem -recurse Import-Module './Tests/TestHarness.psm1' -Force; $permissions = Get-M365DSCAllGraphPermissionsList $permission - join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' From fe972ff64937baa10da3763bee97b73f34a2fb60 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 15:57:33 -0400 Subject: [PATCH 109/273] Update Scheduled - Generate Permission List.yml --- .../workflows/Scheduled - Generate Permission List.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index d74d9d99f3..7995b6eb71 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -1,4 +1,4 @@ -name: Generate Permissions List + name: Generate Permissions List on: [push, pull_request] jobs: @@ -15,10 +15,14 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Files + shell: pwsh + run: | + $results = get-childitem -recurse | Out-String + Write-Host $results - name: Install Dependencies shell: pwsh run: | - get-childitem -recurse Import-Module './Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; Update-M365DSCModule - name: Get Permissions List From 0072fb3233cd4f554bcbbeef115587296df6cf57 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 16:01:05 -0400 Subject: [PATCH 110/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 7995b6eb71..74ebceb3fb 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -1,4 +1,4 @@ - name: Generate Permissions List +name: Generate Permissions List on: [push, pull_request] jobs: From 76d979f602ff1dd357d39be52d3dc8a39fa91fd7 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 17:04:57 -0400 Subject: [PATCH 111/273] Update Scheduled - Generate Permission List.yml --- .../Scheduled - Generate Permission List.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 74ebceb3fb..38a52d58b0 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -1,5 +1,5 @@ name: Generate Permissions List -on: [push, pull_request] +on: [push] jobs: # This workflow contains a single job called "build" @@ -15,18 +15,13 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Get Files - shell: pwsh - run: | - $results = get-childitem -recurse | Out-String - Write-Host $results - name: Install Dependencies - shell: pwsh + shell: powershell run: | Import-Module './Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; Update-M365DSCModule - name: Get Permissions List - shell: pwsh + shell: powershell run: | Import-Module './Tests/TestHarness.psm1' -Force; $permissions = Get-M365DSCAllGraphPermissionsList From ee9d89433b9ee8469d09df95220ca9b78a74f56f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 17:06:49 -0400 Subject: [PATCH 112/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 38a52d58b0..1e024b613b 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -15,6 +15,9 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout Repository + uses: actions/checkout@v3 + - name: Install Dependencies shell: powershell run: | From 870ef0c17ec92ca2cb67600fd0d97dde9d692fc5 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 17:09:04 -0400 Subject: [PATCH 113/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 1e024b613b..0eedd7082b 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -21,7 +21,7 @@ jobs: - name: Install Dependencies shell: powershell run: | - Import-Module './Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; + Import-Module './Modules/Microsoft365DSC/Microsoft365DSC.psd1' -Force; Update-M365DSCModule - name: Get Permissions List shell: powershell From 1c9bea17df79208b855cd623d386b4518c60eaee Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 17:11:34 -0400 Subject: [PATCH 114/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 0eedd7082b..29c24b3b05 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -21,7 +21,8 @@ jobs: - name: Install Dependencies shell: powershell run: | - Import-Module './Modules/Microsoft365DSC/Microsoft365DSC.psd1' -Force; + Import-Module './Modules/Microsoft365DSC/Microsoft365DSC.psd1' -Force; + Import-Module './Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1' -Force; Update-M365DSCModule - name: Get Permissions List shell: powershell From 149cd55a2e7bed35708aff9bc352b13155d4708d Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 11 Jul 2024 17:14:18 -0400 Subject: [PATCH 115/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 29c24b3b05..8d44bc8a10 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -29,7 +29,7 @@ jobs: run: | Import-Module './Tests/TestHarness.psm1' -Force; $permissions = Get-M365DSCAllGraphPermissionsList - $permission - join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' + $permission -join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' - name: Commit Permissions List shell: powershell run: | From 92163c38442f8686de4ad5f1ef92a8207930d45d Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 11 Jul 2024 23:25:57 +0200 Subject: [PATCH 116/273] Do not throw if configuration is empty during report generation --- CHANGELOG.md | 7 +++++++ Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..ccfabcca8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCReport + * Changes behaviour to not throw on empty configuration during report generation. + FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) + FIXES [#4505](https://github.com/microsoft/Microsoft365DSC/issues/4505) + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 index a92596eb70..d35881b001 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 @@ -633,7 +633,7 @@ function New-M365DSCReportFromConfiguration } else { - throw "Parsed content was null." + Write-Warning -Message "Parsed content was null. No report was generated." } } From 60a97b1173af5da470d40927d377a7c24a06255a Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 11 Jul 2024 21:49:11 +0000 Subject: [PATCH 117/273] Updated Graph Permissions List --- Tests/QA/Graph.PermissionList.txt | Bin 0 -> 6 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Tests/QA/Graph.PermissionList.txt diff --git a/Tests/QA/Graph.PermissionList.txt b/Tests/QA/Graph.PermissionList.txt new file mode 100644 index 0000000000000000000000000000000000000000..49cc8ef0e116cef009fe0bd72473a964bbd07f9b GIT binary patch literal 6 NcmezWkC%aq0RRg=0u=xN literal 0 HcmV?d00001 From 943785706258ee4d2dcbbc3391f73f06a38ce781 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 12 Jul 2024 06:44:13 -0400 Subject: [PATCH 118/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 8d44bc8a10..3d122e6c3c 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -29,7 +29,7 @@ jobs: run: | Import-Module './Tests/TestHarness.psm1' -Force; $permissions = Get-M365DSCAllGraphPermissionsList - $permission -join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' + $permissions -join ',' | Out-File '.\Tests\QA\Graph.PermissionList.txt' - name: Commit Permissions List shell: powershell run: | From 1938d0a4a552138dfe39a1fe25cf902aa95d1aa8 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Fri, 12 Jul 2024 11:20:05 +0000 Subject: [PATCH 119/273] Updated Graph Permissions List --- Tests/QA/Graph.PermissionList.txt | Bin 6 -> 5900 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Tests/QA/Graph.PermissionList.txt b/Tests/QA/Graph.PermissionList.txt index 49cc8ef0e116cef009fe0bd72473a964bbd07f9b..f2a8640678c23b6d93a732cdad679f8a59ea0cf7 100644 GIT binary patch literal 5900 zcmcIo+fLg+5S`~r{S)A&YTr$u6;cr>f%0tP5F&D`?Ox#H+nzIv@tVxy^+FZpX79{7 zJNNb9KbcJNnn{J%7~el-fzMxZp#O3y@GFxgUVHfNTYDuXsl@#@k4ozWCNKS zFrDK{!`+P1Z1YdasKjZ*3!Luv^P8FW-?|1~1$xd$!zL-=U}z7c;QtAjOc4_`UgUBO%QUe@rmQclE1^6YVLk1b zt}B(HvnH!EqnZ3(vSdHYeti~G<|Ms2*LuQyKF7aOYqQHUGW&unE*9EY4r$|#*nirU zZPXKO_kN$IQ^n4~k)5Q;_z6(x@h!Y(=dh19Oh*c%3{19(Om<~c7!2!8eb$N5mcr8a zM4>&QiHI~W#_3C8I!15H0`tu<3 zZ=;7-#c5?{n`$L?j0>$vt~Q2Z<2h!m4x16XK(2Mz-l28h(sYcP$*xmtZEfst`NYCW zk+xW{YI6$N!e1lxAZP3urZxW#E!I61Sa&V`C+HTg8gr-jkMjYunb%7*O5$ZKM9yqC z&^-m(RBd~u5qXEJoVYmSSr#28XCa?qKkSk0(hpu-T4?=ihalwG8K+TV7eEh9TOrh! z<-<%|wW)#2ybte_RfW@+V^+yNYNqRinKJHH9os*S`>v)V_<0QmJSk4$+i&o3c)AE_ z`K&Rr3dBZ8>Qs^31k0(nmJjktKFSFgabl!hmxJtb0Uib3mMuAT@l@m{>#jx9*IV8_ z2aY=z+I2j9-#X#>J*j&h-a|dGkh+}g=MQnR|AP-t54YgW$H#aYHR<_Qf zoJ()v%>tE|E4$u%z*Y9r43ke=XWv45*RDfwjx`?U*x9x2&Q Date: Fri, 12 Jul 2024 08:11:01 -0400 Subject: [PATCH 120/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index 3d122e6c3c..dd757bd56f 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -1,5 +1,7 @@ name: Generate Permissions List -on: [push] +on: + schedule: + - cron: "0 0 * * *" jobs: # This workflow contains a single job called "build" From 60194b35fa50600542888bd2531ea61ab819412c Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 12 Jul 2024 08:16:32 -0400 Subject: [PATCH 121/273] Update Microsoft365DSC.SettingsJson.Tests.ps1 --- Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 b/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 index 83d7fe119d..06b77a0418 100644 --- a/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 +++ b/Tests/QA/Microsoft365DSC.SettingsJson.Tests.ps1 @@ -17,7 +17,8 @@ Describe -Name 'Successfully import Settings.json files' { Describe -Name 'Successfully validate all used permissions in Settings.json files ' { BeforeAll { - + $permissionsFile = Join-Path -Path $PSScriptRoot -ChildPath '..\..\Tests\QA\Graph.PermissionList.txt' + $roles = (Get-Content $permissionsFile -Raw).Split(',') } It "Permissions used in settings.json file for '' should exist" -TestCases $settingsFiles { From f28496555e1a5f9324661d6eaeaf33b4f34d3efa Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 24 May 2024 16:31:10 +0200 Subject: [PATCH 122/273] Add Intune Disk Encryption Resource for Windows --- CHANGELOG.md | 10 + .../MSFT_IntuneDiskEncryptionWindows10.psm1 | 1417 +++++++++++++++++ ...T_IntuneDiskEncryptionWindows10.schema.mof | 83 + .../readme.md | 6 + .../settings.json | 29 + .../1-Create.ps1 | 33 + .../2-Update.ps1 | 33 + .../3-Remove.ps1 | 25 + .../Modules/M365DSCDRGUtil.psm1 | 330 ++-- .../M365DSCResourceGenerator.psm1 | 13 +- ResourceGenerator/Module.Template.psm1 | 4 + ...SC.IntuneDiskEncryptionWindows10.Tests.ps1 | 541 +++++++ 12 files changed, 2380 insertions(+), 144 deletions(-) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDiskEncryptionWindows10.Tests.ps1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..a4ac6363ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneDiskEncryptionWindows10 + * Initial Release + FIXES [#4050](https://github.com/microsoft/Microsoft365DSC/issues/4050) +* M365DSCDRGUtil + * Fixes an issue with nested and duplicate settings in the settings catalog +* M365DSCResourceGenerator + * Update Intune resource generation. + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.psm1 new file mode 100644 index 0000000000..36c41b8e6a --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.psm1 @@ -0,0 +1,1417 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RequireDeviceEncryption, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EncryptionMethodWithXts_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsOsDropDown_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsFdvDropDown_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsRdvDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $IdentificationField_Name, + + [Parameter()] + [ValidateLength(0, 260)] + [System.String] + $IdentificationField, + + [Parameter()] + [ValidateLength(0, 260)] + [System.String] + $SecIdentificationField, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $AllowWarningForOtherDiskEncryption, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $AllowStandardUserEncryption, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $ConfigureRecoveryPasswordRotation, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $OSEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $ConfigureAdvancedStartup_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMStartupKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMPINKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $ConfigureNonTPMStartupKeyUsage_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigurePINUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $MinimumPINLength_Name, + + [Parameter()] + [ValidateRange(4, 20)] + [System.Int32] + $MinPINLength, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnhancedPIN_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $DisallowStandardUsersCanChangePIN_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnablePreBootPinExceptionOnDECapableDevice_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnablePrebootInputProtectorsOnSlates_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSRecoveryUsage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSRequireActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $OSRecoveryPasswordUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSHideRecoveryPage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSAllowDRA_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $OSRecoveryKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('1', '2')] + [System.String] + $OSActiveDirectoryBackupDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $PrebootRecoveryInfo_Name, + + [Parameter()] + [ValidateSet('0', '1', '2', '3')] + [System.String] + $PrebootRecoveryInfoDropDown_Name, + + [Parameter()] + [ValidateLength(0, 500)] + [System.String] + $RecoveryUrl_Input, + + [Parameter()] + [ValidateLength(0, 900)] + [System.String] + $RecoveryMessage_Input, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $FDVEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVRecoveryUsage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVHideRecoveryPage_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $FDVRecoveryPasswordUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVRequireActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVAllowDRA_Name, + + [Parameter()] + [ValidateSet('1', '2')] + [System.String] + $FDVActiveDirectoryBackupDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $FDVRecoveryKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVDenyWriteAccess_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVConfigureBDE, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVAllowBDE_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $RDVEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVDisableBDE_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVDenyWriteAccess_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVCrossOrg, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + try + { + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + + $templateReferenceId = '46ddfc50-d10f-4867-b852-9434254b3bff_1' + $getValue = $null + #region resource generator code + $getValue = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Id -ErrorAction SilentlyContinue + + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Disk Encryption for Windows10 with Id {$Id}" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $getValue = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName' and templateReference/TemplateId eq '$templateReferenceId'" ` + -ErrorAction SilentlyContinue + } + } + #endregion + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Disk Encryption for Windows10 with Name {$DisplayName}." + return $nullResult + } + $Id = $getValue.Id + Write-Verbose -Message "An Intune Disk Encryption for Windows10 with Id {$Id} and Name {$DisplayName} was found" + + # Retrieve policy specific settings + [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` + -DeviceManagementConfigurationPolicyId $Id ` + -ExpandProperty 'settingDefinitions' ` + -ErrorAction Stop + + $policySettings = @{} + $policySettings = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $policySettings + + $results = @{ + #region resource generator code + Description = $getValue.Description + DisplayName = $getValue.Name + RoleScopeTagIds = $getValue.RoleScopeTagIds + Id = $getValue.Id + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + #endregion + } + $results += $policySettings + + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Id + $assignmentResult = @() + if ($assignmentsValues.Count -gt 0) + { + $assignmentResult += ConvertFrom-IntunePolicyAssignment -Assignments $assignmentsValues -IncludeDeviceFilter $true + } + $results.Add('Assignments', $assignmentResult) + + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RequireDeviceEncryption, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EncryptionMethodWithXts_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsOsDropDown_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsFdvDropDown_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsRdvDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $IdentificationField_Name, + + [Parameter()] + [ValidateLength(0, 260)] + [System.String] + $IdentificationField, + + [Parameter()] + [ValidateLength(0, 260)] + [System.String] + $SecIdentificationField, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $AllowWarningForOtherDiskEncryption, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $AllowStandardUserEncryption, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $ConfigureRecoveryPasswordRotation, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $OSEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $ConfigureAdvancedStartup_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMStartupKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMPINKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $ConfigureNonTPMStartupKeyUsage_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigurePINUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $MinimumPINLength_Name, + + [Parameter()] + [ValidateRange(4, 20)] + [System.Int32] + $MinPINLength, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnhancedPIN_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $DisallowStandardUsersCanChangePIN_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnablePreBootPinExceptionOnDECapableDevice_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnablePrebootInputProtectorsOnSlates_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSRecoveryUsage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSRequireActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $OSRecoveryPasswordUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSHideRecoveryPage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSAllowDRA_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $OSRecoveryKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('1', '2')] + [System.String] + $OSActiveDirectoryBackupDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $PrebootRecoveryInfo_Name, + + [Parameter()] + [ValidateSet('0', '1', '2', '3')] + [System.String] + $PrebootRecoveryInfoDropDown_Name, + + [Parameter()] + [ValidateLength(0, 500)] + [System.String] + $RecoveryUrl_Input, + + [Parameter()] + [ValidateLength(0, 900)] + [System.String] + $RecoveryMessage_Input, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $FDVEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVRecoveryUsage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVHideRecoveryPage_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $FDVRecoveryPasswordUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVRequireActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVAllowDRA_Name, + + [Parameter()] + [ValidateSet('1', '2')] + [System.String] + $FDVActiveDirectoryBackupDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $FDVRecoveryKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVDenyWriteAccess_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVConfigureBDE, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVAllowBDE_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $RDVEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVDisableBDE_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVDenyWriteAccess_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVCrossOrg, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentInstance = Get-TargetResource @PSBoundParameters + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + + $templateReferenceId = '46ddfc50-d10f-4867-b852-9434254b3bff_1' + $platforms = 'windows10' + $technologies = 'mdm' + + if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') + { + Write-Verbose -Message "Creating an Intune Disk Encryption for Windows10 with Name {$DisplayName}" + $BoundParameters.Remove("Assignments") | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReference = @{ templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } + + #region resource generator code + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters + + if ($policy.Id) + { + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + } + #endregion + } + elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating the Intune Disk Encryption for Windows10 with Id {$($currentInstance.Id)}" + $BoundParameters.Remove("Assignments") | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + Update-IntuneDeviceConfigurationPolicy ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Name $DisplayName ` + -Description $Description ` + -TemplateReferenceId $templateReferenceId ` + -Platforms $platforms ` + -Technologies $technologies ` + -Settings $settings + + #region resource generator code + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + #endregion + } + elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Removing the Intune Disk Encryption for Windows10 with Id {$($currentInstance.Id)}" + #region resource generator code + Remove-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $currentInstance.Id + #endregion + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RequireDeviceEncryption, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EncryptionMethodWithXts_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsOsDropDown_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsFdvDropDown_Name, + + [Parameter()] + [ValidateSet('3', '4', '6', '7')] + [System.String] + $EncryptionMethodWithXtsRdvDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $IdentificationField_Name, + + [Parameter()] + [ValidateLength(0, 260)] + [System.String] + $IdentificationField, + + [Parameter()] + [ValidateLength(0, 260)] + [System.String] + $SecIdentificationField, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $AllowWarningForOtherDiskEncryption, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $AllowStandardUserEncryption, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $ConfigureRecoveryPasswordRotation, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $OSEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $ConfigureAdvancedStartup_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMStartupKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMPINKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigureTPMUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $ConfigureNonTPMStartupKeyUsage_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $ConfigurePINUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $MinimumPINLength_Name, + + [Parameter()] + [ValidateRange(4, 20)] + [System.Int32] + $MinPINLength, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnhancedPIN_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $DisallowStandardUsersCanChangePIN_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnablePreBootPinExceptionOnDECapableDevice_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $EnablePrebootInputProtectorsOnSlates_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSRecoveryUsage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSRequireActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $OSRecoveryPasswordUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSHideRecoveryPage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $OSAllowDRA_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $OSRecoveryKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('1', '2')] + [System.String] + $OSActiveDirectoryBackupDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $PrebootRecoveryInfo_Name, + + [Parameter()] + [ValidateSet('0', '1', '2', '3')] + [System.String] + $PrebootRecoveryInfoDropDown_Name, + + [Parameter()] + [ValidateLength(0, 500)] + [System.String] + $RecoveryUrl_Input, + + [Parameter()] + [ValidateLength(0, 900)] + [System.String] + $RecoveryMessage_Input, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $FDVEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVRecoveryUsage_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVHideRecoveryPage_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $FDVRecoveryPasswordUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVRequireActiveDirectoryBackup_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVAllowDRA_Name, + + [Parameter()] + [ValidateSet('1', '2')] + [System.String] + $FDVActiveDirectoryBackupDropDown_Name, + + [Parameter()] + [ValidateSet('2', '1', '0')] + [System.String] + $FDVRecoveryKeyUsageDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $FDVDenyWriteAccess_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVConfigureBDE, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVAllowBDE_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVEncryptionType_Name, + + [Parameter()] + [ValidateSet('0', '1', '2')] + [System.String] + $RDVEncryptionTypeDropDown_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVDisableBDE_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVDenyWriteAccess_Name, + + [Parameter()] + [ValidateSet('0', '1')] + [System.String] + $RDVCrossOrg, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + Write-Verbose -Message "Testing configuration of the Intune Disk Encryption for Windows10 with Id {$Id} and Name {$DisplayName}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } + } + + if ($CurrentValues.Ensure -ne $Ensure) + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + $testResult = $true + + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) + { + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + + if (-not $testResult) + { + break + } + + $ValuesToCheck.Remove($key) | Out-Null + } + } + + $ValuesToCheck.Remove('Id') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" + + if ($testResult) + { + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + } + + Write-Verbose -Message "Test-TargetResource returned $testResult" + + return $testResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + #region resource generator code + $policyTemplateID = "46ddfc50-d10f-4867-b852-9434254b3bff_1" + [array]$getValue = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter $Filter ` + -All ` + -ErrorAction Stop | Where-Object ` + -FilterScript { + $_.TemplateReference.TemplateId -eq $policyTemplateID + } + #endregion + + $i = 1 + $dscContent = '' + if ($getValue.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $getValue) + { + $displayedKey = $config.Id + if (-not [String]::IsNullOrEmpty($config.displayName)) + { + $displayedKey = $config.displayName + } + elseif (-not [string]::IsNullOrEmpty($config.name)) + { + $displayedKey = $config.name + } + Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline + $params = @{ + Id = $config.Id + DisplayName = $config.Name + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + if ($Results.Assignments) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) + { + $Results.Assignments = $complexTypeStringResult + } + else + { + $Results.Remove('Assignments') | Out-Null + } + } + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true + } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof new file mode 100644 index 0000000000..5af5d795a8 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof @@ -0,0 +1,83 @@ +[ClassVersion("1.0.0.0")] +class MSFT_DeviceManagementConfigurationPolicyAssignments +{ + [Write, Description("The type of the target assignment."), ValueMap{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}, Values{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}] String dataType; + [Write, Description("The type of filter of the target assignment i.e. Exclude or Include. Possible values are:none, include, exclude."), ValueMap{"none","include","exclude"}, Values{"none","include","exclude"}] String deviceAndAppManagementAssignmentFilterType; + [Write, Description("The Id of the filter for the target assignment.")] String deviceAndAppManagementAssignmentFilterId; + [Write, Description("The group Id that is the target of the assignment.")] String groupId; + [Write, Description("The group Display Name that is the target of the assignment.")] String groupDisplayName; + [Write, Description("The collection Id that is the target of the assignment.(ConfigMgr)")] String collectionId; +}; + +[ClassVersion("1.0.0.0"), FriendlyName("IntuneDiskEncryptionWindows10")] +class MSFT_IntuneDiskEncryptionWindows10 : OMI_BaseResource +{ + [Write, Description("Policy description")] String Description; + [Key, Description("Policy name")] String DisplayName; + [Write, Description("List of Scope Tags for this Entity instance.")] String RoleScopeTagIds[]; + [Write, Description("The unique identifier for an entity. Read-only.")] String Id; + [Write, Description("Require Device Encryption (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RequireDeviceEncryption; + [Write, Description("Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later) (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String EncryptionMethodWithXts_Name; + [Write, Description("Select the encryption method for operating system drives: (3: AES-CBC 128-bit, 4: AES-CBC 256-bit, 6: XTS-AES 128-bit (default), 7: XTS-AES 256-bit)"), ValueMap{"3", "4", "6", "7"}, Values{"3", "4", "6", "7"}] String EncryptionMethodWithXtsOsDropDown_Name; + [Write, Description("Select the encryption method for fixed data drives: (3: AES-CBC 128-bit, 4: AES-CBC 256-bit, 6: XTS-AES 128-bit (default), 7: XTS-AES 256-bit)"), ValueMap{"3", "4", "6", "7"}, Values{"3", "4", "6", "7"}] String EncryptionMethodWithXtsFdvDropDown_Name; + [Write, Description("Select the encryption method for removable data drives: (3: AES-CBC 128-bit (default), 4: AES-CBC 256-bit, 6: XTS-AES 128-bit, 7: XTS-AES 256-bit)"), ValueMap{"3", "4", "6", "7"}, Values{"3", "4", "6", "7"}] String EncryptionMethodWithXtsRdvDropDown_Name; + [Write, Description("Provide the unique identifiers for your organization (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String IdentificationField_Name; + [Write, Description("BitLocker identification field: (Device)")] String IdentificationField; + [Write, Description("Allowed BitLocker identification field: (Device)")] String SecIdentificationField; + [Write, Description("Allow Warning For Other Disk Encryption (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String AllowWarningForOtherDiskEncryption; + [Write, Description("Allow Standard User Encryption (0: This is the default, when the policy is not set. If current logged on user is a standard user, 'RequireDeviceEncryption' policy will not try to enable encryption on any drive., 1: 'RequireDeviceEncryption' policy will try to enable encryption on all fixed drives even if a current logged in user is standard user.)"), ValueMap{"0", "1"}, Values{"0", "1"}] String AllowStandardUserEncryption; + [Write, Description("Configure Recovery Password Rotation (0: Refresh off (default), 1: Refresh on for Azure AD-joined devices, 2: Refresh on for both Azure AD-joined and hybrid-joined devices)"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] String ConfigureRecoveryPasswordRotation; + [Write, Description("Enforce drive encryption type on operating system drives (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String OSEncryptionType_Name; + [Write, Description("Select the encryption type: (Device) (0: Allow user to choose (default), 1: Full encryption, 2: Used Space Only encryption)"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] String OSEncryptionTypeDropDown_Name; + [Write, Description("Require additional authentication at startup (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String ConfigureAdvancedStartup_Name; + [Write, Description("Configure TPM startup key: (2: Allow startup key with TPM, 1: Require startup key with TPM, 0: Do not allow startup key with TPM)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String ConfigureTPMStartupKeyUsageDropDown_Name; + [Write, Description("Configure TPM startup key and PIN: (2: Allow startup key and PIN with TPM, 1: Require startup key and PIN with TPM, 0: Do not allow startup key and PIN with TPM)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String ConfigureTPMPINKeyUsageDropDown_Name; + [Write, Description("Configure TPM startup: (2: Allow TPM, 1: Require TPM, 0: Do not allow TPM)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String ConfigureTPMUsageDropDown_Name; + [Write, Description("Allow BitLocker without a compatible TPM (requires a password or a startup key on a USB flash drive) (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String ConfigureNonTPMStartupKeyUsage_Name; + [Write, Description("Configure TPM startup PIN: (2: Allow startup PIN with TPM, 1: Require startup PIN with TPM, 0: Do not allow startup PIN with TPM)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String ConfigurePINUsageDropDown_Name; + [Write, Description("Configure minimum PIN length for startup (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String MinimumPINLength_Name; + [Write, Description("Minimum characters:")] SInt32 MinPINLength; + [Write, Description("Allow enhanced PINs for startup (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String EnhancedPIN_Name; + [Write, Description("Disallow standard users from changing the PIN or password (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String DisallowStandardUsersCanChangePIN_Name; + [Write, Description("Allow devices compliant with InstantGo or HSTI to opt out of pre-boot PIN. (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String EnablePreBootPinExceptionOnDECapableDevice_Name; + [Write, Description("Enable use of BitLocker authentication requiring preboot keyboard input on slates (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String EnablePrebootInputProtectorsOnSlates_Name; + [Write, Description("Choose how BitLocker-protected operating system drives can be recovered (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String OSRecoveryUsage_Name; + [Write, Description("Do not enable BitLocker until recovery information is stored to AD DS for operating system drives (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String OSRequireActiveDirectoryBackup_Name; + [Write, Description("Save BitLocker recovery information to AD DS for operating system drives (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String OSActiveDirectoryBackup_Name; + [Write, Description("Configure user storage of BitLocker recovery information: (2: Allow 48-digit recovery password, 1: Require 48-digit recovery password, 0: Do not allow 48-digit recovery password)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String OSRecoveryPasswordUsageDropDown_Name; + [Write, Description("Omit recovery options from the BitLocker setup wizard (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String OSHideRecoveryPage_Name; + [Write, Description("Allow data recovery agent (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String OSAllowDRA_Name; + [Write, Description("Configure OS recovery key usage: (2: Allow 256-bit recovery key, 1: Require 256-bit recovery key, 0: Do not allow 256-bit recovery key)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String OSRecoveryKeyUsageDropDown_Name; + [Write, Description("Configure storage of BitLocker recovery information to AD DS: (1: Store recovery passwords and key packages, 2: Store recovery passwords only)"), ValueMap{"1", "2"}, Values{"1", "2"}] String OSActiveDirectoryBackupDropDown_Name; + [Write, Description("Configure pre-boot recovery message and URL (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String PrebootRecoveryInfo_Name; + [Write, Description("Select an option for the pre-boot recovery message: (0: , 1: Use default recovery message and URL, 2: Use custom recovery message, 3: Use custom recovery URL)"), ValueMap{"0", "1", "2", "3"}, Values{"0", "1", "2", "3"}] String PrebootRecoveryInfoDropDown_Name; + [Write, Description("Custom recovery URL option:")] String RecoveryUrl_Input; + [Write, Description("Custom recovery message option:")] String RecoveryMessage_Input; + [Write, Description("Enforce drive encryption type on fixed data drives (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVEncryptionType_Name; + [Write, Description("Select the encryption type: (Device) (0: Allow user to choose (default), 1: Full encryption, 2: Used Space Only encryption)"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] String FDVEncryptionTypeDropDown_Name; + [Write, Description("Choose how BitLocker-protected fixed drives can be recovered (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVRecoveryUsage_Name; + [Write, Description("Save BitLocker recovery information to AD DS for fixed data drives (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVActiveDirectoryBackup_Name; + [Write, Description("Omit recovery options from the BitLocker setup wizard (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVHideRecoveryPage_Name; + [Write, Description("Configure user storage of BitLocker recovery information: (2: Allow 48-digit recovery password, 1: Require 48-digit recovery password, 0: Do not allow 48-digit recovery password)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String FDVRecoveryPasswordUsageDropDown_Name; + [Write, Description("Do not enable BitLocker until recovery information is stored to AD DS for fixed data drives (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVRequireActiveDirectoryBackup_Name; + [Write, Description("Allow data recovery agent (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVAllowDRA_Name; + [Write, Description("Configure storage of BitLocker recovery information to AD DS: (1: Backup recovery passwords and key packages, 2: Backup recovery passwords only)"), ValueMap{"1", "2"}, Values{"1", "2"}] String FDVActiveDirectoryBackupDropDown_Name; + [Write, Description(" (2: Allow 256-bit recovery key, 1: Require 256-bit recovery key, 0: Do not allow 256-bit recovery key)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String FDVRecoveryKeyUsageDropDown_Name; + [Write, Description("Deny write access to fixed drives not protected by BitLocker (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVDenyWriteAccess_Name; + [Write, Description("Control use of BitLocker on removable drives (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVConfigureBDE; + [Write, Description("Allow users to apply BitLocker protection on removable data drives (Device) (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVAllowBDE_Name; + [Write, Description("Enforce drive encryption type on removable data drives (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVEncryptionType_Name; + [Write, Description("Select the encryption type: (Device) (0: Allow user to choose (default), 1: Full encryption, 2: Used Space Only encryption)"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] String RDVEncryptionTypeDropDown_Name; + [Write, Description("Allow users to suspend and decrypt BitLocker protection on removable data drives (Device) (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVDisableBDE_Name; + [Write, Description("Deny write access to removable drives not protected by BitLocker (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVDenyWriteAccess_Name; + [Write, Description("Do not allow write access to devices configured in another organization (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVCrossOrg; + [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; + [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity; + [Write, Description("Access token used for authentication.")] String AccessTokens[]; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/readme.md new file mode 100644 index 0000000000..6200b8a4ef --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/readme.md @@ -0,0 +1,6 @@ + +# IntuneDiskEncryptionWindows10 + +## Description + +Intune Disk Encryption for Windows10 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json new file mode 100644 index 0000000000..0597c5d0dc --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json @@ -0,0 +1,29 @@ +{ + "resourceName": "IntuneDiskEncryptionWindows10", + "description": "This resource configures an Intune Disk Encryption for Windows10.", + "permissions": { + "graph": { + "delegated": { + "read": [ + { + "name": "DeviceManagementConfiguration.Read.All" + } + ], + "update": [ + + ] + }, + "application": { + "read": [ + { + "name": "DeviceManagementConfiguration.ReadWrite.All" + } + ], + "update": [ + + ] + } + } +} + +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 new file mode 100644 index 0000000000..6b4fec3bcb --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 @@ -0,0 +1,33 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + Node localhost + { + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments { + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.allDevicesAssignmentTarget' + }) + Description = '' + IdentificationField_Name = '1' + IdentificationField = 'IdentificationField' + SecIdentificationField = 'SecIdentificationField' + Ensure = 'Present' + Credential = $Credscredential + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 new file mode 100644 index 0000000000..c67330aaef --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 @@ -0,0 +1,33 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + Node localhost + { + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments { + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.allDevicesAssignmentTarget' + }) + Description = '' + IdentificationField_Name = '1' + IdentificationField = 'IdentificationField' + SecIdentificationField = 'UpdatedSecIdentificationField' # Updated property + Ensure = 'Present' + Credential = $Credscredential + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 new file mode 100644 index 0000000000..6941fe6603 --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 @@ -0,0 +1,25 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + Node localhost + { + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Description = '' + Ensure = 'Absent' + Credential = $Credscredential + } + } +} diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 73d062f5c2..b51f333671 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1500,7 +1500,15 @@ function Get-IntuneSettingCatalogPolicySetting $_.Id -eq $settingInstanceTemplate.SettingDefinitionId -and ` ($_.AdditionalProperties.dependentOn.Count -eq 0 -and $_.AdditionalProperties.options.dependentOn.Count -eq 0) } - $settingName = $settingInstanceTemplate.SettingDefinitionId.split('_') | Select-Object -Last 1 + if ($null -eq $settingDefinition) + { + continue + } + if ($settingDefinition -is [System.Array]) + { + $settingDefinition = $settingDefinition[0] + } + $settingName = $settingDefinition.Name $settingType = $settingInstanceTemplate.AdditionalProperties.'@odata.type'.Replace('InstanceTemplate', 'Instance') $settingInstance.Add('@odata.type', $settingType) if (-not [string]::IsNullOrEmpty($settingInstanceTemplate.settingInstanceTemplateId)) @@ -1598,8 +1606,12 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue { $groupSettingCollectionValue = @{} $groupSettingCollectionValueChildren = @() + $groupSettingCollectionDefinitionChildren = @() - $groupSettingCollectionDefinitionChildren = $SettingTemplates.SettingDefinitions | Where-Object { + $templates = $SettingTemplates | Where-Object { + $_.settingInstanceTemplate.settingDefinitionId -eq $SettingDefinition.RootDefinitionId + } + $groupSettingCollectionDefinitionChildren += $templates.SettingDefinitions | Where-Object { ($_.AdditionalProperties.dependentOn.Count -gt 0 -and $_.AdditionalProperties.dependentOn.parentSettingId.Contains($SettingDefinition.Id)) -or ($_.AdditionalProperties.options.dependentOn.Count -gt 0 -and $_.AdditionalProperties.options.dependentOn.parentSettingId.Contains($SettingDefinition.Id)) } @@ -1610,6 +1622,8 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue $childSettingValueName = $childSettingType.Replace('#microsoft.graph.deviceManagementConfiguration', '').Replace('Instance', 'Value') $childSettingValueType = "#microsoft.graph.deviceManagementConfiguration$($childSettingValueName)" $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.length - 1 ) + $childSettingInstanceTemplate = $SettingTemplates.SettingInstanceTemplate | Where-Object { $_.SettingDefinitionId -eq $childDefinition.Id } + $childSettingValueTemplateId = $childSettingInstanceTemplate.AdditionalProperties."$($childSettingValueName)Template".settingValueTemplateId $childSettingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` -DSCParams $DSCParams ` -SettingDefinition $childDefinition ` @@ -1617,7 +1631,8 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue -SettingName $childSettingName ` -SettingType $childDefinition.AdditionalProperties.'@odata.type' ` -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType + -SettingValueType $childSettingValueType ` + -SettingValueTemplateId $childSettingValueTemplateId if ($childSettingValue.Keys.Count -gt 0) { @@ -1625,6 +1640,10 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue { $childSettingValue.Add('settingDefinitionId', $childDefinition.Id) } + if (-not [string]::IsNullOrEmpty($childSettingInstanceTemplate.settingInstanceTemplateId)) + { + $childSettingValue.Add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $childSettingInstanceTemplate.settingInstanceTemplateId }) + } $childSettingValue.Add('@odata.type', $childSettingType) $groupSettingCollectionValueChildren += $childSettingValue } @@ -1640,11 +1659,18 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue { $choiceSettingValue = @{} $choiceSettingValueChildren = @() + $choiceSettingDefinitionChildren = @() - # Choice settings almost always have children settings, so we need to fetch those - $choiceSettingDefinitionChildren = $SettingTemplates.SettingDefinitions | Where-Object { - ($_.AdditionalProperties.dependentOn.Count -gt 0 -and $_.AdditionalProperties.dependentOn.parentSettingId.Contains($SettingDefinition.Id)) -or - ($_.AdditionalProperties.options.dependentOn.Count -gt 0 -and $_.AdditionalProperties.options.dependentOn.parentSettingId.Contains($SettingDefinition.Id)) + # Choice settings almost always have child settings, so we need to fetch those + if ($null -ne $SettingDefinition) + { + $templates = $SettingTemplates | Where-Object { + $_.settingInstanceTemplate.settingDefinitionId -eq $SettingDefinition.RootDefinitionId + } + $choiceSettingDefinitionChildren += $templates.SettingDefinitions | Where-Object { + ($_.AdditionalProperties.dependentOn.Count -gt 0 -and $_.AdditionalProperties.dependentOn.parentSettingId.Contains($SettingDefinition.Id)) -or + ($_.AdditionalProperties.options.dependentOn.Count -gt 0 -and $_.AdditionalProperties.options.dependentOn.parentSettingId.Contains($SettingDefinition.Id)) + } } foreach ($childDefinition in $choiceSettingDefinitionChildren) { @@ -1653,6 +1679,8 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue $childSettingValueName = $childSettingType.Replace('#microsoft.graph.deviceManagementConfiguration', '').Replace('Instance', 'Value') $childSettingValueType = "#microsoft.graph.deviceManagementConfiguration$($childSettingValueName)" $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.Length - 1 ) + $childSettingInstanceTemplate = $SettingTemplates.SettingInstanceTemplate | Where-Object { $_.SettingDefinitionId -eq $childDefinition.Id } + $childSettingValueTemplateId = $childSettingInstanceTemplate.AdditionalProperties."$($childSettingValueName)Template".settingValueTemplateId $childSettingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` -DSCParams $DSCParams ` -SettingDefinition $childDefinition ` @@ -1660,7 +1688,8 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue -SettingName $childSettingName ` -SettingType $childDefinition.AdditionalProperties.'@odata.type' ` -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType + -SettingValueType $childSettingValueType ` + -SettingValueTemplateId $childSettingValueTemplateId if ($childSettingValue.Keys.Count -gt 0) { @@ -1668,6 +1697,10 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue { $childSettingValue.Add('settingDefinitionId', $childDefinition.Id) } + if (-not [string]::IsNullOrEmpty($childSettingInstanceTemplate.settingInstanceTemplateId)) + { + $childSettingValue.Add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $childSettingInstanceTemplate.settingInstanceTemplateId }) + } $childSettingValue.Add('@odata.type', $childSettingType) $choiceSettingValueChildren += $childSettingValue } @@ -1680,17 +1713,19 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue $choiceSettingValue.Add('children', @()) } - $paramKey = $null - $paramKey = $DSCParams.Keys | Where-Object { $_ -eq $SettingName } - if ($null -eq $paramKey) - { - $paramKey = $SettingName - } + $valueResult = Get-IntuneSettingCatalogPolicySettingDSCValue ` + -SettingName $SettingName ` + -SettingValueType $SettingValueType ` + -SettingTemplates $SettingTemplates ` + -SettingDefinition $SettingDefinition ` + -DSCParams $DSCParams + + $value = $valueResult.Value # If there is a value in the DSC params, we add that to the choice setting - if ($null -ne $DSCParams[$paramKey]) + if ($null -ne $value) { - $value = "$($SettingDefinition.Id)_$($DSCParams[$paramKey])" + $value = $value $choiceSettingValue.Add('value', $value) $odataType = $SettingType.Replace('Definition', 'Value').Replace('Instance', 'Value') $choiceSettingValue.Add('@odata.type', $odataType) @@ -1709,64 +1744,16 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue # SimpleSettingCollections are collections of simple settings, e.g. strings or integers { $_ -eq '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' -or $_ -eq '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionDefinition' } { - [array]$values = @() - # Go over all the values that have not yet been processed - foreach ($key in ($DSCParams.Keys | Where-Object { $_ -notin $global:excludedDscParams })) - { - $matchCombined = $false - $matchesId = $false - $name = $SettingTemplates.SettingDefinitions.Name | Where-Object -FilterScript { $_ -eq $key } - if ($name.Count -ne 1) - { - # Key might have been combined with parent setting, try to split it - if ($key -like "*_*") - { - $parentSettingName = $key.Split('_')[0] - $childSettingName = $key.Replace("$($parentSettingName)_", '') - $parentDefinition = $SettingTemplates.SettingDefinitions | Where-Object { $_.Name -eq $parentSettingName } - $childDefinition = $SettingTemplates.SettingDefinitions | Where-Object { $_.Name -eq $childSettingName -and $_.AdditionalProperties.dependentOn.parentSettingId.Contains($parentDefinition.Id) } - if ($null -ne $parentDefinition -and $null -ne $childDefinition) - { - # Parent was combined with child setting. Since there can be multiple settings with the same Name, we need to check the Id as well - if ($SettingDefinition.Id -eq $childDefinition.Id) - { - $global:excludedDscParams += $key - $matchCombined = $true - } - } - } + $valuesResult = Get-IntuneSettingCatalogPolicySettingDSCValue ` + -SettingName $SettingName ` + -SettingValueType $SettingValueType ` + -SettingTemplates $SettingTemplates ` + -SettingDefinition $SettingDefinition ` + -DSCParams $DSCParams - if (-not $matchCombined) - { - # Parent was not combined, look for the Id - $SettingTemplates.SettingDefinitions | ForEach-Object { - if ($_.Id -notin $global:excludedDefinitionIds -and $_.Name -eq $SettingName -and $_.Id -like "*$key") - { - $global:excludedDefinitionIds += $_.Id - $matchesId = $true - } - } - } - } + $values = $valuesResult.Value + $SettingValueType = $valuesResult.SettingValueType - # If there is exactly one setting with the name, the setting is combined or the id matches, we add the DSC value to the values array and update the real setting value type - if (($name.Count -eq 1 -and $SettingName -eq $key) -or $matchCombined -or $matchesId) - { - if ($SettingValueType -like "*Simple*") - { - if ($DSCParams[$key] -is [System.String[]]) - { - $SettingValueType = "#microsoft.graph.deviceManagementConfigurationStringSettingValue" - } - elseif ($DSCParams[$key] -is [System.Int32[]]) - { - $SettingValueType = "#microsoft.graph.deviceManagementConfigurationIntegerSettingValue" - } - } - $values += $DSCParams[$key] - break - } - } $settingValueCollection = @() foreach ($v in $values) { @@ -1782,69 +1769,16 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue # For all other types, e.g. Integer, String, Boolean, etc., we add the value directly Default { - $value = $null - # Go over all the values that have not yet been processed - foreach ($key in ($DSCParams.Keys | Where-Object { $_ -notin $global:excludedDscParams })) - { - $matchCombined = $false - $matchesId = $false - $name = $SettingTemplates.SettingDefinitions.Name | Where-Object -FilterScript { $_ -eq $key } - if ($name.Count -ne 1) - { - # Key might have been combined with parent setting, try to split it - if ($key -like "*_*") - { - $parentSettingName = $key.Split('_')[0] - $childSettingName = $key.Replace("$($parentSettingName)_", '') - $parentDefinition = $SettingTemplates.SettingDefinitions | Where-Object { $_.Name -eq $parentSettingName } - $childDefinition = $SettingTemplates.SettingDefinitions | Where-Object { $_.Name -eq $childSettingName } - if ($null -ne $parentDefinition -and $null -ne $childDefinition) - { - # Parent was combined with child setting - $global:excludedDscParams += $key - $matchCombined = $true - } - } - - if (-not $matchCombined) - { - # Parent was not combined, look for the id - $SettingTemplates.SettingDefinitions | ForEach-Object { - if ($_.Id -notin $global:excludedDefinitionIds -and $_.Name -eq $SettingName -and $_.Id -like "*$key") - { - $global:excludedDefinitionIds += $_.Id - $matchesId = $true - $SettingDefinition = $_ - } - } - } - } + $valueResult = Get-IntuneSettingCatalogPolicySettingDSCValue ` + -SettingName $SettingName ` + -SettingValueType $SettingValueType ` + -SettingTemplates $SettingTemplates ` + -SettingDefinition $SettingDefinition ` + -DSCParams $DSCParams - # If there is exactly one setting with the name, the setting is combined or the id matches, we get the DSC value update the real setting value type - if (($name.Count -eq 1 -and $SettingName -eq $key) -or $matchCombined -or $matchesId) - { - if ($SettingValueType -like "*Simple*") - { - if ($DSCParams[$key] -is [System.String]) - { - $SettingValueType = "#microsoft.graph.deviceManagementConfigurationStringSettingValue" - } - elseif ($DSCParams[$key] -is [System.Int32]) - { - $SettingValueType = "#microsoft.graph.deviceManagementConfigurationIntegerSettingValue" - } - } - if ($SettingValueType -like "*Simple*" -or $SettingValueType -in @("#microsoft.graph.deviceManagementConfigurationIntegerSettingValue", "#microsoft.graph.deviceManagementConfigurationStringSettingValue")) - { - $value = $DSCParams[$key] - } - else - { - $value = "$($SettingDefinition.Id)_$($DSCParams[$key])" - } - break - } - } + $value = $valueResult.Value + $SettingValueType = $valueResult.SettingValueType + $SettingDefinition = $valueResult.SettingDefinition if ($null -eq $value) { @@ -1869,6 +1803,134 @@ function Get-IntuneSettingCatalogPolicySettingInstanceValue return $settingValuesToReturn } +function Get-IntuneSettingCatalogPolicySettingDSCValue +{ + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $SettingName, + + [Parameter()] + [System.String] + $SettingValueType = "", + + [Parameter(Mandatory = $true)] + [System.Array] + $SettingTemplates, + + [Parameter()] + $SettingDefinition, + + [Parameter(Mandatory = $true)] + [System.Collections.Hashtable] + $DSCParams + ) + + # Go over all the values that have not yet been processed + foreach ($key in ($DSCParams.Keys | Where-Object { $_ -notin $global:excludedDscParams })) + { + $matchCombined = $false + $matchesId = $false + $settingDefinitions = $SettingTemplates.SettingDefinitions ` + | Where-Object -FilterScript { $_.Name -eq $key } + + # Edge case where the same setting is defined twice in the template, with the same name and id + if ($settingDefinitions.Count -eq 2) + { + if ($settingDefinitions[0].Id -eq $settingDefinitions[1].Id -and ` + $settingDefinitions[0].Name -eq $settingDefinitions[1].Name) + { + $settingDefinitions = $settingDefinitions[0] + } + } + $name = $settingDefinitions.Name + + if ($name.Count -ne 1) + { + # Key might have been combined with parent setting, try to split it + if ($key -like "*_*") + { + $parentSettingName = $key.Split('_')[0] + $parentDefinition = $SettingTemplates.SettingDefinitions | Where-Object -FilterScript { $_.Name -eq $parentSettingName } + $childDefinition = $SettingTemplates.SettingDefinitions | Where-Object -FilterScript { + $_.Name -eq $SettingName -and + (($_.AdditionalProperties.dependentOn.Count -gt 0 -and $_.AdditionalProperties.dependentOn.parentSettingId.Contains($parentDefinition.Id)) -or + ($_.AdditionalProperties.options.dependentOn.Count -gt 0 -and $_.AdditionalProperties.options.dependentOn.parentSettingId.Contains($parentDefinition.Id)) + ) + } + if ($null -ne $parentDefinition -and $null -ne $childDefinition -and $childDefinition.Id -eq $SettingDefinition.Id) + { + # Parent was combined with child setting. Since there can be multiple settings with the same Name, we need to check the Id as well + if ($SettingDefinition.Id -eq $childDefinition.Id) + { + $global:excludedDscParams += $key + $matchCombined = $true + } + } + } + + if (-not $matchCombined) + { + # Parent was not combined, look for the id + $SettingTemplates.SettingDefinitions | ForEach-Object { + if ($_.Id -notin $global:excludedDefinitionIds -and $_.Name -eq $SettingName -and $_.Id -like "*$key") + { + $global:excludedDefinitionIds += $_.Id + $global:excludedDscParams += $key + $matchesId = $true + $SettingDefinition = $_ + } + } + } + } + + # If there is exactly one setting with the name, the setting is combined or the id matches, we get the DSC value update the real setting value type + if (($name.Count -eq 1 -and $SettingName -eq $key) -or $matchCombined -or $matchesId) + { + $isArray = $false + if ($SettingValueType -like "*Simple*") + { + if ($DSCParams[$key] -is [System.String]) + { + $SettingValueType = "#microsoft.graph.deviceManagementConfigurationStringSettingValue" + } + elseif ($DSCParams[$key] -is [System.Int32]) + { + $SettingValueType = "#microsoft.graph.deviceManagementConfigurationIntegerSettingValue" + } + elseif ($DSCParams[$key] -is [System.String[]]) + { + $SettingValueType = "#microsoft.graph.deviceManagementConfigurationStringSettingValue" + $isArray = $true + } + elseif ($DSCParams[$key] -is [System.Int32[]]) + { + $SettingValueType = "#microsoft.graph.deviceManagementConfigurationIntegerSettingValue" + $isArray = $true + } + } + if ($SettingValueType -like "*Simple*" -or $SettingValueType -in @("#microsoft.graph.deviceManagementConfigurationIntegerSettingValue", "#microsoft.graph.deviceManagementConfigurationStringSettingValue")) + { + return @{ + SettingDefinition = $SettingDefinition + SettingValueType = $SettingValueType + Value = if ($isArray) { ,$DSCParams[$key] } else { $DSCParams[$key] } + } + } + else + { + return @{ + SettingDefinition = $SettingDefinition + SettingValueType = $SettingValueType + Value = "$($SettingDefinition.Id)_$($DSCParams[$key])" + } + } + break + } + } +} + function Export-IntuneSettingCatalogPolicySettings { [CmdletBinding()] diff --git a/ResourceGenerator/M365DSCResourceGenerator.psm1 b/ResourceGenerator/M365DSCResourceGenerator.psm1 index 71a21e7ade..1cc3f8df17 100644 --- a/ResourceGenerator/M365DSCResourceGenerator.psm1 +++ b/ResourceGenerator/M365DSCResourceGenerator.psm1 @@ -731,25 +731,18 @@ function New-M365DSCResource $AssignmentsRemove += " `$BoundParameters.Remove(`"Assignments`") | Out-Null`r`n" - $AssignmentsNew += " `$assignmentsHash = @()`r`n" - $AssignmentsNew += " foreach (`$assignment in `$Assignments)`r`n" - $AssignmentsNew += " {`r`n" - $AssignmentsNew += " `$assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject `$assignment`r`n" - $AssignmentsNew += " }`r`n" + $AssignmentsNew += " " $AssignmentsNew += "`r`n" $AssignmentsNew += " if (`$policy.Id)`r`n" $AssignmentsNew += " {`r`n" + $AssignmentsNew += " `$assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:`$true -Assignments `$Assignments`r`n" $AssignmentsNew += " Update-DeviceConfigurationPolicyAssignment ```r`n" $AssignmentsNew += " -DeviceConfigurationPolicyId `$policy.Id ```r`n" $AssignmentsNew += " -Targets `$assignmentsHash ```r`n" $AssignmentsNew += " -Repository '$repository'`r`n" $AssignmentsNew += " }`r`n" - $AssignmentsUpdate += " `$assignmentsHash = @()`r`n" - $AssignmentsUpdate += " foreach (`$assignment in `$Assignments)`r`n" - $AssignmentsUpdate += " {`r`n" - $AssignmentsUpdate += " `$assignmentsHash += Get-M365DSCDRGComplexTypeToHashtable -ComplexObject `$assignment`r`n" - $AssignmentsUpdate += " }`r`n" + $AssignmentsUpdate += " `$assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:`$true -Assignments `$Assignments`r`n" $AssignmentsUpdate += " Update-DeviceConfigurationPolicyAssignment ```r`n" $AssignmentsUpdate += " -DeviceConfigurationPolicyId `$currentInstance.Id ```r`n" $AssignmentsUpdate += " -Targets `$assignmentsHash ```r`n" diff --git a/ResourceGenerator/Module.Template.psm1 b/ResourceGenerator/Module.Template.psm1 index 132197bba8..b389ecfab3 100644 --- a/ResourceGenerator/Module.Template.psm1 +++ b/ResourceGenerator/Module.Template.psm1 @@ -370,6 +370,10 @@ function Export-TargetResource { $displayedKey = $config.displayName } + elseif (-not [string]::IsNullOrEmpty($config.name)) + { + $displayedKey = $config.name + } Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ = $config. diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDiskEncryptionWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDiskEncryptionWindows10.Tests.ps1 new file mode 100644 index 0000000000..ad519f9c47 --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDiskEncryptionWindows10.Tests.ps1 @@ -0,0 +1,541 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource "IntuneDiskEncryptionWindows10" -GenericStubModule $GenericStubPath +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + BeforeAll { + + $secpasswd = ConvertTo-SecureString (New-Guid | Out-String) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName Get-PSSession -MockWith { + } + + Mock -CommandName Remove-PSSession -MockWith { + } + + Mock -CommandName New-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + } + } + + Mock -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { + } + + Mock -CommandName Get-IntuneSettingCatalogPolicySetting -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return ,@() + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { + return @(@{ + Id = '12345-12345-12345-12345-12345' + Source = 'direct' + SourceId = '12345-12345-12345-12345-12345' + Target = @{ + DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' + DeviceAndAppManagementAssignmentFilterType = 'none' + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } + ) + } + }) + } + + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return "Credentials" + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + } + # Test contexts + Context -Name "The IntuneDiskEncryptionWindows10 should exist but it DOES NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = "FakeStringValue" + DisplayName = "FakeStringValue" + Id = "FakeStringValue" + IdentificationField_Name = "1" + IdentificationField = "Field" + SecIdentificationField = "SecField" + RoleScopeTagIds = @("FakeStringValue") + Ensure = "Present" + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return $null + } + } + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + It 'Should Create the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName New-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 + } + } + + Context -Name "The IntuneDiskEncryptionWindows10 exists but it SHOULD NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = "FakeStringValue" + DisplayName = "FakeStringValue" + Id = "FakeStringValue" + IdentificationField_Name = "1" + IdentificationField = "Field" + SecIdentificationField = "SecField" + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Absent' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Description = "FakeStringValue" + Id = "FakeStringValue" + Name = "FakeStringValue" + RoleScopeTagIds = @("FakeStringValue") + TemplateReference = @{ + TemplateId = '46ddfc50-d10f-4867-b852-9434254b3bff_1' + } + } + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = '0' + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + Name = 'IdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield' + Name = 'IdentificationField_Name' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + Name = 'SecIdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = '3aeb9145-2c02-4086-8886-44dbe09c2f62' + } + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @( + @{ + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'Field' + } + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'SecField' + } + } + ) + value = 'device_vendor_msft_bitlocker_identificationfield_1' + } + ) + } + ) + } + AdditionalProperties = @{} + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should Remove the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 + } + } + Context -Name "The IntuneDiskEncryptionWindows10 Exists and Values are already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = "FakeStringValue" + DisplayName = "FakeStringValue" + Id = "FakeStringValue" + IdentificationField_Name = "1" + IdentificationField = "Field" + SecIdentificationField = "SecField" + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Description = "FakeStringValue" + Id = "FakeStringValue" + Name = "FakeStringValue" + RoleScopeTagIds = @("FakeStringValue") + TemplateReference = @{ + TemplateId = '46ddfc50-d10f-4867-b852-9434254b3bff_1' + } + } + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = '0' + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + Name = 'IdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield' + Name = 'IdentificationField_Name' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + Name = 'SecIdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = '3aeb9145-2c02-4086-8886-44dbe09c2f62' + } + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @( + @{ + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'Field' + } + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'SecField' + } + } + ) + value = 'device_vendor_msft_bitlocker_identificationfield_1' + } + ) + } + ) + } + AdditionalProperties = @{} + } + } + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name "The IntuneDiskEncryptionWindows10 exists and values are NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = "FakeStringValue" + Id = "FakeStringValue" + IdentificationField_Name = "1" + IdentificationField = "Field" + SecIdentificationField = "SecField" + DisplayName = "FakeStringValue" + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Description = "FakeStringValue" + Id = "FakeStringValue" + Name = "FakeStringValue" + RoleScopeTagIds = @("FakeStringValue") + TemplateReference = @{ + TemplateId = '46ddfc50-d10f-4867-b852-9434254b3bff_1' + } + } + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = '0' + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + Name = 'IdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield' + Name = 'IdentificationField_Name' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + Name = 'SecIdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = '3aeb9145-2c02-4086-8886-44dbe09c2f62' + } + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @( + @{ + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'ChangedValue' #drift + } + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'SecField' + } + } + ) + value = 'device_vendor_msft_bitlocker_identificationfield_1' + } + ) + } + ) + } + AdditionalProperties = @{} + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should call the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Update-IntuneDeviceConfigurationPolicy -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Description = "FakeStringValue" + Id = "FakeStringValue" + Name = "FakeStringValue" + RoleScopeTagIds = @("FakeStringValue") + TemplateReference = @{ + TemplateId = '46ddfc50-d10f-4867-b852-9434254b3bff_1' + } + } + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = '0' + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + Name = 'IdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield' + Name = 'IdentificationField_Name' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + }, + @{ + Id = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + Name = 'SecIdentificationField' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = '3aeb9145-2c02-4086-8886-44dbe09c2f62' + } + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @( + @{ + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_identificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'Field' + } + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + settingDefinitionId = 'device_vendor_msft_bitlocker_identificationfield_secidentificationfield' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'SecField' + } + } + ) + value = 'device_vendor_msft_bitlocker_identificationfield_1' + } + ) + } + ) + } + AdditionalProperties = @{} + } + } + } + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope From 2f45539f73a44d8a323c49015e5f6279cb459aaf Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 12 Jul 2024 09:55:12 -0400 Subject: [PATCH 123/273] Update TestHarness.psm1 --- Tests/TestHarness.psm1 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Tests/TestHarness.psm1 b/Tests/TestHarness.psm1 index 964a9d8af2..ecc798f884 100644 --- a/Tests/TestHarness.psm1 +++ b/Tests/TestHarness.psm1 @@ -156,7 +156,17 @@ function Get-M365DSCAllGraphPermissionsList 'ReportSettings.Read.All', ` 'RoleManagementPolicy.Read.Directory', ` 'RoleEligibilitySchedule.Read.Directory', ` - 'Agreement.Read.All') + 'Agreement.Read.All', ` + 'Policy.ReadWrite.ConditionalAccess', ` + 'Policy.Read.ConditionalAccess', ` + 'Policy.ReadWrite.AuthenticationMethod', ` + 'SharePointTenantSettings.Read.All', ` + 'AppCatalog.ReadWrite.All', ` + 'TeamSettings.ReadWrite.All', ` + 'Channel.Delete.All', ` + 'ChannelSettings.ReadWrite.All', ` + 'ChannelMember.ReadWrite.All', ` + 'ChannelSettings.Read.All') $roles = $allPermissions | Select-Object -Unique | Sort-Object -Descending:$false return $roles } From 498251547152911eb04f9a2040f4c3090bb013bb Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 12 Jul 2024 12:04:41 -0400 Subject: [PATCH 124/273] Update Scheduled - Generate Permission List.yml --- .github/workflows/Scheduled - Generate Permission List.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/Scheduled - Generate Permission List.yml b/.github/workflows/Scheduled - Generate Permission List.yml index dd757bd56f..e9695f17ed 100644 --- a/.github/workflows/Scheduled - Generate Permission List.yml +++ b/.github/workflows/Scheduled - Generate Permission List.yml @@ -1,5 +1,9 @@ name: Generate Permissions List on: + push: + branches: + - Master + - Dev schedule: - cron: "0 0 * * *" From 1de104f1ca385d1a52ed2dbfaa15a4f96293609b Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Fri, 12 Jul 2024 16:40:44 +0000 Subject: [PATCH 125/273] Updated Graph Permissions List --- Tests/QA/Graph.PermissionList.txt | Bin 5900 -> 6482 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Tests/QA/Graph.PermissionList.txt b/Tests/QA/Graph.PermissionList.txt index f2a8640678c23b6d93a732cdad679f8a59ea0cf7..c93a18fc2437da9a126bdba3ce5f5eed8484dce2 100644 GIT binary patch delta 348 zcmeCtyJWN>fRQtip@bokA%`J;4oBbHAm~1nEf_Xrg3Y5}gZ~@b)K&7cb zo+D5!he3zInE_dqFHkO*AqhwpO%`O6=S7j7951YjAtF7QPe5ey3TBDT^O#w9mGyuI z<^!!vVaNnplnG{oT;|A-41}o+#SF!h Date: Fri, 12 Jul 2024 14:13:35 -0400 Subject: [PATCH 126/273] Fixing Examples --- .../Resources/AADAdministrativeUnit/1-Create.ps1 | 3 +-- .../Resources/AADAdministrativeUnit/2-Update.ps1 | 3 +-- .../Resources/AADAdministrativeUnit/3-Remove.ps1 | 1 - .../Examples/Resources/AADApplication/1-Create.ps1 | 10 ++++------ .../Examples/Resources/AADApplication/2-Update.ps1 | 9 ++++----- .../1-Create.ps1 | 7 +++---- .../2-Update.ps1 | 7 +++---- 7 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 index 31c5d07bc5..a9e23649f8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/1-Create.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADAdministrativeUnit 'TestUnit' @@ -36,7 +35,7 @@ Configuration Example RoleName = 'User Administrator' RoleMemberInfo = MSFT_MicrosoftGraphMember { - Identity = "admin@$Domain" + Identity = "admin@$TenantId" Type = "User" } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 index bd5fd79f4c..b669251635 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADAdministrativeUnit 'TestUnit' @@ -37,7 +36,7 @@ Configuration Example RoleName = 'User Administrator' RoleMemberInfo = MSFT_MicrosoftGraphMember { - Identity = "AdeleV@$Domain" # Updated Property + Identity = "AdeleV@$TenantId" # Updated Property Type = "User" } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 index 9de6056775..5333b1ca40 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/3-Remove.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADAdministrativeUnit 'TestUnit' diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 index e121cf248b..9e3249b1a7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 @@ -19,8 +19,6 @@ Configuration Example $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADApplication 'AADApp1' @@ -29,12 +27,12 @@ Configuration Example AvailableToOtherTenants = $false Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$Domain" - IdentifierUris = "https://$Domain" + Homepage = "https://$TenandId" + IdentifierUris = "https://$TenandId" KnownClientApplications = "" - LogoutURL = "https://$Domain/logout" + LogoutURL = "https://$TenandId/logout" PublicClient = $false - ReplyURLs = "https://$Domain" + ReplyURLs = "https://$TenandId" Permissions = @( MSFT_AADApplicationPermission { diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 index d77b1a52b8..dbb9ac1e5d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADApplication 'AADApp1' @@ -29,12 +28,12 @@ Configuration Example AvailableToOtherTenants = $true # Updated Property Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$Domain" - IdentifierUris = "https://$Domain" + Homepage = "https://$TenandId" + IdentifierUris = "https://$TenandId" KnownClientApplications = "" - LogoutURL = "https://$Domain/logout" + LogoutURL = "https://$TenandId/logout" PublicClient = $false - ReplyURLs = "https://$Domain" + ReplyURLs = "https://$TenandId" Permissions = @( MSFT_AADApplicationPermission { diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index 21ae8d25c5..c0c53860d8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -20,19 +20,18 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'Human Resources' CatalogId = 'My Catalog' - Description = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" IsPendingOnboarding = $true - OriginId = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" OriginSystem = 'SharePointOnline' ResourceType = 'SharePoint Online Site' - Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' ApplicationId = $ApplicationId TenantId = $TenantId diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index c948f13fb9..c91456105f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -20,19 +20,18 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'Human Resources' CatalogId = 'My Catalog' - Description = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" IsPendingOnboarding = $false # Updated Property - OriginId = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" OriginSystem = 'SharePointOnline' ResourceType = 'SharePoint Online Site' - Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' ApplicationId = $ApplicationId TenantId = $TenantId From 0e2e884f7a55f36ceae0c829845689aa38a345ad Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Fri, 12 Jul 2024 18:16:40 +0000 Subject: [PATCH 127/273] Updated {Create} AAD Integration Tests --- .../M365DSCIntegration.AAD.Create.Tests.ps1 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index 6b22978208..74d72414cb 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -47,7 +47,7 @@ RoleName = 'User Administrator' RoleMemberInfo = MSFT_MicrosoftGraphMember { - Identity = "admin@$Domain" + Identity = "admin@$TenantId" Type = "User" } } @@ -62,12 +62,12 @@ AvailableToOtherTenants = $false Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$Domain" - IdentifierUris = "https://$Domain" + Homepage = "https://$TenandId" + IdentifierUris = "https://$TenandId" KnownClientApplications = "" - LogoutURL = "https://$Domain/logout" + LogoutURL = "https://$TenandId/logout" PublicClient = $false - ReplyURLs = "https://$Domain" + ReplyURLs = "https://$TenandId" Permissions = @( MSFT_AADApplicationPermission { @@ -237,12 +237,12 @@ { DisplayName = 'Human Resources' CatalogId = 'My Catalog' - Description = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" IsPendingOnboarding = $true - OriginId = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" OriginSystem = 'SharePointOnline' ResourceType = 'SharePoint Online Site' - Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' ApplicationId = $ApplicationId TenantId = $TenantId From b980d87de11c13b736c6f7657d5375f538c7d1e0 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Fri, 12 Jul 2024 18:16:57 +0000 Subject: [PATCH 128/273] Updated Resources and Cmdlet documentation pages --- .../azure-ad/AADAdministrativeUnit.md | 7 ++----- .../docs/resources/azure-ad/AADApplication.md | 19 ++++++++----------- ...tManagementAccessPackageCatalogResource.md | 14 ++++++-------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADAdministrativeUnit.md b/docs/docs/resources/azure-ad/AADAdministrativeUnit.md index 2b3f72998f..481d371ccf 100644 --- a/docs/docs/resources/azure-ad/AADAdministrativeUnit.md +++ b/docs/docs/resources/azure-ad/AADAdministrativeUnit.md @@ -96,7 +96,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADAdministrativeUnit 'TestUnit' @@ -112,7 +111,7 @@ Configuration Example RoleName = 'User Administrator' RoleMemberInfo = MSFT_MicrosoftGraphMember { - Identity = "admin@$Domain" + Identity = "admin@$TenantId" Type = "User" } } @@ -148,7 +147,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADAdministrativeUnit 'TestUnit' @@ -165,7 +163,7 @@ Configuration Example RoleName = 'User Administrator' RoleMemberInfo = MSFT_MicrosoftGraphMember { - Identity = "AdeleV@$Domain" # Updated Property + Identity = "AdeleV@$TenantId" # Updated Property Type = "User" } } @@ -201,7 +199,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADAdministrativeUnit 'TestUnit' diff --git a/docs/docs/resources/azure-ad/AADApplication.md b/docs/docs/resources/azure-ad/AADApplication.md index 3dff4eb19e..bc89497229 100644 --- a/docs/docs/resources/azure-ad/AADApplication.md +++ b/docs/docs/resources/azure-ad/AADApplication.md @@ -93,8 +93,6 @@ Configuration Example $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADApplication 'AADApp1' @@ -103,12 +101,12 @@ Configuration Example AvailableToOtherTenants = $false Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$Domain" - IdentifierUris = "https://$Domain" + Homepage = "https://$TenandId" + IdentifierUris = "https://$TenandId" KnownClientApplications = "" - LogoutURL = "https://$Domain/logout" + LogoutURL = "https://$TenandId/logout" PublicClient = $false - ReplyURLs = "https://$Domain" + ReplyURLs = "https://$TenandId" Permissions = @( MSFT_AADApplicationPermission { @@ -164,7 +162,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADApplication 'AADApp1' @@ -173,12 +170,12 @@ Configuration Example AvailableToOtherTenants = $true # Updated Property Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$Domain" - IdentifierUris = "https://$Domain" + Homepage = "https://$TenandId" + IdentifierUris = "https://$TenandId" KnownClientApplications = "" - LogoutURL = "https://$Domain/logout" + LogoutURL = "https://$TenandId/logout" PublicClient = $false - ReplyURLs = "https://$Domain" + ReplyURLs = "https://$TenandId" Permissions = @( MSFT_AADApplicationPermission { diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 84558df93d..09a7a2a74f 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -154,19 +154,18 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'Human Resources' CatalogId = 'My Catalog' - Description = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" IsPendingOnboarding = $true - OriginId = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" OriginSystem = 'SharePointOnline' ResourceType = 'SharePoint Online Site' - Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' ApplicationId = $ApplicationId TenantId = $TenantId @@ -199,19 +198,18 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'Human Resources' CatalogId = 'My Catalog' - Description = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" IsPendingOnboarding = $false # Updated Property - OriginId = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" OriginSystem = 'SharePointOnline' ResourceType = 'SharePoint Online Site' - Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' ApplicationId = $ApplicationId TenantId = $TenantId From ee88887f91da1c13348537601fdbf9ea426b4704 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 12 Jul 2024 22:59:51 +0200 Subject: [PATCH 129/273] Add missing parameter description --- .../MSFT_IntuneDiskEncryptionWindows10.schema.mof | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof index 5af5d795a8..8c0a4d02db 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/MSFT_IntuneDiskEncryptionWindows10.schema.mof @@ -62,7 +62,7 @@ class MSFT_IntuneDiskEncryptionWindows10 : OMI_BaseResource [Write, Description("Do not enable BitLocker until recovery information is stored to AD DS for fixed data drives (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVRequireActiveDirectoryBackup_Name; [Write, Description("Allow data recovery agent (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVAllowDRA_Name; [Write, Description("Configure storage of BitLocker recovery information to AD DS: (1: Backup recovery passwords and key packages, 2: Backup recovery passwords only)"), ValueMap{"1", "2"}, Values{"1", "2"}] String FDVActiveDirectoryBackupDropDown_Name; - [Write, Description(" (2: Allow 256-bit recovery key, 1: Require 256-bit recovery key, 0: Do not allow 256-bit recovery key)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String FDVRecoveryKeyUsageDropDown_Name; + [Write, Description("Select the fixed drive recovery key usage: (2: Allow 256-bit recovery key, 1: Require 256-bit recovery key, 0: Do not allow 256-bit recovery key)"), ValueMap{"2", "1", "0"}, Values{"2", "1", "0"}] String FDVRecoveryKeyUsageDropDown_Name; [Write, Description("Deny write access to fixed drives not protected by BitLocker (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String FDVDenyWriteAccess_Name; [Write, Description("Control use of BitLocker on removable drives (0: Disabled, 1: Enabled)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVConfigureBDE; [Write, Description("Allow users to apply BitLocker protection on removable data drives (Device) (0: False, 1: True)"), ValueMap{"0", "1"}, Values{"0", "1"}] String RDVAllowBDE_Name; From 0b799be7344680e01777d78fee1f6178435eae51 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 12 Jul 2024 23:11:57 +0200 Subject: [PATCH 130/273] Fix permissions --- .../settings.json | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json index 0597c5d0dc..861f452495 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionWindows10/settings.json @@ -1,29 +1,32 @@ { - "resourceName": "IntuneDiskEncryptionWindows10", - "description": "This resource configures an Intune Disk Encryption for Windows10.", - "permissions": { - "graph": { - "delegated": { - "read": [ - { - "name": "DeviceManagementConfiguration.Read.All" - } - ], - "update": [ - - ] - }, - "application": { - "read": [ - { - "name": "DeviceManagementConfiguration.ReadWrite.All" - } - ], - "update": [ - - ] - } - } -} - + "resourceName":"IntuneDiskEncryptionWindows10", + "description":"This resource configures an Intune Disk Encryption for Windows10.", + "permissions":{ + "graph":{ + "delegated":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + }, + "application":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + } + } + } } From 3ad2b4a957bbe051c6129f8c93f062c22c02b59a Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 13 Jul 2024 14:22:36 +0200 Subject: [PATCH 131/273] Fix array comparison in report --- CHANGELOG.md | 6 +++++ .../Modules/M365DSCReport.psm1 | 23 ++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..732f797877 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCReport + * Fixes an issue where the comparison treats empty arrays as an empty string. + FIXES [#4796](https://github.com/microsoft/Microsoft365DSC/issues/4796) + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 index a92596eb70..a005f23ee7 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 @@ -794,11 +794,7 @@ function Compare-M365DSCConfigurations { if ($propertyName -notin $filteredProperties) { - $destinationPropertyName = $destinationResource.Keys | Where-Object -FilterScript { $_ -eq $propertyName } - if ([System.String]::IsNullOrEmpty($destinationPropertyName)) - { - $destinationPropertyName = $propertyName - } + $destinationPropertyName = $propertyName # Case where the property contains CIMInstances if ($null -ne $sourceResource.$propertyName.Keys -and $sourceResource.$propertyName.Keys.Contains('CIMInstance')) @@ -892,7 +888,7 @@ function Compare-M365DSCConfigurations } # Needs to be a separate nested if statement otherwise the ReferenceObject can be null and it will error out; elseif ($destinationResource.ContainsKey($destinationPropertyName) -eq $false -or (-not [System.String]::IsNullOrEmpty($propertyName) -and - (-not [System.String]::IsNullOrEmpty($sourceResource.$propertyName) -and + ($null -ne $sourceResource.$propertyName -and $null -ne (Compare-Object -ReferenceObject ($sourceResource.$propertyName)` -DifferenceObject ($destinationResource.$destinationPropertyName)))) -and -not ([System.String]::IsNullOrEmpty($destinationResource.$destinationPropertyName) -and [System.String]::IsNullOrEmpty($sourceResource.$propertyName))) @@ -952,11 +948,8 @@ function Compare-M365DSCConfigurations { if ($propertyName -notin $filteredProperties) { - $sourcePropertyName = $destinationResource.Keys | Where-Object -FilterScript { $_ -eq $propertyName } - if ([System.String]::IsNullOrEmpty($sourcePropertyName)) - { - $sourcePropertyName = $propertyName - } + $sourcePropertyName = $propertyName + # Case where the property contains CIMInstances if ($null -ne $destinationResource.$propertyName.Keys -and $destinationResource.$propertyName.Keys.Contains('CIMInstance')) { @@ -979,13 +972,15 @@ function Compare-M365DSCConfigurations foreach ($property in $instance.Keys) { if ($null -eq $sourceResourceInstance."$property" -or ` - (-not [System.String]::IsNullOrEmpty($instance."$property") -and ` + ($null -ne $instance."$property" -and ` $null -ne (Compare-Object -ReferenceObject ($instance."$property")` -DifferenceObject ($sourceResourceInstance."$property")))) { # Make sure we haven't already added this drift in the delta return object to prevent duplicates. - $existing = $delta | Where-Object -FilterScript {$_.ResourceName -eq $destinationResource.ResourceName -and ` - $_.ResourceInstanceName -eq $destinationResource.ResourceInstanceName} + $existing = $delta | Where-Object -FilterScript { + $_.ResourceName -eq $destinationResource.ResourceName -and + $_.ResourceInstanceName -eq $destinationResource.ResourceInstanceName + } $sameEntry = $null if ($null -ne $existing) From 35e1d1c21b0a3e69c7e05c3779a9764826627265 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Sat, 13 Jul 2024 13:07:57 -0400 Subject: [PATCH 132/273] Fixing Examples --- .../Examples/Resources/AADApplication/1-Create.ps1 | 8 ++++---- .../Examples/Resources/AADApplication/2-Update.ps1 | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 index 9e3249b1a7..35dc94c12f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/1-Create.ps1 @@ -27,12 +27,12 @@ Configuration Example AvailableToOtherTenants = $false Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$TenandId" - IdentifierUris = "https://$TenandId" + Homepage = "https://$TenantId" + IdentifierUris = "https://$TenantId" KnownClientApplications = "" - LogoutURL = "https://$TenandId/logout" + LogoutURL = "https://$TenantId/logout" PublicClient = $false - ReplyURLs = "https://$TenandId" + ReplyURLs = "https://$TenantId" Permissions = @( MSFT_AADApplicationPermission { diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 index dbb9ac1e5d..0c6b3e5881 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADApplication/2-Update.ps1 @@ -28,12 +28,12 @@ Configuration Example AvailableToOtherTenants = $true # Updated Property Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$TenandId" - IdentifierUris = "https://$TenandId" + Homepage = "https://$TenantId" + IdentifierUris = "https://$TenantId" KnownClientApplications = "" - LogoutURL = "https://$TenandId/logout" + LogoutURL = "https://$TenantId/logout" PublicClient = $false - ReplyURLs = "https://$TenandId" + ReplyURLs = "https://$TenantId" Permissions = @( MSFT_AADApplicationPermission { From 71991bec5b3b015f5c2bb84bf502a1010081fb37 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Sat, 13 Jul 2024 17:09:27 +0000 Subject: [PATCH 133/273] Updated {Create} AAD Integration Tests --- .../M365DSCIntegration.AAD.Create.Tests.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index 74d72414cb..c872db8b1d 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -62,12 +62,12 @@ AvailableToOtherTenants = $false Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$TenandId" - IdentifierUris = "https://$TenandId" + Homepage = "https://$TenantId" + IdentifierUris = "https://$TenantId" KnownClientApplications = "" - LogoutURL = "https://$TenandId/logout" + LogoutURL = "https://$TenantId/logout" PublicClient = $false - ReplyURLs = "https://$TenandId" + ReplyURLs = "https://$TenantId" Permissions = @( MSFT_AADApplicationPermission { From d2844194d2bb00f72b70053ab7ce9b053fdff279 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Sat, 13 Jul 2024 17:19:55 +0200 Subject: [PATCH 134/273] Add Intune Windows quality update profile --- CHANGELOG.md | 6 + ...BusinessQualityUpdateProfileWindows10.psm1 | 617 ++++++++++++++++++ ...ssQualityUpdateProfileWindows10.schema.mof | 36 + .../readme.md | 6 + .../settings.json | 32 + .../1-Create.ps1 | 38 ++ .../2-Update.ps1 | 38 ++ .../3-Remove.ps1 | 24 + ...essQualityUpdateProfileWindows10.Tests.ps1 | 286 ++++++++ Tests/Unit/Stubs/Microsoft365.psm1 | 429 ++++++++++++ 10 files changed, 1512 insertions(+) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.Tests.ps1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..2943549218 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 + * Initial release. + FIXES [#2659](https://github.com/microsoft/Microsoft365DSC/issues/2659) + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 new file mode 100644 index 0000000000..b7ffd3926a --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 @@ -0,0 +1,617 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance] + $ExpeditedUpdateSettings, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + try + { + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + + $getValue = $null + #region resource generator code + $getValue = Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -WindowsQualityUpdateProfileId $Id -ErrorAction SilentlyContinue + + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Windows Update For Business Quality Update Profile for Windows10 with Id {$Id}" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $getValue = Get-MgBetaDeviceManagementWindowsQualityUpdateProfile ` + -Filter "DisplayName eq '$DisplayName'" ` + -ErrorAction SilentlyContinue + } + } + #endregion + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Windows Update For Business Quality Update Profile for Windows10 with DisplayName {$DisplayName}." + return $nullResult + } + $Id = $getValue.Id + Write-Verbose -Message "An Intune Windows Update For Business Quality Update Profile for Windows10 with Id {$Id} and DisplayName {$DisplayName} was found" + + #region resource generator code + $complexExpeditedUpdateSettings = @{} + $complexExpeditedUpdateSettings.Add('DaysUntilForcedReboot', $getValue.ExpeditedUpdateSettings.daysUntilForcedReboot) + $complexExpeditedUpdateSettings.Add('QualityUpdateRelease', $getValue.ExpeditedUpdateSettings.qualityUpdateRelease) + if ($complexExpeditedUpdateSettings.values.Where({$null -ne $_}).Count -eq 0) + { + $complexExpeditedUpdateSettings = $null + } + #endregion + + $results = @{ + #region resource generator code + Description = $getValue.Description + DisplayName = $getValue.DisplayName + ExpeditedUpdateSettings = $complexExpeditedUpdateSettings + RoleScopeTagIds = $getValue.RoleScopeTagIds + Id = $getValue.Id + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + #endregion + } + + $assignmentsValues = Get-MgBetaDeviceManagementWindowsQualityUpdateProfileAssignment -WindowsQualityUpdateProfileId $Id + $assignmentResult = @() + if ($assignmentsValues.Count -gt 0) + { + $assignmentResult += ConvertFrom-IntunePolicyAssignment -Assignments $assignmentsValues -IncludeDeviceFilter $true + } + $results.Add('Assignments', $assignmentResult) + + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance] + $ExpeditedUpdateSettings, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + if ($ExpeditedUpdateSettings.DaysUntilForcedReboot -lt 0 -or $ExpeditedUpdateSettings.DaysUntilForcedReboot -gt 2) + { + throw "DaysUntilForcedReboot must be between 0 and 2." + } + + $currentInstance = Get-TargetResource @PSBoundParameters + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + + if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') + { + Write-Verbose -Message "Creating an Intune Windows Update For Business Quality Update Profile for Windows10 with DisplayName {$DisplayName}" + $BoundParameters.Remove("Assignments") | Out-Null + + $createParameters = ([Hashtable]$BoundParameters).clone() + $createParameters = Rename-M365DSCCimInstanceParameter -Properties $createParameters + $createParameters.Remove('Id') | Out-Null + + $keys = (([Hashtable]$createParameters).clone()).Keys + foreach ($key in $keys) + { + if ($null -ne $createParameters.$key -and $createParameters.$key.GetType().Name -like '*cimInstance*') + { + $createParameters.$key = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $createParameters.$key + } + } + + #region resource generator code + $policy = New-MgBetaDeviceManagementWindowsQualityUpdateProfile -BodyParameter $createParameters + if ($policy.Id) + { + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/windowsQualityUpdateProfiles' + } + #endregion + } + elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating the Intune Windows Update For Business Quality Update Profile for Windows10 with Id {$($currentInstance.Id)}" + $BoundParameters.Remove("Assignments") | Out-Null + + $updateParameters = ([Hashtable]$BoundParameters).clone() + $updateParameters = Rename-M365DSCCimInstanceParameter -Properties $updateParameters + $updateParameters.Remove('Id') | Out-Null + + $keys = (([Hashtable]$updateParameters).clone()).Keys + foreach ($key in $keys) + { + if ($null -ne $updateParameters.$key -and $updateParameters.$key.GetType().Name -like '*cimInstance*') + { + $updateParameters.$key = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $updateParameters.$key + } + } + + #region resource generator code + Update-MgBetaDeviceManagementWindowsQualityUpdateProfile ` + -WindowsQualityUpdateProfileId $currentInstance.Id ` + -BodyParameter $updateParameters + + $assignmentsHash = ConvertTo-IntunePolicyAssignment -Assignments $Assignments -IncludeDeviceFilter:$true + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/windowsQualityUpdateProfiles' + #endregion + } + elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Removing the Intune Windows Update For Business Quality Update Profile for Windows10 with Id {$($currentInstance.Id)}" + #region resource generator code + Remove-MgBetaDeviceManagementWindowsQualityUpdateProfile -WindowsQualityUpdateProfileId $currentInstance.Id + #endregion + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance] + $ExpeditedUpdateSettings, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + if ($ExpeditedUpdateSettings.DaysUntilForcedReboot -lt 0 -or $ExpeditedUpdateSettings.DaysUntilForcedReboot -gt 2) + { + throw "DaysUntilForcedReboot must be between 0 and 2." + } + + Write-Verbose -Message "Testing configuration of the Intune Windows Update For Business Quality Update Profile for Windows10 with Id {$Id} and DisplayName {$DisplayName}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = ([Hashtable]$PSBoundParameters).clone() + + if ($CurrentValues.Ensure -ne $Ensure) + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + $testResult = $true + + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) + { + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + + if (-not $testResult) + { + break + } + + $ValuesToCheck.Remove($key) | Out-Null + } + } + + $ValuesToCheck.Remove('Id') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" + + if ($testResult) + { + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + } + + Write-Verbose -Message "Test-TargetResource returned $testResult" + + return $testResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + #region resource generator code + # Filter not supported on this resource + # [array]$getValue = Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -Filter $Filter -All -ErrorAction Stop + if (-not [string]::IsNullOrEmpty($Filter)) + { + Write-Warning -Message "Microsoft Graph filter is not supported on this resource. Only best-effort filtering using startswith, endswith and contains is supported." + $complexFunctions = Get-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + $Filter = Remove-ComplexFunctionsFromFilterQuery -FilterQuery $Filter + } + [array]$getValue = Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -All -ErrorAction Stop + $getValue = Find-GraphDataUsingComplexFunctions -ComplexFunctions $complexFunctions -Policies $getValue + #endregion + + $i = 1 + $dscContent = '' + if ($getValue.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $getValue) + { + $displayedKey = $config.Id + if (-not [String]::IsNullOrEmpty($config.displayName)) + { + $displayedKey = $config.displayName + } + Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline + $params = @{ + Id = $config.Id + DisplayName = $config.DisplayName + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + if ($null -ne $Results.ExpeditedUpdateSettings) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString ` + -ComplexObject $Results.ExpeditedUpdateSettings ` + -CIMInstanceName 'MicrosoftGraphexpeditedWindowsQualityUpdateSettings' + if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult)) + { + $Results.ExpeditedUpdateSettings = $complexTypeStringResult + } + else + { + $Results.Remove('ExpeditedUpdateSettings') | Out-Null + } + } + + if ($Results.Assignments) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) + { + $Results.Assignments = $complexTypeStringResult + } + else + { + $Results.Remove('Assignments') | Out-Null + } + } + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + if ($Results.ExpeditedUpdateSettings) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "ExpeditedUpdateSettings" -IsCIMArray:$False + } + + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true + } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.schema.mof new file mode 100644 index 0000000000..599830987a --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.schema.mof @@ -0,0 +1,36 @@ +[ClassVersion("1.0.0.0")] +class MSFT_DeviceManagementConfigurationPolicyAssignments +{ + [Write, Description("The type of the target assignment."), ValueMap{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}, Values{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}] String dataType; + [Write, Description("The type of filter of the target assignment i.e. Exclude or Include. Possible values are:none, include, exclude."), ValueMap{"none","include","exclude"}, Values{"none","include","exclude"}] String deviceAndAppManagementAssignmentFilterType; + [Write, Description("The Id of the filter for the target assignment.")] String deviceAndAppManagementAssignmentFilterId; + [Write, Description("The group Id that is the target of the assignment.")] String groupId; + [Write, Description("The group Display Name that is the target of the assignment.")] String groupDisplayName; + [Write, Description("The collection Id that is the target of the assignment.(ConfigMgr)")] String collectionId; +}; + +[ClassVersion("1.0.0")] +class MSFT_MicrosoftGraphExpeditedWindowsQualityUpdateSettings +{ + [Write, Description("The number of days after installation that forced reboot will happen. Must be in range from 0 to 2.")] UInt32 DaysUntilForcedReboot; + [Write, Description("The release date to identify a quality update. Format is yyyy-MM-ddT00:00:00Z.")] String QualityUpdateRelease; +}; + +[ClassVersion("1.0.0.0"), FriendlyName("IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10")] +class MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 : OMI_BaseResource +{ + [Key, Description("The display name for the profile.")] String DisplayName; + [Write, Description("The description of the profile.")] String Description; + [Write, Description("Expedited update settings."), EmbeddedInstance("MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings")] String ExpeditedUpdateSettings; + [Write, Description("List of Scope Tags for this Quality Update entity.")] String RoleScopeTagIds[]; + [Write, Description("The unique identifier for an entity. Read-only.")] String Id; + [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; + [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity; + [Write, Description("Access token used for authentication.")] String AccessTokens[]; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/readme.md new file mode 100644 index 0000000000..507894c9ef --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/readme.md @@ -0,0 +1,6 @@ + +# IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 + +## Description + +Intune Windows Update For Business Quality Update Profile for Windows10 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/settings.json new file mode 100644 index 0000000000..26b6907b55 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/settings.json @@ -0,0 +1,32 @@ +{ + "resourceName":"IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10", + "description":"This resource configures an Intune Windows Update For Business Quality Update Profile for Windows10.", + "permissions":{ + "graph":{ + "delegated":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + }, + "application":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + } + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 new file mode 100644 index 0000000000..98a73d832a --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 @@ -0,0 +1,38 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments{ + deviceAndAppManagementAssignmentFilterType = 'none' + groupDisplayName = 'Exclude' + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '258a1749-8408-4dd0-8028-fab6208a28d7' + } + ); + DisplayName = 'Windows Quality Update' + Description = '' + ExpeditedUpdateSettings = MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings{ + QualityUpdateRelease = '2024-06-11T00:00:00Z' + DaysUntilForcedReboot = 0 + } + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credscredential + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 new file mode 100644 index 0000000000..918b91d56c --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 @@ -0,0 +1,38 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments{ + deviceAndAppManagementAssignmentFilterType = 'none' + groupDisplayName = 'Exclude' + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '258a1749-8408-4dd0-8028-fab6208a28d7' + } + ); + DisplayName = 'Windows Quality Update' + Description = '' + ExpeditedUpdateSettings = MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings{ + QualityUpdateRelease = '2024-06-11T00:00:00Z' + DaysUntilForcedReboot = 1 # Updated property + } + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credscredential + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 new file mode 100644 index 0000000000..53b880993a --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 @@ -0,0 +1,24 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + DisplayName = 'Windows Quality Update' + Ensure = 'Absent' + Credential = $Credscredential + } + } +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.Tests.ps1 new file mode 100644 index 0000000000..e6538a3cc9 --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.Tests.ps1 @@ -0,0 +1,286 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource "IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10" -GenericStubModule $GenericStubPath +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + BeforeAll { + + $secpasswd = ConvertTo-SecureString (New-Guid | Out-String) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName Get-PSSession -MockWith { + } + + Mock -CommandName Remove-PSSession -MockWith { + } + + Mock -CommandName Update-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + } + + Mock -CommandName New-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + } + + Mock -CommandName Remove-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return "Credentials" + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + + Mock -CommandName Get-MgBetaDeviceManagementWindowsQualityUpdateProfileAssignment -MockWith { + return @(@{ + Id = '12345-12345-12345-12345-12345' + Source = 'direct' + SourceId = '12345-12345-12345-12345-12345' + Target = @{ + DeviceAndAppManagementAssignmentFilterId = $null + DeviceAndAppManagementAssignmentFilterType = 'none' + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } + ) + } + }) + } + + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { + } + + } + # Test contexts + Context -Name "The IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 should exist but it DOES NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + deviceAndAppManagementAssignmentFilterType = 'none' + } -ClientOnly) + ) + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphExpeditedWindowsQualityUpdateSettings -Property @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } -ClientOnly) + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + Ensure = "Present" + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + return $null + } + } + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + It 'Should Create the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName New-MgBetaDeviceManagementWindowsQualityUpdateProfile -Exactly 1 + } + } + + Context -Name "The IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 exists but it SHOULD NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + deviceAndAppManagementAssignmentFilterType = 'none' + } -ClientOnly) + ) + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphExpeditedWindowsQualityUpdateSettings -Property @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } -ClientOnly) + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + Ensure = 'Absent' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + return @{ + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should Remove the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-MgBetaDeviceManagementWindowsQualityUpdateProfile -Exactly 1 + } + } + Context -Name "The IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 Exists and Values are already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + deviceAndAppManagementAssignmentFilterType = 'none' + } -ClientOnly) + ) + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphExpeditedWindowsQualityUpdateSettings -Property @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } -ClientOnly) + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + return @{ + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + } + } + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name "The IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 exists and values are NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + deviceAndAppManagementAssignmentFilterType = 'none' + } -ClientOnly) + ) + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphExpeditedWindowsQualityUpdateSettings -Property @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } -ClientOnly) + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + return @{ + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = @{ + DaysUntilForcedReboot = 1 #drift + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should call the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Update-MgBetaDeviceManagementWindowsQualityUpdateProfile -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + + Mock -CommandName Get-MgBetaDeviceManagementWindowsQualityUpdateProfile -MockWith { + return @{ + Description = "Description" + DisplayName = "IntuneQualityUpdate" + ExpeditedUpdateSettings = @{ + DaysUntilForcedReboot = 0 + QualityUpdateRelease = "2024-06-11T00:00:00Z" + } + Id = "FakeStringValue" + RoleScopeTagIds = @("0") + } + } + } + + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope diff --git a/Tests/Unit/Stubs/Microsoft365.psm1 b/Tests/Unit/Stubs/Microsoft365.psm1 index 272d7224d3..39fc971c0f 100644 --- a/Tests/Unit/Stubs/Microsoft365.psm1 +++ b/Tests/Unit/Stubs/Microsoft365.psm1 @@ -84694,3 +84694,432 @@ function Set-ExternalInOutlook #endregion +#region MgBetaDeviceManagementWindowsQualityUpdateProfile +function Get-MgBetaDeviceManagementWindowsQualityUpdateProfile +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $WindowsQualityUpdateProfileId, + + [Parameter()] + [PSObject] + $InputObject, + + [Parameter()] + [System.String[]] + $ExpandProperty, + + [Parameter()] + [System.String[]] + $Property, + + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.String] + $Search, + + [Parameter()] + [System.Int32] + $Skip, + + [Parameter()] + [System.String[]] + $Sort, + + [Parameter()] + [System.Int32] + $Top, + + [Parameter()] + [System.String] + $ResponseHeadersVariable, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Break, + + [Parameter()] + [System.Collections.IDictionary] + $Headers, + + [Parameter()] + [PSObject[]] + $HttpPipelineAppend, + + [Parameter()] + [PSObject[]] + $HttpPipelinePrepend, + + [Parameter()] + [System.Uri] + $Proxy, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ProxyCredential, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $ProxyUseDefaultCredentials, + + [Parameter()] + [System.Int32] + $PageSize, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $All, + + [Parameter()] + [System.String] + $CountVariable + ) +} + +function New-MgBetaDeviceManagementWindowsQualityUpdateProfile +{ + [CmdletBinding()] + param + ( + [Parameter()] + [PSObject] + $BodyParameter, + + [Parameter()] + [System.String] + $ResponseHeadersVariable, + + [Parameter()] + [System.Collections.Hashtable] + $AdditionalProperties, + + [Parameter()] + [PSObject[]] + $Assignments, + + [Parameter()] + [System.DateTime] + $CreatedDateTime, + + [Parameter()] + [System.String] + $DeployableContentDisplayName, + + [Parameter()] + [System.String] + $Description, + + [Parameter()] + [System.String] + $DisplayName, + + [Parameter()] + [PSObject] + $ExpeditedUpdateSettings, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.DateTime] + $LastModifiedDateTime, + + [Parameter()] + [System.String] + $ReleaseDateDisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Break, + + [Parameter()] + [System.Collections.IDictionary] + $Headers, + + [Parameter()] + [PSObject[]] + $HttpPipelineAppend, + + [Parameter()] + [PSObject[]] + $HttpPipelinePrepend, + + [Parameter()] + [System.Uri] + $Proxy, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ProxyCredential, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $ProxyUseDefaultCredentials, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm + ) +} + +function Remove-MgBetaDeviceManagementWindowsQualityUpdateProfile +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $WindowsQualityUpdateProfileId, + + [Parameter()] + [PSObject] + $InputObject, + + [Parameter()] + [System.String] + $ResponseHeadersVariable, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Break, + + [Parameter()] + [System.Collections.IDictionary] + $Headers, + + [Parameter()] + [PSObject[]] + $HttpPipelineAppend, + + [Parameter()] + [PSObject[]] + $HttpPipelinePrepend, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $PassThru, + + [Parameter()] + [System.Uri] + $Proxy, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ProxyCredential, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $ProxyUseDefaultCredentials, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm + ) +} + +function Update-MgBetaDeviceManagementWindowsQualityUpdateProfile +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $WindowsQualityUpdateProfileId, + + [Parameter()] + [PSObject] + $InputObject, + + [Parameter()] + [PSObject] + $BodyParameter, + + [Parameter()] + [System.String] + $ResponseHeadersVariable, + + [Parameter()] + [System.Collections.Hashtable] + $AdditionalProperties, + + [Parameter()] + [PSObject[]] + $Assignments, + + [Parameter()] + [System.DateTime] + $CreatedDateTime, + + [Parameter()] + [System.String] + $DeployableContentDisplayName, + + [Parameter()] + [System.String] + $Description, + + [Parameter()] + [System.String] + $DisplayName, + + [Parameter()] + [PSObject] + $ExpeditedUpdateSettings, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.DateTime] + $LastModifiedDateTime, + + [Parameter()] + [System.String] + $ReleaseDateDisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Break, + + [Parameter()] + [System.Collections.IDictionary] + $Headers, + + [Parameter()] + [PSObject[]] + $HttpPipelineAppend, + + [Parameter()] + [PSObject[]] + $HttpPipelinePrepend, + + [Parameter()] + [System.Uri] + $Proxy, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ProxyCredential, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $ProxyUseDefaultCredentials, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm + ) +} + +#endregion + +#region MgBetaDeviceManagementWindowsQualityUpdateProfileAssignment +function Get-MgBetaDeviceManagementWindowsQualityUpdateProfileAssignment +{ + [CmdletBinding()] + param + ( + [Parameter()] + [System.String] + $WindowsQualityUpdateProfileAssignmentId, + + [Parameter()] + [System.String] + $WindowsQualityUpdateProfileId, + + [Parameter()] + [PSObject] + $InputObject, + + [Parameter()] + [System.String[]] + $ExpandProperty, + + [Parameter()] + [System.String[]] + $Property, + + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.String] + $Search, + + [Parameter()] + [System.Int32] + $Skip, + + [Parameter()] + [System.String[]] + $Sort, + + [Parameter()] + [System.Int32] + $Top, + + [Parameter()] + [System.String] + $ResponseHeadersVariable, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Break, + + [Parameter()] + [System.Collections.IDictionary] + $Headers, + + [Parameter()] + [PSObject[]] + $HttpPipelineAppend, + + [Parameter()] + [PSObject[]] + $HttpPipelinePrepend, + + [Parameter()] + [System.Uri] + $Proxy, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ProxyCredential, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $ProxyUseDefaultCredentials, + + [Parameter()] + [System.Int32] + $PageSize, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $All, + + [Parameter()] + [System.String] + $CountVariable + ) +} + +#endregion + From 32b447ea31586e0134381eff6486e0b2705f6bae Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Sat, 13 Jul 2024 13:15:51 -0400 Subject: [PATCH 135/273] Fixing Examples --- .../1-Create.ps1 | 18 ++++++++++++++---- .../2-Update.ps1 | 18 ++++++++++++++---- .../3-Remove.ps1 | 18 ++++++++++++++---- 3 files changed, 42 insertions(+), 12 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/1-Create.ps1 index 6df36bd26b..15a5b73efa 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -39,7 +47,9 @@ Configuration Example IsApprovalRequiredForExtension = $False }; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/2-Update.ps1 index 00c8f28c52..851d67e077 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -39,7 +47,9 @@ Configuration Example IsApprovalRequiredForExtension = $False }; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/3-Remove.ps1 index 747e49d08e..62b450b6b5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageAssignmentPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = "External tenant"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From 3be2a9eaacb9a61bb22391c053f9561ed783e19d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Sat, 13 Jul 2024 17:17:04 +0000 Subject: [PATCH 136/273] Updated {Create} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index c872db8b1d..e7706feb55 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -218,7 +218,9 @@ IsApprovalRequiredForExtension = $False }; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageCatalog 'myAccessPackageCatalog' { From 4e64435b366f68e967415c2f197d63b3ce43cb2a Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Sat, 13 Jul 2024 17:17:15 +0000 Subject: [PATCH 137/273] Updated Resources and Cmdlet documentation pages --- .../docs/resources/azure-ad/AADApplication.md | 16 +++--- ...ManagementAccessPackageAssignmentPolicy.md | 54 ++++++++++++++----- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADApplication.md b/docs/docs/resources/azure-ad/AADApplication.md index bc89497229..00a9a29f14 100644 --- a/docs/docs/resources/azure-ad/AADApplication.md +++ b/docs/docs/resources/azure-ad/AADApplication.md @@ -101,12 +101,12 @@ Configuration Example AvailableToOtherTenants = $false Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$TenandId" - IdentifierUris = "https://$TenandId" + Homepage = "https://$TenantId" + IdentifierUris = "https://$TenantId" KnownClientApplications = "" - LogoutURL = "https://$TenandId/logout" + LogoutURL = "https://$TenantId/logout" PublicClient = $false - ReplyURLs = "https://$TenandId" + ReplyURLs = "https://$TenantId" Permissions = @( MSFT_AADApplicationPermission { @@ -170,12 +170,12 @@ Configuration Example AvailableToOtherTenants = $true # Updated Property Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$TenandId" - IdentifierUris = "https://$TenandId" + Homepage = "https://$TenantId" + IdentifierUris = "https://$TenantId" KnownClientApplications = "" - LogoutURL = "https://$TenandId/logout" + LogoutURL = "https://$TenantId/logout" PublicClient = $false - ReplyURLs = "https://$TenandId" + ReplyURLs = "https://$TenantId" Permissions = @( MSFT_AADApplicationPermission { diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageAssignmentPolicy.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageAssignmentPolicy.md index cd39b938da..1ef0cf133d 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageAssignmentPolicy.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageAssignmentPolicy.md @@ -183,9 +183,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -216,7 +224,9 @@ Configuration Example IsApprovalRequiredForExtension = $False }; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -231,9 +241,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -264,7 +282,9 @@ Configuration Example IsApprovalRequiredForExtension = $False }; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -279,9 +299,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -291,7 +319,9 @@ Configuration Example { DisplayName = "External tenant"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From 1ba61504a0462c177f481c982591cdcf5c9276bd Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 07:39:55 -0400 Subject: [PATCH 138/273] Fixing Tests --- .github/workflows/Global - Integration - AAD.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Global - Integration - AAD.yml b/.github/workflows/Global - Integration - AAD.yml index 88c9556977..4bea55cdfc 100644 --- a/.github/workflows/Global - Integration - AAD.yml +++ b/.github/workflows/Global - Integration - AAD.yml @@ -46,6 +46,7 @@ jobs: - name: Generate {Update} Integration Tests from Examples shell: powershell run: | + Import-Module './Tests/Integration/M365DSCTestEngine.psm1' New-M365DSCIntegrationTest -Workload AAD -Step '2-Update' - name: Commit {Update} Integration Tests shell: powershell @@ -61,7 +62,8 @@ jobs: - name: Generate {Remove} Integration Tests from Examples shell: powershell run: | - New-M365DSCIntegrationTest -Workload AAD -Step '3-Remove' + Import-Module './Tests/Integration/M365DSCTestEngine.psm1' + New-M365DSCIntegrationTest -Workload AAD -Step '3-Remove' - name: Commit {Remove} Integration Tests shell: powershell run: | From 2efdcf55349fa4e6e570469f669f778cb9b465e3 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 11:41:31 +0000 Subject: [PATCH 139/273] Updated {Update} AAD Integration Tests --- .../M365DSCIntegration.AAD.Update.Tests.ps1 | 239 +++++++++++++----- 1 file changed, 177 insertions(+), 62 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 index 6954a18b3e..fec5ae4143 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 @@ -1,31 +1,61 @@ param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { AADAdministrativeUnit 'TestUnit' { DisplayName = 'Test-Unit' + Description = 'Test Description Updated' # Updated Property + Visibility = 'HiddenMembership' # Updated Property MembershipRule = "(user.country -eq `"US`")" # Updated Property MembershipRuleProcessingState = 'On' MembershipType = 'Dynamic' - Ensure = 'Present' - Credential = $Credscredential + ScopedRoleMembers = @( + MSFT_MicrosoftGraphScopedRoleMembership + { + RoleName = 'User Administrator' + RoleMemberInfo = MSFT_MicrosoftGraphMember + { + Identity = "AdeleV@$TenantId" # Updated Property + Type = "User" + } + } + ) + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADApplication 'AADApp1' { @@ -33,12 +63,12 @@ AvailableToOtherTenants = $true # Updated Property Description = "Application Description" GroupMembershipClaims = "None" - Homepage = "https://$Domain" - IdentifierUris = "https://$Domain" + Homepage = "https://$TenantId" + IdentifierUris = "https://$TenantId" KnownClientApplications = "" - LogoutURL = "https://$Domain/logout" + LogoutURL = "https://$TenantId/logout" PublicClient = $false - ReplyURLs = "https://$Domain" + ReplyURLs = "https://$TenantId" Permissions = @( MSFT_AADApplicationPermission { @@ -63,11 +93,15 @@ } ) Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAttributeSet 'AADAttributeSetTest' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Attribute set with 420 attributes"; Ensure = "Present"; Id = "TestAttributeSet"; @@ -75,13 +109,26 @@ } AADAuthenticationContextClassReference 'AADAuthenticationContextClassReference-Test' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test Updated"; # Updated Property DisplayName = "My Context"; Ensure = "Present"; Id = "c3"; IsAvailable = $False; # Updated Property } + AADAuthenticationFlowPolicy 'AADAuthenticationFlowPolicy' + { + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + Description = "Authentication flows policy allows modification of settings related to authentication flows in AAD tenant, such as self-service sign up configuration."; + DisplayName = "Authentication flows policy"; + Id = "authenticationFlowsPolicy"; + IsSingleInstance = "Yes"; + SelfServiceSignUpEnabled = $True; + } AADAuthenticationMethodPolicy 'AADAuthenticationMethodPolicy-Authentication Methods Policy' { DisplayName = "Authentication Methods Policy"; @@ -102,11 +149,15 @@ State = 'default' } }; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAuthenticationMethodPolicyAuthenticator 'AADAuthenticationMethodPolicyAuthenticator-MicrosoftAuthenticator' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyAuthenticatorExcludeTarget{ @@ -154,7 +205,9 @@ AADAuthenticationMethodPolicyEmail 'AADAuthenticationMethodPolicyEmail-Email' { AllowExternalIdToUseEmailOtp = "enabled"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyEmailExcludeTarget{ @@ -177,7 +230,9 @@ } AADAuthenticationMethodPolicyFido2 'AADAuthenticationMethodPolicyFido2-Fido2' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyFido2ExcludeTarget{ @@ -207,7 +262,9 @@ } AADAuthenticationMethodPolicySms 'AADAuthenticationMethodPolicySms-Sms' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicySmsExcludeTarget{ @@ -226,7 +283,9 @@ } AADAuthenticationMethodPolicySoftware 'AADAuthenticationMethodPolicySoftware-SoftwareOath' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicySoftwareExcludeTarget{ @@ -249,7 +308,9 @@ } AADAuthenticationMethodPolicyTemporary 'AADAuthenticationMethodPolicyTemporary-TemporaryAccessPass' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DefaultLength = 9; # Updated Property DefaultLifetimeInMinutes = 60; Ensure = "Present"; @@ -294,7 +355,9 @@ X509CertificateField = 'SubjectKeyIdentifier' } ); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; ExcludeTargets = @( MSFT_AADAuthenticationMethodPolicyX509ExcludeTarget{ @@ -317,7 +380,9 @@ Description = "This is an example"; DisplayName = "Example"; Ensure = "Present"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAuthorizationPolicy 'AADAuthPol' { @@ -335,13 +400,17 @@ GuestUserRole = 'Guest' PermissionGrantPolicyIdsAssignedToDefaultUserRole = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADConditionalAccessPolicy 'ConditionalAccessPolicy' { BuiltInControls = @("mfa"); ClientAppTypes = @("all"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DeviceFilterMode = "exclude"; DeviceFilterRule = "device.trustType -eq `"AzureAD`" -or device.trustType -eq `"ServerAD`" -or device.trustType -eq `"Workplace`""; DisplayName = "Example CAP"; @@ -359,7 +428,9 @@ AADCrossTenantAccessPolicy 'AADCrossTenantAccessPolicy' { AllowedCloudEndpoints = @("microsoftonline.us"); - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "MyXTAPPolicy"; Ensure = "Present"; IsSingleInstance = "Yes"; @@ -446,7 +517,9 @@ ) } } - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; InboundTrust = MSFT_AADCrossTenantAccessPolicyInboundTrust { IsCompliantDeviceAccepted = $False @@ -482,14 +555,18 @@ ) } }; - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; } AADEntitlementManagementAccessPackage 'myAccessPackage' { AccessPackagesIncompatibleWith = @(); CatalogId = "General"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Integration Tests"; DisplayName = "Integration Package"; Ensure = "Present"; @@ -521,7 +598,9 @@ IsApprovalRequiredForExtension = $False }; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageCatalog 'myAccessPackageCatalog' { @@ -532,26 +611,30 @@ IsExternallyVisible = $False # Updated Property Managedidentity = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'Human Resources' CatalogId = 'My Catalog' - Description = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" IsPendingOnboarding = $false # Updated Property - OriginId = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" OriginSystem = 'SharePointOnline' ResourceType = 'SharePoint Online Site' - Url = "https://$($Domain.Split('.')[0]).sharepoint.com/sites/HumanResources" + Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { Description = "This is the tenant partner - Updated"; # Updated Property DisplayName = "Test Tenant - DSC"; - ExternalSponsors = @("AdeleV@$Domain"); + ExternalSponsors = @("AdeleV@$TenantId"); IdentitySources = @( MSFT_AADEntitlementManagementConnectedOrganizationIdentitySource{ ExternalTenantId = "e7a80bcf-696e-40ca-8775-a7f85fbb3ebc" @@ -559,16 +642,20 @@ odataType = '#microsoft.graph.azureActiveDirectoryTenant' } ); - InternalSponsors = @("AdeleV@$Domain"); + InternalSponsors = @("AdeleV@$TenantId"); State = "configured"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADExternalIdentityPolicy 'AADExternalIdentityPolicy' { AllowDeletedIdentitiesDataRemoval = $False; AllowExternalIdentitiesToLeave = $True; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint IsSingleInstance = "Yes"; } AADGroup 'MyGroups' @@ -580,18 +667,22 @@ GroupTypes = @("Unified") MailNickname = "M365DSC" Visibility = "Private" - Owners = @("admin@$Domain", "AdeleV@$Domain") + Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADGroupLifecyclePolicy 'GroupLifecyclePolicy' { IsSingleInstance = "Yes" - AlternateNotificationEmails = @("john.smith@contoso.com") + AlternateNotificationEmails = @("john.smith@$TenantId") GroupLifetimeInDays = 99 ManagedGroupTypes = "Selected" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADGroupsNamingPolicy 'GroupsNamingPolicy' { @@ -599,7 +690,9 @@ CustomBlockedWordsList = @("CEO", "President") PrefixSuffixNamingRequirement = "[Title]Test[Company][GroupName][Office]Redmond" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADGroupsSettings 'GeneralGroupsSettings' { @@ -612,7 +705,9 @@ GuestUsageGuidelinesUrl = "https://contoso.com/guestusage" UsageGuidelinesUrl = "https://contoso.com/usage" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADNamedLocationPolicy 'CompanyNetwork' { @@ -621,7 +716,9 @@ IsTrusted = $False OdataType = "#microsoft.graph.ipNamedLocation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADRoleDefinition 'AADRoleDefinition1' { @@ -632,16 +729,20 @@ RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read","microsoft.directory/applicationPolicies/allProperties/update","microsoft.directory/applicationPolicies/basic/update" Version = "1.0" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADRoleEligibilityScheduleRequest 'MyRequest' { Action = "AdminUpdate"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Present"; IsValidationOnly = $False; - Principal = "AdeleV@$Domain"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:45:44Z' # Updated Property @@ -693,12 +794,16 @@ ExpireEligibleAssignment = "P365D"; PermanentActiveAssignmentisExpirationRequired = $False; PermanentEligibleAssignmentisExpirationRequired = $False; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = 'Present' } AADSecurityDefaults 'Defaults' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Security defaults is a set of basic identity security mechanisms recommended by Microsoft. When enabled, these recommendations will be automatically enforced in your organization. Administrators and users will be better protected from common identity related attacks."; DisplayName = "Security Defaults"; IsEnabled = $False; @@ -711,19 +816,23 @@ AlternativeNames = "AlternativeName1","AlternativeName3" # Updated Property AccountEnabled = $true AppRoleAssignmentRequired = $false - Homepage = "https://$Domain" - LogoutUrl = "https://$Domain/logout" - ReplyURLs = "https://$Domain" + Homepage = "https://$TenantId" + LogoutUrl = "https://$TenantId/logout" + ReplyURLs = "https://$TenantId" ServicePrincipalType = "Application" Tags = "{WindowsAzureActiveDirectoryIntegratedApp}" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADSocialIdentityProvider 'AADSocialIdentityProvider-Google' { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret-Updated"; # Updated Property - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Present"; IdentityProviderType = "Google"; @@ -733,7 +842,9 @@ IsSingleInstance = 'Yes' TechnicalNotificationMails = "example@contoso.com" MarketingNotificationEmails = "example@contoso.com" - Credential = $credsCredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADTokenLifetimePolicy 'SetTokenLifetimePolicy' { @@ -741,11 +852,13 @@ Definition = @("{`"TokenLifetimePolicy`":{`"Version`":1,`"AccessTokenLifetime`":`"02:00:00`"}}"); IsOrganizationDefault = $true # Updated Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" FirstName = "John" LastName = "Smith" DisplayName = "John J. Smith" @@ -754,7 +867,9 @@ Office = "Ottawa - Queen" UsageLocation = "US" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -771,7 +886,7 @@ # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From d7aaa77e01527bc78128e7da888f0196cdb4ed08 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 11:41:43 +0000 Subject: [PATCH 140/273] Updated {Update} AAD Integration Tests --- .../M365DSCIntegration.AAD.Remove.Tests.ps1 | 162 +++++++++++++----- 1 file changed, 123 insertions(+), 39 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 index 15a3838ebc..5af2a8c355 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 @@ -1,38 +1,60 @@ param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { AADAdministrativeUnit 'TestUnit' { DisplayName = 'Test-Unit' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADApplication 'AADApp1' { DisplayName = "AppDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAuthenticationContextClassReference 'AADAuthenticationContextClassReference-Test' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Description = "Context test Updated"; # Updated Property DisplayName = "My Context"; Ensure = "Absent"; @@ -51,41 +73,55 @@ ); IsSoftwareOathEnabled = $True; # Updated Property State = "enabled"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAuthenticationMethodPolicyFido2 'AADAuthenticationMethodPolicyFido2-Fido2' { Ensure = "Absent"; Id = "Fido2"; - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADAuthenticationMethodPolicySms 'AADAuthenticationMethodPolicySms-Sms' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "Sms"; } AADAuthenticationMethodPolicySoftware 'AADAuthenticationMethodPolicySoftware-SoftwareOath' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "SoftwareOath"; } AADAuthenticationMethodPolicyTemporary 'AADAuthenticationMethodPolicyTemporary-TemporaryAccessPass' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "TemporaryAccessPass"; } AADAuthenticationMethodPolicyVoice 'AADAuthenticationMethodPolicyVoice-Voice' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "Voice"; } AADAuthenticationMethodPolicyX509 'AADAuthenticationMethodPolicyX509-X509Certificate' { - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; Id = "X509Certificate"; } @@ -93,17 +129,23 @@ { DisplayName = "Example"; Ensure = "Absent"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADConditionalAccessPolicy 'ConditionalAccessPolicy' { DisplayName = 'Example CAP' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADCrossTenantAccessPolicyConfigurationPartner 'AADCrossTenantAccessPolicyConfigurationPartner' { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; PartnerTenantId = "12345-12345-12345-12345-12345"; } @@ -111,31 +153,51 @@ { DisplayName = 'Integration Package' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageAssignmentPolicy 'myAssignmentPolicyWithAccessReviewsSettings' { DisplayName = "External tenant"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageCatalog 'myAccessPackageCatalog' { DisplayName = 'My Catalog' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'Communication site' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { DisplayName = "Test Tenant - DSC"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + AADEntitlementManagementRoleAssignment 'AADEntitlementManagementRoleAssignment-Remove' + { + AppScopeId = "/"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + Ensure = "Absent"; + Principal = "John.Smith@$TenantId"; + RoleDefinition = "Catalog creator"; } AADGroup 'MyGroups' { @@ -144,34 +206,44 @@ MailEnabled = $True DisplayName = "DSCGroup" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADGroupLifecyclePolicy 'GroupLifecyclePolicy' { IsSingleInstance = "Yes" - AlternateNotificationEmails = @("john.smith@contoso.com") + AlternateNotificationEmails = @("john.smith@$TenantId") GroupLifetimeInDays = 99 ManagedGroupTypes = "Selected" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADGroupsNamingPolicy 'GroupsNamingPolicy' { IsSingleInstance = "Yes" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADGroupsSettings 'GeneralGroupsSettings' { IsSingleInstance = "Yes" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADNamedLocationPolicy 'CompanyNetwork' { DisplayName = "Company Network" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADRoleDefinition 'AADRoleDefinition1' { @@ -179,16 +251,20 @@ RolePermissions = "microsoft.directory/applicationPolicies/allProperties/read" DisplayName = "DSCRole1" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADRoleEligibilityScheduleRequest 'MyRequest' { Action = "AdminAssign"; - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DirectoryScopeId = "/"; Ensure = "Absent"; IsValidationOnly = $True; # Updated Property - Principal = "John.Smith@$OrganizationName"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Teams Communications Administrator"; ScheduleInfo = MSFT_AADRoleEligibilityScheduleRequestSchedule { startDateTime = '2023-09-01T02:40:44Z' @@ -204,13 +280,17 @@ AppId = "AppDisplayName" DisplayName = "AppDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADSocialIdentityProvider 'AADSocialIdentityProvider-Google' { ClientId = "Google-OAUTH"; ClientSecret = "FakeSecret-Updated"; # Updated Property - Credential = $credsCredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayName = "My Google Provider"; Ensure = "Absent"; IdentityProviderType = "Google"; @@ -219,14 +299,18 @@ { DisplayName = "PolicyDisplayName" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } AADUser 'ConfigureJohnSMith' { - UserPrincipalName = "John.Smith@$Domain" + UserPrincipalName = "John.Smith@$TenantId" DisplayName = "John J. Smith" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -243,7 +327,7 @@ # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From d1fd7d5b566e915af0e46be2b2627c9782cc098c Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Mon, 15 Jul 2024 13:34:08 +0100 Subject: [PATCH 141/273] Fix issue while creating policy for first time --- CHANGELOG.md | 6 ++++++ .../MSFT_EXOMessageClassification.psm1 | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..bdeda65995 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOMessageClassification + * Fix issue while creating policy for first time + FIXES [#4877](https://github.com/microsoft/Microsoft365DSC/issues/4877) + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 index 73eb17e9c8..26afd542c2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 @@ -258,7 +258,7 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - $MessageClassification = Get-MessageClassification -Identity $Identity + $MessageClassification = Get-MessageClassification -Identity $Identity -ErrorAction SilentlyContinue $MessageClassificationParams = [System.Collections.Hashtable]($PSBoundParameters) $MessageClassificationParams.Remove('Ensure') | Out-Null $MessageClassificationParams.Remove('Credential') | Out-Null From f30b8c876cc67c7647e7402b0db0823f671a9283 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 09:11:42 -0400 Subject: [PATCH 142/273] Updated Tests --- .../Examples/Resources/AADAdministrativeUnit/2-Update.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 index b669251635..f6e5d23508 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADAdministrativeUnit/2-Update.ps1 @@ -26,7 +26,7 @@ Configuration Example { DisplayName = 'Test-Unit' Description = 'Test Description Updated' # Updated Property - Visibility = 'HiddenMembership' # Updated Property + Visibility = 'Public' MembershipRule = "(user.country -eq `"US`")" # Updated Property MembershipRuleProcessingState = 'On' MembershipType = 'Dynamic' From 553190a1d64163fc986d92184995506ad546bebc Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 13:13:20 +0000 Subject: [PATCH 143/273] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/azure-ad/AADAdministrativeUnit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/azure-ad/AADAdministrativeUnit.md b/docs/docs/resources/azure-ad/AADAdministrativeUnit.md index 481d371ccf..89dd351064 100644 --- a/docs/docs/resources/azure-ad/AADAdministrativeUnit.md +++ b/docs/docs/resources/azure-ad/AADAdministrativeUnit.md @@ -153,7 +153,7 @@ Configuration Example { DisplayName = 'Test-Unit' Description = 'Test Description Updated' # Updated Property - Visibility = 'HiddenMembership' # Updated Property + Visibility = 'Public' MembershipRule = "(user.country -eq `"US`")" # Updated Property MembershipRuleProcessingState = 'On' MembershipType = 'Dynamic' From 5c477295f45ad8045eec9dccf06fbb9b8daa5d2a Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 13:13:32 +0000 Subject: [PATCH 144/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 index fec5ae4143..b334e1317d 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 @@ -38,7 +38,7 @@ { DisplayName = 'Test-Unit' Description = 'Test Description Updated' # Updated Property - Visibility = 'HiddenMembership' # Updated Property + Visibility = 'Public' MembershipRule = "(user.country -eq `"US`")" # Updated Property MembershipRuleProcessingState = 'On' MembershipType = 'Dynamic' From 44f35ee7e381803a2945ec5f567ca49e13fcb54b Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 10:40:29 -0400 Subject: [PATCH 145/273] Additional Fixes --- .../MSFT_AADAdministrativeUnit.psm1 | 2 +- ...SFT_AADAuthenticationFlowPolicy.schema.mof | 2 +- ...anagementAccessPackageCatalogResource.psm1 | 1 - .../1-Create.ps1 | 22 +++++++++---------- .../2-Update.ps1 | 22 +++++++++---------- .../3-Remove.ps1 | 2 +- 6 files changed, 23 insertions(+), 28 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 index aec6e79b42..413dc6b7b7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 @@ -120,7 +120,7 @@ function Get-TargetResource if ($null -eq $getValue -and -not [string]::IsNullOrEmpty($DisplayName)) { - Write-Verbose -Message "Could not find an Azure AD Administrative Unit with Id {$Id}" + Write-Verbose -Message "Could not find an Azure AD Administrative Unit by Id, trying by DisplayName {$DisplayName}" if (-Not [string]::IsNullOrEmpty($DisplayName)) { if ($null -ne $Script:exportedInstances -and $Script:ExportMode) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.schema.mof index cffeaae1e1..5d4a38b79d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.schema.mof @@ -5,7 +5,7 @@ class MSFT_AADAuthenticationFlowPolicy : OMI_BaseResource [Write, Description("Unique identifier of the Authentication Flow Policy.")] String Id; [Write, Description("Display name of the Authentication Flow Policy.")] String DisplayName; [Write, Description("Description of the Authentication Flow Policy.")] String Description; - [Write, Description("Indicates whether self-service sign-up flow is enabled or disabled. The default value is false. This property isn't a key. Required.")] String SelfServiceSignUpEnabled; + [Write, Description("Indicates whether self-service sign-up flow is enabled or disabled. The default value is false. This property isn't a key. Required.")] Boolean SelfServiceSignUpEnabled; [Write, Description("Credentials of the Azure Active Directory Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 index 5b570d0d55..90a27ef215 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 @@ -717,7 +717,6 @@ function Export-TargetResource [array]$resources = Get-MgBetaEntitlementManagementAccessPackageCatalogAccessPackageResource -AccessPackageCatalogId $catalogId -ErrorAction Stop $j = 1 - $dscContent = '' if ($resources.Length -eq 0) { diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index c0c53860d8..b2ecd0d7e8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -24,18 +24,16 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Human Resources' - CatalogId = 'My Catalog' - Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - IsPendingOnboarding = $true - OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - OriginSystem = 'SharePointOnline' - ResourceType = 'SharePoint Online Site' - Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - Ensure = 'Present' - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint + ApplicationId = $ApplicationId; + CatalogId = "My Catalog"; + CertificateThumbprint = $CertificateThumbprint; + DisplayName = "Integration Package Resource"; + OriginSystem = "AADGroup"; + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + Ensure = "Present"; + IsPendingOnboarding = $True; + TenantId = $TenantId; + Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index c91456105f..868cdfdd31 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -24,18 +24,16 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Human Resources' - CatalogId = 'My Catalog' - Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - IsPendingOnboarding = $false # Updated Property - OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - OriginSystem = 'SharePointOnline' - ResourceType = 'SharePoint Online Site' - Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - Ensure = 'Present' - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint + ApplicationId = $ApplicationId; + CatalogId = "My Catalog"; + CertificateThumbprint = $CertificateThumbprint; + DisplayName = "Integration Package Resource"; + OriginSystem = "AADGroup"; + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + Ensure = "Present"; + IsPendingOnboarding = $False; + TenantId = $TenantId; + Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index a6948ba719..fc582fc96e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -24,7 +24,7 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Communication site' + DisplayName = 'Integration Package Resource' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From b4221e494e78476a177a1674589309d2115a6ba3 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 14:41:47 +0000 Subject: [PATCH 146/273] Updated Resources and Cmdlet documentation pages --- .../azure-ad/AADAuthenticationFlowPolicy.md | 2 +- ...tManagementAccessPackageCatalogResource.md | 46 +++++++++---------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md b/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md index 0f173f0864..cf53b3ae11 100644 --- a/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md +++ b/docs/docs/resources/azure-ad/AADAuthenticationFlowPolicy.md @@ -8,7 +8,7 @@ | **Id** | Write | String | Unique identifier of the Authentication Flow Policy. | | | **DisplayName** | Write | String | Display name of the Authentication Flow Policy. | | | **Description** | Write | String | Description of the Authentication Flow Policy. | | -| **SelfServiceSignUpEnabled** | Write | String | Indicates whether self-service sign-up flow is enabled or disabled. The default value is false. This property isn't a key. Required. | | +| **SelfServiceSignUpEnabled** | Write | Boolean | Indicates whether self-service sign-up flow is enabled or disabled. The default value is false. This property isn't a key. Required. | | | **Credential** | Write | PSCredential | Credentials of the Azure Active Directory 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. | | diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 09a7a2a74f..8d461435a2 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -158,18 +158,16 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Human Resources' - CatalogId = 'My Catalog' - Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - IsPendingOnboarding = $true - OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - OriginSystem = 'SharePointOnline' - ResourceType = 'SharePoint Online Site' - Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - Ensure = 'Present' - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint + ApplicationId = $ApplicationId; + CatalogId = "My Catalog"; + CertificateThumbprint = $CertificateThumbprint; + DisplayName = "Integration Package Resource"; + OriginSystem = "AADGroup"; + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + Ensure = "Present"; + IsPendingOnboarding = $True; + TenantId = $TenantId; + Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } @@ -202,18 +200,16 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Human Resources' - CatalogId = 'My Catalog' - Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - IsPendingOnboarding = $false # Updated Property - OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - OriginSystem = 'SharePointOnline' - ResourceType = 'SharePoint Online Site' - Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - Ensure = 'Present' - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint + ApplicationId = $ApplicationId; + CatalogId = "My Catalog"; + CertificateThumbprint = $CertificateThumbprint; + DisplayName = "Integration Package Resource"; + OriginSystem = "AADGroup"; + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + Ensure = "Present"; + IsPendingOnboarding = $False; + TenantId = $TenantId; + Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } @@ -246,7 +242,7 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Communication site' + DisplayName = 'Integration Package Resource' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From dabbbf72f0bc8f5103459d0795405ba5ae6b3406 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 14:43:25 +0000 Subject: [PATCH 147/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index cc4e3f0fe7..546277a2e8 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -473,7 +473,7 @@ "Option": "Write" }, { - "CIMType": "String", + "CIMType": "Boolean", "Name": "SelfServiceSignUpEnabled", "Option": "Write" }, From d17ab3a1e8dc31bc9336f94ea19bf687e42230d2 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 10:49:25 -0400 Subject: [PATCH 148/273] FIxes Tests --- .../1-Create.ps1 | 3 +-- .../2-Update.ps1 | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index b2ecd0d7e8..17fb65dfe6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -31,9 +31,8 @@ Configuration Example OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; - IsPendingOnboarding = $True; + IsPendingOnboarding = $False; TenantId = $TenantId; - Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 868cdfdd31..17fb65dfe6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -33,7 +33,6 @@ Configuration Example Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; - Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } From 1093885dfc63934ce99fc2f5b1f036ea0ec4f5a7 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 14:50:37 +0000 Subject: [PATCH 149/273] Updated Resources and Cmdlet documentation pages --- .../AADEntitlementManagementAccessPackageCatalogResource.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 8d461435a2..d9a67f5cf2 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -165,9 +165,8 @@ Configuration Example OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; - IsPendingOnboarding = $True; + IsPendingOnboarding = $False; TenantId = $TenantId; - Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } @@ -209,7 +208,6 @@ Configuration Example Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; - Url = "https://myapps.microsoft.com/$TenantId/signin/$ApplicationId/"; } } } From d68d568820be75275027b97f240af9dde09c8bf6 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 14:50:46 +0000 Subject: [PATCH 150/273] Updated {Create} AAD Integration Tests --- .../M365DSCIntegration.AAD.Create.Tests.ps1 | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index e7706feb55..b8d886fb89 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -237,18 +237,15 @@ } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Human Resources' - CatalogId = 'My Catalog' - Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - IsPendingOnboarding = $true - OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - OriginSystem = 'SharePointOnline' - ResourceType = 'SharePoint Online Site' - Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - Ensure = 'Present' - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint + ApplicationId = $ApplicationId; + CatalogId = "My Catalog"; + CertificateThumbprint = $CertificateThumbprint; + DisplayName = "Integration Package Resource"; + OriginSystem = "AADGroup"; + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + Ensure = "Present"; + IsPendingOnboarding = $False; + TenantId = $TenantId; } AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { From c19896c440e7c5864435b09c7ae53a9537d56095 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 14:51:00 +0000 Subject: [PATCH 151/273] Updated {Update} AAD Integration Tests --- .../M365DSCIntegration.AAD.Update.Tests.ps1 | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 index b334e1317d..130bf128bf 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 @@ -617,18 +617,15 @@ } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Human Resources' - CatalogId = 'My Catalog' - Description = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - IsPendingOnboarding = $false # Updated Property - OriginId = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - OriginSystem = 'SharePointOnline' - ResourceType = 'SharePoint Online Site' - Url = "https://$($TenantId.Split('.')[0]).sharepoint.com/sites/HumanResources" - Ensure = 'Present' - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint + ApplicationId = $ApplicationId; + CatalogId = "My Catalog"; + CertificateThumbprint = $CertificateThumbprint; + DisplayName = "Integration Package Resource"; + OriginSystem = "AADGroup"; + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + Ensure = "Present"; + IsPendingOnboarding = $False; + TenantId = $TenantId; } AADEntitlementManagementConnectedOrganization 'MyConnectedOrganization' { From 27e7a2d725a16ea50ed966f311bdbdfdfae73daf Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 14:51:12 +0000 Subject: [PATCH 152/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 index 5af2a8c355..afc1d30bdb 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 @@ -175,7 +175,7 @@ } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Communication site' + DisplayName = 'Integration Package Resource' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From e65986a2daf3e9de65ef6da36911ec59b2cb07e0 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 11:39:15 -0400 Subject: [PATCH 153/273] Updated Create AAD Tests --- .../1-Create.ps1 | 2 +- .../2-Update.ps1 | 2 +- .../3-Remove.ps1 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index 17fb65dfe6..2621343088 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -27,7 +27,7 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Integration Package Resource"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 17fb65dfe6..2621343088 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -27,7 +27,7 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Integration Package Resource"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index fc582fc96e..84e938ce40 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -24,7 +24,7 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Integration Package Resource' + DisplayName = 'DSCGroup' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 53839a0301cdc17e55db09968163d2c28e0a5757 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 15:41:27 +0000 Subject: [PATCH 154/273] Updated Resources and Cmdlet documentation pages --- .../AADEntitlementManagementAccessPackageCatalogResource.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index d9a67f5cf2..28c2cd92a4 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -161,7 +161,7 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Integration Package Resource"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; @@ -202,7 +202,7 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Integration Package Resource"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; @@ -240,7 +240,7 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Integration Package Resource' + DisplayName = 'DSCGroup' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 08e4e35d874c5a8b438292f3761210be2515886f Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:09:01 +0000 Subject: [PATCH 155/273] Updated {Create} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index b8d886fb89..b0b45ac2d3 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -240,7 +240,7 @@ ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Integration Package Resource"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; From 58d7f687ad3b280ca438c9b08eaae5d563f48f9f Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:09:16 +0000 Subject: [PATCH 156/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 index 130bf128bf..3c148f7c95 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 @@ -620,7 +620,7 @@ ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Integration Package Resource"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; From 204d4a7939668f82984caa40a0290c35f70fc677 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:09:28 +0000 Subject: [PATCH 157/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 index afc1d30bdb..03d456d623 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 @@ -175,7 +175,7 @@ } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Integration Package Resource' + DisplayName = 'DSCGroup' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 6223ce3b4c04d002c28f28970805312b2e61a5a1 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 13:54:31 -0400 Subject: [PATCH 158/273] Finance Team --- .../1-Create.ps1 | 4 ++-- .../2-Update.ps1 | 4 ++-- .../3-Remove.ps1 | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index 2621343088..37da64efb3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -27,9 +27,9 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "DSCGroup"; + DisplayName = "Finance Team"; OriginSystem = "AADGroup"; - OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 2621343088..37da64efb3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -27,9 +27,9 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "DSCGroup"; + DisplayName = "Finance Team"; OriginSystem = "AADGroup"; - OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index 84e938ce40..ba3a948677 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -24,7 +24,7 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'DSCGroup' + DisplayName = 'Finance Team' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 5e1dfbae9dd39a761f4d436dfa01a8b8c63abaa8 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:57:49 +0000 Subject: [PATCH 159/273] Updated Resources and Cmdlet documentation pages --- ...ntitlementManagementAccessPackageCatalogResource.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 28c2cd92a4..16f5ff6611 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -161,9 +161,9 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "DSCGroup"; + DisplayName = "Finance Team"; OriginSystem = "AADGroup"; - OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; @@ -202,9 +202,9 @@ Configuration Example ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "DSCGroup"; + DisplayName = "Finance Team"; OriginSystem = "AADGroup"; - OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; @@ -240,7 +240,7 @@ Configuration Example { AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'DSCGroup' + DisplayName = 'Finance Team' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 8d610913159d3aa161cbfb0087e54d27e5eb391d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:58:19 +0000 Subject: [PATCH 160/273] Updated {Create} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index b0b45ac2d3..0e5291e77f 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -240,9 +240,9 @@ ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "DSCGroup"; + DisplayName = "Finance Team"; OriginSystem = "AADGroup"; - OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; From b947b1b32dac6ca79f7c8b01a2c028b73e38bc79 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:58:33 +0000 Subject: [PATCH 161/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 index 3c148f7c95..94b2085c4c 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 @@ -620,9 +620,9 @@ ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "DSCGroup"; + DisplayName = "Finance Team"; OriginSystem = "AADGroup"; - OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' + OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; From 05c00ef5ef48296ec4250b171473bee08aeb2c3d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 17:58:44 +0000 Subject: [PATCH 162/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 index 03d456d623..2f4fce0d04 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 @@ -175,7 +175,7 @@ } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'DSCGroup' + DisplayName = 'Finance Team' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 0d8e6a092a2e38619f6d1cb7d12521c4f2802f3c Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 14:25:37 -0400 Subject: [PATCH 163/273] Testing Dependencies in Tests --- ...anagementAccessPackageCatalogResource.psm1 | 15 +++++++++++++-- .../1-Create.ps1 | 19 +++++++++++++++++-- .../2-Update.ps1 | 19 +++++++++++++++++-- .../3-Remove.ps1 | 17 ++++++++++++++++- 4 files changed, 63 insertions(+), 7 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 index 90a27ef215..06bdda2938 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 @@ -183,7 +183,7 @@ function Get-TargetResource Description = $getValue.description DisplayName = $getValue.displayName IsPendingOnboarding = $getValue.isPendingOnboarding #Read-Only - OriginId = $getValue.originId + OriginId = $OriginId OriginSystem = $getValue.originSystem ResourceType = $getValue.resourceType Url = $getValue.url @@ -336,9 +336,20 @@ function Set-TargetResource $PSBoundParameters.Remove('isPendingOnboarding') | Out-Null $PSBoundParameters.Remove('AccessTokens') | Out-Null + $resource = ([Hashtable]$PSBoundParameters).clone() + $ObjectGuid = [System.Guid]::empty + if ($OriginSystem -eq 'AADGroup' -and ` + -not [System.Guid]::TryParse($OriginId, [System.Management.Automation.PSReference]$ObjectGuid)) + { + Write-Verbose -Message "The Group reference was provided by name {$OriginId}. Retrieving associated id." + $groupInfo = Get-MgGroup -Filter "DisplayName eq '$OriginId'" + if ($null -ne $groupInfo) + { + $resource.OriginId = $groupInfo.Id + } + } if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') { - $resource = ([Hashtable]$PSBoundParameters).clone() $ObjectGuid = [System.Guid]::empty if (-not [System.Guid]::TryParse($CatalogId, [System.Management.Automation.PSReference]$ObjectGuid)) { diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index 37da64efb3..67cb07eb02 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -22,14 +22,29 @@ Configuration Example node localhost { + AADGroup 'MyGroups' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Owners = @("admin@$TenantId", "AdeleV@$TenantId") + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Finance Team"; + DisplayName = "MyGroup"; OriginSystem = "AADGroup"; - OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' + OriginId = 'MyGroup' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 37da64efb3..30edfaa416 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -22,14 +22,29 @@ Configuration Example node localhost { + AADGroup 'MyGroups' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Owners = @("admin@$TenantId", "AdeleV@$TenantId") + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Finance Team"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; - OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index ba3a948677..3739d9713b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -22,9 +22,24 @@ Configuration Example node localhost { + AADGroup 'MyGroups' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Owners = @("admin@$TenantId", "AdeleV@$TenantId") + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Finance Team' + DisplayName = 'DSCGroup' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 92fffb0c3933f2fa15881047355e2cb0c00fe0d1 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 18:28:01 +0000 Subject: [PATCH 164/273] Updated Resources and Cmdlet documentation pages --- ...tManagementAccessPackageCatalogResource.md | 55 +++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 16f5ff6611..10a0747268 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -156,14 +156,29 @@ Configuration Example node localhost { + AADGroup 'MyGroups' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Owners = @("admin@$TenantId", "AdeleV@$TenantId") + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Finance Team"; + DisplayName = "MyGroup"; OriginSystem = "AADGroup"; - OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' + OriginId = 'MyGroup' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; @@ -197,14 +212,29 @@ Configuration Example node localhost { + AADGroup 'MyGroups' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Owners = @("admin@$TenantId", "AdeleV@$TenantId") + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Finance Team"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; - OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; @@ -238,9 +268,24 @@ Configuration Example node localhost { + AADGroup 'MyGroups' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Owners = @("admin@$TenantId", "AdeleV@$TenantId") + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Finance Team' + DisplayName = 'DSCGroup' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From 6c8483232b3685fffeccbe93255f90d0b3442e40 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 14:28:58 -0400 Subject: [PATCH 165/273] Additional Fixes --- .../1-Create.ps1 | 2 +- .../2-Update.ps1 | 2 +- .../3-Remove.ps1 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index 67cb07eb02..60af93b71c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -22,7 +22,7 @@ Configuration Example node localhost { - AADGroup 'MyGroups' + AADGroup 'DependantGroup' { DisplayName = "MyGroup" Description = "Microsoft DSC Group" diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 30edfaa416..37bc7c56a4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -22,7 +22,7 @@ Configuration Example node localhost { - AADGroup 'MyGroups' + AADGroup 'DependantGroup' { DisplayName = "MyGroup" Description = "Microsoft DSC Group" diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index 3739d9713b..f0616b1b32 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -22,7 +22,7 @@ Configuration Example node localhost { - AADGroup 'MyGroups' + AADGroup 'DependantGroup' { DisplayName = "MyGroup" Description = "Microsoft DSC Group" From fef7da517714af734f0feb8332c4d51df516b9e7 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 18:30:36 +0000 Subject: [PATCH 166/273] Updated Resources and Cmdlet documentation pages --- .../AADEntitlementManagementAccessPackageCatalogResource.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 10a0747268..5f54db492e 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -156,7 +156,7 @@ Configuration Example node localhost { - AADGroup 'MyGroups' + AADGroup 'DependantGroup' { DisplayName = "MyGroup" Description = "Microsoft DSC Group" @@ -212,7 +212,7 @@ Configuration Example node localhost { - AADGroup 'MyGroups' + AADGroup 'DependantGroup' { DisplayName = "MyGroup" Description = "Microsoft DSC Group" @@ -268,7 +268,7 @@ Configuration Example node localhost { - AADGroup 'MyGroups' + AADGroup 'DependantGroup' { DisplayName = "MyGroup" Description = "Microsoft DSC Group" From 963006e580ac5bee92b3a986f8d0326addba423a Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 15:07:17 -0400 Subject: [PATCH 167/273] Fixes --- .../1-Create.ps1 | 1 - .../2-Update.ps1 | 15 --------------- .../3-Remove.ps1 | 15 --------------- 3 files changed, 31 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 index 60af93b71c..6d8b38dec1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/1-Create.ps1 @@ -31,7 +31,6 @@ Configuration Example GroupTypes = @("Unified") MailNickname = "MyGroup" Visibility = "Private" - Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 index 37bc7c56a4..2621343088 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/2-Update.ps1 @@ -22,21 +22,6 @@ Configuration Example node localhost { - AADGroup 'DependantGroup' - { - DisplayName = "MyGroup" - Description = "Microsoft DSC Group" - SecurityEnabled = $True - MailEnabled = $True - GroupTypes = @("Unified") - MailNickname = "MyGroup" - Visibility = "Private" - Owners = @("admin@$TenantId", "AdeleV@$TenantId") - Ensure = "Present" - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint - } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 index f0616b1b32..84e938ce40 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementAccessPackageCatalogResource/3-Remove.ps1 @@ -22,21 +22,6 @@ Configuration Example node localhost { - AADGroup 'DependantGroup' - { - DisplayName = "MyGroup" - Description = "Microsoft DSC Group" - SecurityEnabled = $True - MailEnabled = $True - GroupTypes = @("Unified") - MailNickname = "MyGroup" - Visibility = "Private" - Owners = @("admin@$TenantId", "AdeleV@$TenantId") - Ensure = "Absent" - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint - } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'DSCGroup' From cc48b1dc6c1848b2970428a37b02312484afe134 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:08:47 +0000 Subject: [PATCH 168/273] Updated Resources and Cmdlet documentation pages --- ...tManagementAccessPackageCatalogResource.md | 31 ------------------- 1 file changed, 31 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md index 5f54db492e..6477f179a4 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementAccessPackageCatalogResource.md @@ -165,7 +165,6 @@ Configuration Example GroupTypes = @("Unified") MailNickname = "MyGroup" Visibility = "Private" - Owners = @("admin@$TenantId", "AdeleV@$TenantId") Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId @@ -212,21 +211,6 @@ Configuration Example node localhost { - AADGroup 'DependantGroup' - { - DisplayName = "MyGroup" - Description = "Microsoft DSC Group" - SecurityEnabled = $True - MailEnabled = $True - GroupTypes = @("Unified") - MailNickname = "MyGroup" - Visibility = "Private" - Owners = @("admin@$TenantId", "AdeleV@$TenantId") - Ensure = "Present" - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint - } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; @@ -268,21 +252,6 @@ Configuration Example node localhost { - AADGroup 'DependantGroup' - { - DisplayName = "MyGroup" - Description = "Microsoft DSC Group" - SecurityEnabled = $True - MailEnabled = $True - GroupTypes = @("Unified") - MailNickname = "MyGroup" - Visibility = "Private" - Owners = @("admin@$TenantId", "AdeleV@$TenantId") - Ensure = "Absent" - ApplicationId = $ApplicationId - TenantId = $TenantId - CertificateThumbprint = $CertificateThumbprint - } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { DisplayName = 'DSCGroup' From d5bb784816c6e9371646f5bcfaae11c2068a1256 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Mon, 15 Jul 2024 18:15:38 +0200 Subject: [PATCH 169/273] Replace not applicable filter --- ...ndowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 index b7ffd3926a..6948b0b3ce 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.psm1 @@ -95,8 +95,10 @@ function Get-TargetResource if (-not [System.String]::IsNullOrEmpty($DisplayName)) { $getValue = Get-MgBetaDeviceManagementWindowsQualityUpdateProfile ` - -Filter "DisplayName eq '$DisplayName'" ` - -ErrorAction SilentlyContinue + -All ` + -ErrorAction SilentlyContinue | Where-Object -FilterScript { + $_.DisplayName -eq $DisplayName + } } } #endregion From e432df57736fa73459371bdb060e7831c92eeba5 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:18:43 +0000 Subject: [PATCH 170/273] Updated {Create} AAD Integration Tests --- .../M365DSCIntegration.AAD.Create.Tests.ps1 | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index 0e5291e77f..4f6308075e 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -235,14 +235,28 @@ TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint } + AADGroup 'DependantGroup' + { + DisplayName = "MyGroup" + Description = "Microsoft DSC Group" + SecurityEnabled = $True + MailEnabled = $True + GroupTypes = @("Unified") + MailNickname = "MyGroup" + Visibility = "Private" + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Finance Team"; + DisplayName = "MyGroup"; OriginSystem = "AADGroup"; - OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' + OriginId = 'MyGroup' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; From 2aee93cd99d83477286820337674366a51bcedb1 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:18:58 +0000 Subject: [PATCH 171/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 index 94b2085c4c..3c148f7c95 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Update.Tests.ps1 @@ -620,9 +620,9 @@ ApplicationId = $ApplicationId; CatalogId = "My Catalog"; CertificateThumbprint = $CertificateThumbprint; - DisplayName = "Finance Team"; + DisplayName = "DSCGroup"; OriginSystem = "AADGroup"; - OriginId = '50523ab8-a3d2-4b4f-a77d-16bd1abd328f' + OriginId = '849b3661-61a8-44a8-92e7-fcc91d296235' Ensure = "Present"; IsPendingOnboarding = $False; TenantId = $TenantId; From 30fd79e8374d469f345adaa3c8eb0a5ecef7c17c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:19:10 +0000 Subject: [PATCH 172/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 index 2f4fce0d04..03d456d623 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 @@ -175,7 +175,7 @@ } AADEntitlementManagementAccessPackageCatalogResource 'myAccessPackageCatalogResource' { - DisplayName = 'Finance Team' + DisplayName = 'DSCGroup' Ensure = 'Absent' ApplicationId = $ApplicationId TenantId = $TenantId From c940ea1b8d80b5dea8c1bfc8148d78d59dc5d42d Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 15 Jul 2024 15:50:08 -0400 Subject: [PATCH 173/273] Fixes Integration Tests --- .../AADEntitlementManagementRoleAssignment/1-Create.ps1 | 2 +- .../AADEntitlementManagementRoleAssignment/3-Remove.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 index 3794cb68fa..f12f38c5d4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/1-Create.ps1 @@ -29,7 +29,7 @@ Configuration Example TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; - Principal = "John.Smith@$TenantId"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Catalog creator"; } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 index b673df788c..4dab0177a9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/AADEntitlementManagementRoleAssignment/3-Remove.ps1 @@ -29,7 +29,7 @@ Configuration Example TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; - Principal = "John.Smith@$TenantId"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Catalog creator"; } } From 290dfc5ef6c9d8d355ed9e4cb08fcf4349c490a9 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:52:05 +0000 Subject: [PATCH 174/273] Updated Resources and Cmdlet documentation pages --- .../azure-ad/AADEntitlementManagementRoleAssignment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md b/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md index f9c3bbfb34..806f8b1ffe 100644 --- a/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md +++ b/docs/docs/resources/azure-ad/AADEntitlementManagementRoleAssignment.md @@ -83,7 +83,7 @@ Configuration Example TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; - Principal = "John.Smith@$TenantId"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Catalog creator"; } } @@ -122,7 +122,7 @@ Configuration Example TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; - Principal = "John.Smith@$TenantId"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Catalog creator"; } } From 46b4611c302e116268b2296291a6efd32d94daed Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:52:47 +0000 Subject: [PATCH 175/273] Updated {Create} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 index 4f6308075e..b4182546dc 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Create.Tests.ps1 @@ -287,7 +287,7 @@ TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint Ensure = "Present"; - Principal = "John.Smith@$TenantId"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Catalog creator"; } AADGroup 'MyGroups' From 2a960c20658c91e9819afe586d115d8829f9558d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 15 Jul 2024 19:53:11 +0000 Subject: [PATCH 176/273] Updated {Update} AAD Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 index 03d456d623..656177cd9a 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.AAD.Remove.Tests.ps1 @@ -196,7 +196,7 @@ TenantId = $TenantId CertificateThumbprint = $CertificateThumbprint Ensure = "Absent"; - Principal = "John.Smith@$TenantId"; + Principal = "AdeleV@$TenantId"; RoleDefinition = "Catalog creator"; } AADGroup 'MyGroups' From 28b260074ac14c20aef1aa434543b5e809eeb21a Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Mon, 15 Jul 2024 22:15:12 +0200 Subject: [PATCH 177/273] Add support for converting Intune assignments directly from Graph --- CHANGELOG.md | 6 ++++ .../Modules/M365DSCDRGUtil.psm1 | 29 +++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..42d3d8b2f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCDRGUtil + * Add support for converting Intune assignments directly from Graph. + FIXES [#4875](https://github.com/microsoft/Microsoft365DSC/issues/4875) + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 73d062f5c2..a20eeb14d6 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1091,9 +1091,32 @@ function ConvertFrom-IntunePolicyAssignment foreach ($assignment in $Assignments) { $hashAssignment = @{} - $dataType = $assignment.Target.AdditionalProperties."@odata.type" - $groupId = $assignment.Target.AdditionalProperties.groupId - $collectionId = $assignment.Target.AdditionalProperties.collectionId + if ($null -ne $assignment.Target.'@odata.type') + { + $dataType = $assignment.Target.'@odata.type' + } + else + { + $dataType = $assignment.Target.AdditionalProperties.'@odata.type' + } + + if ($null -ne $assignment.Target.groupId) + { + $groupId = $assignment.Target.groupId + } + else + { + $groupId = $assignment.Target.AdditionalProperties.groupId + } + + if ($null -ne $assignment.Target.collectionId) + { + $collectionId = $assignment.Target.collectionId + } + else + { + $collectionId = $assignment.Target.AdditionalProperties.collectionId + } $hashAssignment.Add('dataType',$dataType) if (-not [string]::IsNullOrEmpty($groupId)) From 4ecb5bde816efb3773b5b32b41687d6577c33590 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 08:34:11 -0400 Subject: [PATCH 178/273] Fixes for EXO Integration Tests --- .../Resources/EXOAcceptedDomain/1-Create.ps1 | 21 ++++++++++---- .../Resources/EXOAcceptedDomain/2-Update.ps1 | 20 +++++++++---- .../Resources/EXOAcceptedDomain/3-Remove.ps1 | 20 +++++++++---- .../1-Create.ps1 | 21 ++++++++++---- .../2-Update.ps1 | 21 ++++++++++---- .../3-Remove.ps1 | 21 ++++++++++---- .../EXOAddressBookPolicy/1-Create.ps1 | 21 ++++++++++---- .../EXOAddressBookPolicy/2-Update.ps1 | 21 ++++++++++---- .../EXOAddressBookPolicy/3-Remove.ps1 | 21 ++++++++++---- .../Resources/EXOAddressList/1-Create.ps1 | 18 +++++++++--- .../Resources/EXOAddressList/2-Update.ps1 | 18 +++++++++--- .../Resources/EXOAddressList/3-Remove.ps1 | 18 +++++++++--- .../Resources/EXOAntiPhishPolicy/1-Create.ps1 | 18 +++++++++--- .../Resources/EXOAntiPhishPolicy/2-Update.ps1 | 18 +++++++++--- .../Resources/EXOAntiPhishPolicy/3-Remove.ps1 | 18 +++++++++--- .../Resources/EXOAntiPhishRule/1-Create.ps1 | 21 ++++++++++---- .../Resources/EXOAntiPhishRule/2-Update.ps1 | 21 ++++++++++---- .../Resources/EXOAntiPhishRule/3-Remove.ps1 | 18 +++++++++--- .../EXOApplicationAccessPolicy/1-Create.ps1 | 24 ++++++++++------ .../EXOApplicationAccessPolicy/2-Update.ps1 | 24 ++++++++++------ .../EXOApplicationAccessPolicy/3-Remove.ps1 | 21 ++++++++++---- .../EXOAtpPolicyForO365/2-Update.ps1 | 18 +++++++++--- .../EXOAuthenticationPolicy/1-Create.ps1 | 18 +++++++++--- .../EXOAuthenticationPolicy/2-Update.ps1 | 18 +++++++++--- .../EXOAuthenticationPolicy/3-Remove.ps1 | 18 +++++++++--- .../1-Create.ps1 | 21 ++++++++++---- .../3-Remove.ps1 | 21 ++++++++++---- .../EXOAvailabilityAddressSpace/1-Create.ps1 | 21 ++++++++++---- .../EXOAvailabilityAddressSpace/2-Update.ps1 | 21 ++++++++++---- .../EXOAvailabilityAddressSpace/3-Remove.ps1 | 21 ++++++++++---- .../EXOAvailabilityConfig/1-Create.ps1 | 25 +++++++++++------ .../EXOAvailabilityConfig/2-Update.ps1 | 25 +++++++++++------ .../EXOAvailabilityConfig/3-Remove.ps1 | 25 +++++++++++------ .../Resources/EXOCASMailboxPlan/2-Update.ps1 | 18 +++++++++--- .../EXOCASMailboxSettings/2-Update.ps1 | 25 +++++++++++------ .../EXOCalendarProcessing/2-Update.ps1 | 27 ++++++++++++------ .../EXOClientAccessRule/1-Create.ps1 | 18 +++++++++--- .../EXOClientAccessRule/2-Update.ps1 | 18 +++++++++--- .../EXOClientAccessRule/3-Remove.ps1 | 18 +++++++++--- .../EXODataClassification/2-Update.ps1 | 18 +++++++++--- .../EXODataEncryptionPolicy/3-Remove.ps1 | 18 +++++++++--- .../EXODistributionGroup/1-Create.ps1 | 27 ++++++++++++------ .../EXODistributionGroup/2-Update.ps1 | 28 ++++++++++++------- .../EXODistributionGroup/3-Remove.ps1 | 22 ++++++++++----- .../EXOEOPProtectionPolicyRule/1-Update.ps1 | 21 +++++++++----- .../EXOEmailAddressPolicy/1-Create.ps1 | 22 +++++++++++---- .../EXOEmailAddressPolicy/2-Update.ps1 | 23 ++++++++++----- .../EXOEmailAddressPolicy/3-Remove.ps1 | 19 +++++++++---- .../EXOExternalInOutlook/1-Update.ps1 | 19 ++++++++++--- .../EXOGlobalAddressList/1-Create.ps1 | 22 +++++++++++---- .../EXOGlobalAddressList/2-Update.ps1 | 22 +++++++++++---- .../EXOGlobalAddressList/3-Remove.ps1 | 22 +++++++++++---- .../Resources/EXOGroupSettings/2-Update.ps1 | 24 ++++++++++------ 53 files changed, 800 insertions(+), 307 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/1-Create.ps1 index 7c28c8da3a..35653217e9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/1-Create.ps1 @@ -6,22 +6,31 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" OutboundOnly = $false Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/2-Update.ps1 index 189b0d02d1..70ce45e32c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,11 +24,13 @@ Configuration Example { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" OutboundOnly = $true # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/3-Remove.ps1 index e255383bdd..4cd7e144ad 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAcceptedDomain/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,10 +24,12 @@ Configuration Example { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/1-Create.ps1 index 51c7077886..573f1f6785 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example QueryString = "iOS 6.1 10B146" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/2-Update.ps1 index 662f870958..89cebb2840 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example QueryString = "iOS 6.1 10B145" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/3-Remove.ps1 index 662f870958..89cebb2840 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOActiveSyncDeviceAccessRule/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example QueryString = "iOS 6.1 10B145" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/1-Create.ps1 index 976c4867af..de2adf3521 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example OfflineAddressBook = "\Default Offline Address Book" GlobalAddressList = "\Default Global Address List" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/2-Update.ps1 index 894b0a6913..cbefaeb8cd 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example OfflineAddressBook = "\Default Offline Address Book" GlobalAddressList = "\Default Global Address List" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/3-Remove.ps1 index abac6145f0..245a3fe08e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressBookPolicy/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { Name = "All Fabrikam ABP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/1-Create.ps1 index 60b64c8834..dbd3e6b734 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example ConditionalStateOrProvince = "US" IncludedRecipients = "AllRecipients" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/2-Update.ps1 index 7c3a151850..a3bf7b3bed 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example ConditionalStateOrProvince = "US" IncludedRecipients = "AllRecipients" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/3-Remove.ps1 index f8e758938b..0c9526fbfe 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAddressList/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { Name = "HR Users" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/1-Create.ps1 index bf00f6d7e7..a65fc01916 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/2-Update.ps1 index 7c335a878f..b5fa497a46 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/3-Remove.ps1 index 7c335a878f..b5fa497a46 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/1-Create.ps1 index 03b2094ac1..7719b443ad 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/1-Create.ps1 @@ -6,13 +6,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAntiPhishRule 'ConfigureAntiPhishRule' @@ -20,9 +27,11 @@ Configuration Example Identity = "Test Rule" AntiPhishPolicy = "Our Rule" Enabled = $True - SentToMemberOf = @("executives@$Domain") + SentToMemberOf = @("executives@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/2-Update.ps1 index 622f37e92b..7ee7f30cb8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/2-Update.ps1 @@ -6,13 +6,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAntiPhishRule 'ConfigureAntiPhishRule' @@ -21,9 +28,11 @@ Configuration Example Comments = "This is an updated comment." # Updated Property AntiPhishPolicy = "Our Rule" Enabled = $True - SentToMemberOf = @("executives@$Domain") + SentToMemberOf = @("executives@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/3-Remove.ps1 index 24f0dc0aa5..0c9c4c4795 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAntiPhishRule/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example Identity = "Test Rule" AntiPhishPolicy = "Our Rule" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/1-Create.ps1 index b7008e86fb..ab7fd4cecc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/1-Create.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' @@ -21,10 +27,12 @@ Configuration Example Identity = "Integration Policy" AccessRight = "DenyAccess" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' - PolicyScopeGroupId = "IntegrationMailEnabled@$Domain" + PolicyScopeGroupId = "IntegrationMailEnabled@$TenantId" Description = "Engineering Group Policy" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/2-Update.ps1 index f961e93505..e212e2d241 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/2-Update.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' @@ -21,10 +27,12 @@ Configuration Example Identity = "Integration Policy" AccessRight = "DenyAccess" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' - PolicyScopeGroupId = "IntegrationMailEnabled@$Domain" + PolicyScopeGroupId = "IntegrationMailEnabled@$TenantId" Description = "Engineering Group Policy Updated" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/3-Remove.ps1 index cc0936181d..55004b3528 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOApplicationAccessPolicy/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Identity = "Integration Policy" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAtpPolicyForO365/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAtpPolicyForO365/2-Update.ps1 index 1f4d1330c5..8252000617 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAtpPolicyForO365/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAtpPolicyForO365/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example IsSingleInstance = "Yes" EnableATPForSPOTeamsODB = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/1-Create.ps1 index 27c4ae4442..3178e32045 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/2-Update.ps1 index c68b7a41be..1c8b81e131 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/3-Remove.ps1 index c68b7a41be..1c8b81e131 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/1-Create.ps1 index 1d2cade88f..812f938c3f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/1-Create.ps1 @@ -1,21 +1,30 @@ Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAuthenticationPolicyAssignment 'ConfigureAuthenticationPolicyAssignment' { - UserName = "AdeleV@$Domain" + UserName = "AdeleV@$TenantId" AuthenticationPolicyName = "Block Basic Auth" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/3-Remove.ps1 index f1e7abdcd2..2222ba8114 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAuthenticationPolicyAssignment/3-Remove.ps1 @@ -1,21 +1,30 @@ Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAuthenticationPolicyAssignment 'ConfigureAuthenticationPolicyAssignment' { - UserName = "AdeleV@$Domain" + UserName = "AdeleV@$TenantId" AuthenticationPolicyName = "Test Policy" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/1-Create.ps1 index 388e65eab4..ad10a13dd2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +31,9 @@ Configuration Example TargetServiceEpr = 'https://contoso.com/autodiscover/autodiscover.xml' TargetTenantId = 'o365dsc.onmicrosoft.com' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/2-Update.ps1 index 957581c0cc..6af6d9ca06 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +31,9 @@ Configuration Example TargetServiceEpr = 'https://contoso.com/autodiscover/autodiscover.xml' TargetTenantId = 'contoso.onmicrosoft.com' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/3-Remove.ps1 index 7783b26831..9e586b46df 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityAddressSpace/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example { Identity = 'Contoso.com' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/1-Create.ps1 index 7c5ab235ba..bd592349c6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/1-Create.ps1 @@ -5,22 +5,31 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "adelev@$Domain" + OrgWideAccount = "adelev@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/2-Update.ps1 index fb9414d92c..7ad404c82d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/2-Update.ps1 @@ -5,22 +5,31 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "alexW@$Domain" # Updated Property + OrgWideAccount = "alexW@$TenantId" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/3-Remove.ps1 index 395c40d257..89068812fb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOAvailabilityConfig/3-Remove.ps1 @@ -5,22 +5,31 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "alexW@$Domain" # Updated Property + OrgWideAccount = "alexW@$TenantId" # Updated Property Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxPlan/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxPlan/2-Update.ps1 index 349cd529f1..7f603155c2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxPlan/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxPlan/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example Identity = 'ExchangeOnlineEnterprise' ImapEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxSettings/2-Update.ps1 index 6bf76b701e..0573b5887e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxSettings/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOCASMailboxSettings/2-Update.ps1 @@ -5,16 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOCASMailboxSettings 'AdeleVCasMailboxSettings' @@ -26,7 +31,7 @@ Configuration Example ActiveSyncMailboxPolicy = 'Default' ActiveSyncSuppressReadReceipt = $False EwsEnabled = $True - Identity = "admin@$Domain" + Identity = "admin@$TenantId" ImapEnabled = $True # Updated Property ImapForceICalForCalendarRetrievalOption = $False ImapMessagesRetrievalMimeFormat = 'BestBodyFormat' @@ -47,7 +52,9 @@ Configuration Example ShowGalAsDefaultView = $True UniversalOutlookEnabled = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOCalendarProcessing/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOCalendarProcessing/2-Update.ps1 index 9588fd7db3..ca2f8b3bd5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOCalendarProcessing/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOCalendarProcessing/2-Update.ps1 @@ -5,15 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOCalendarProcessing "CalendarProcessing" @@ -31,7 +38,6 @@ Configuration Example BookingWindowInDays = 180; BookInPolicy = @(); ConflictPercentageAllowed = 0; - Credential = $credsCredential; DeleteAttachments = $True; DeleteComments = $True; DeleteNonCalendarItems = $True; @@ -42,7 +48,7 @@ Configuration Example EnforceSchedulingHorizon = $True; Ensure = "Present"; ForwardRequestsToDelegates = $True; - Identity = "admin@$Domain"; + Identity = "admin@$TenantId"; MaximumConflictInstances = 0; MaximumDurationInMinutes = 1440; MinimumDurationInMinutes = 0; @@ -53,10 +59,13 @@ Configuration Example RemoveForwardedMeetingNotifications = $False; RemoveOldMeetingMessages = $False; RemovePrivateProperty = $True; - RequestInPolicy = @("AlexW@$Domain"); + RequestInPolicy = @("AlexW@$TenantId"); ResourceDelegates = @(); ScheduleOnlyDuringWorkHours = $False; TentativePendingApproval = $True; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/1-Create.ps1 index 5eb5199ae4..f761117475 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example ExceptAnyOfClientIPAddressesOrRanges = @() AnyOfClientIPAddressesOrRanges = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/2-Update.ps1 index 023a903f60..0491b8d755 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example ExceptAnyOfClientIPAddressesOrRanges = @() AnyOfClientIPAddressesOrRanges = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/3-Remove.ps1 index 42f5cf21c7..43c4f6ca3f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOClientAccessRule/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example Action = "AllowAccess" Identity = "Always Allow Remote PowerShell" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODataClassification/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODataClassification/2-Update.ps1 index c13499914c..706cbc5855 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODataClassification/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODataClassification/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example IsDefault = $True; Locale = "en-US"; Name = "Canada Social Insurance Number"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODataEncryptionPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODataEncryptionPolicy/3-Remove.ps1 index e17823fec1..a3e4563a8d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODataEncryptionPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODataEncryptionPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { Identity = 'US Mailboxes' Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 index ce9a53e436..95bead29ef 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,17 +31,19 @@ Configuration Example DisplayName = "My Demo DG"; Ensure = "Present"; HiddenGroupMembershipEnabled = $True; - ManagedBy = @("adeleV@$Domain"); + ManagedBy = @("adeleV@$TenantId"); MemberDepartRestriction = "Open"; MemberJoinRestriction = "Closed"; - ModeratedBy = @("alexW@$Domain"); + ModeratedBy = @("alexW@$TenantId"); ModerationEnabled = $False; Identity = "DemoDG"; Name = "DemoDG"; - PrimarySmtpAddress = "demodg@$Domain"; + PrimarySmtpAddress = "demodg@$TenantId"; RequireSenderAuthenticationEnabled = $True; SendModerationNotifications = "Always"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/2-Update.ps1 index 06744f178c..8a76180f50 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/2-Update.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODistributionGroup 'DemoDG' @@ -24,17 +30,19 @@ Configuration Example DisplayName = "My Demo DG"; Ensure = "Present"; HiddenGroupMembershipEnabled = $True; - ManagedBy = @("adeleV@$Domain"); + ManagedBy = @("adeleV@$TenantId"); MemberDepartRestriction = "Open"; MemberJoinRestriction = "Closed"; - ModeratedBy = @("alexW@$Domain"); + ModeratedBy = @("alexW@$TenantId"); ModerationEnabled = $False; Identity = "DemoDG"; Name = "DemoDG"; - PrimarySmtpAddress = "demodg@$Domain"; + PrimarySmtpAddress = "demodg@$TenantId"; RequireSenderAuthenticationEnabled = $True; SendModerationNotifications = "Always"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/3-Remove.ps1 index 5160570364..102f4f7e71 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/3-Remove.ps1 @@ -5,24 +5,32 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC node localhost { - $Domain = $Credscredential.Username.Split('@')[1] EXODistributionGroup 'DemoDG' { DisplayName = "My Demo DG"; Ensure = "Absent"; Identity = "DemoDG"; Name = "DemoDG"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 index ab7d90c422..8bddae81bb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOEOPProtectionPolicyRule/1-Update.ps1 @@ -6,26 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOEOPProtectionPolicyRule "EXOEOPProtectionPolicyRule-Strict Preset Security Policy" { - ApplicationId = $ConfigurationData.NonNodeData.ApplicationId; - CertificateThumbprint = $ConfigurationData.NonNodeData.CertificateThumbprint; Ensure = "Present"; ExceptIfRecipientDomainIs = @("sandrodev.onmicrosoft.com"); Identity = "Strict Preset Security Policy"; Name = "Strict Preset Security Policy"; Priority = 0; State = "Enabled"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 index 5f61c9a780..29fc3244ba 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,12 +26,14 @@ Configuration Example EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" - EnabledEmailAddressTemplates = @("SMTP:@$Domain") - EnabledPrimarySMTPAddressTemplate = "@$Domain" + EnabledEmailAddressTemplates = @("SMTP:@$TenantId") + EnabledPrimarySMTPAddressTemplate = "@$TenantId" ManagedByFilter = "" Priority = 1 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/2-Update.ps1 index 3b02fb5f8a..650fce5eb2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/2-Update.ps1 @@ -6,24 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" - EnabledEmailAddressTemplates = @("SMTP:@$Domain") - EnabledPrimarySMTPAddressTemplate = "@$Domain" + EnabledEmailAddressTemplates = @("SMTP:@$TenantId") + EnabledPrimarySMTPAddressTemplate = "@$TenantId" ManagedByFilter = "Department -eq 'Sales'" # Updated Property Priority = 1 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/3-Remove.ps1 index b6d8b3907a..abf1735a37 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/3-Remove.ps1 @@ -6,20 +6,29 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC node localhost { - $Domain = $Credscredential.Username.Split('@')[1] EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 index e8ea48e063..2a8675d8b8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOExternalInOutlook/1-Update.ps1 @@ -6,10 +6,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -20,7 +29,9 @@ Configuration Example AllowList = @("mobile01@contoso.onmicrosoft.com","*contoso.onmicrosoft.com","contoso.com"); Enabled = $False; Ensure = "Present"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/1-Create.ps1 index 8434d79874..dda1f0448f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/1-Create.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -23,7 +31,9 @@ Configuration Example ConditionalStateOrProvince = "Washington" IncludedRecipients = 'AllRecipients' Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/2-Update.ps1 index 4e0ecce8c3..e7a91b3473 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/2-Update.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -22,7 +30,9 @@ Configuration Example ConditionalDepartment = "Finances" # Updated Property ConditionalStateOrProvince = "Washington" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/3-Remove.ps1 index 9ea08ce6cf..84338f97bb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOGlobalAddressList/3-Remove.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -19,7 +27,9 @@ Configuration Example { Name = "Contoso Human Resources in Washington" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOGroupSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOGroupSettings/2-Update.ps1 index ee0f24fd92..2e9d7b9104 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOGroupSettings/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOGroupSettings/2-Update.ps1 @@ -5,16 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOGroupSettings 'TestGroup' @@ -26,7 +32,6 @@ Configuration Example AutoSubscribeNewMembers = $False; CalendarMemberReadOnly = $False; ConnectorsEnabled = $False; # Updated Property - Credential = $Credscredential; HiddenFromAddressListsEnabled = $True; HiddenFromExchangeClientsEnabled = $True; InformationBarrierMode = "Open"; @@ -35,9 +40,12 @@ Configuration Example MaxSendSize = "35 MB (36,700,160 bytes)"; ModerationEnabled = $False; Notes = "My Notes"; - PrimarySmtpAddress = "TestGroup@$Domain"; + PrimarySmtpAddress = "TestGroup@$TenantId"; RequireSenderAuthenticationEnabled = $True; SubscriptionEnabled = $False; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From 1ad6d6deb70417dcb8da7a34aaf087b9bbeec341 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 08:34:59 -0400 Subject: [PATCH 179/273] Fixing EXO --- .../workflows/Global - Integration - EXO.yml | 127 ------------------ .../2-Update.ps1 | 18 ++- .../EXOHostedContentFilterPolicy/1-Create.ps1 | 18 ++- .../EXOHostedContentFilterPolicy/2-Update.ps1 | 18 ++- .../EXOHostedContentFilterPolicy/3-Remove.ps1 | 18 ++- .../EXOHostedContentFilterRule/1-Create.ps1 | 24 ++-- .../EXOHostedContentFilterRule/2-Update.ps1 | 25 ++-- .../EXOHostedContentFilterRule/3-Remove.ps1 | 22 ++- .../1-Create.ps1 | 19 ++- .../2-Update.ps1 | 19 ++- .../3-Remove.ps1 | 19 ++- .../1-Create.ps1 | 27 ++-- .../2-Update.ps1 | 27 ++-- .../3-Remove.ps1 | 18 ++- .../EXOIRMConfiguration/2-Update.ps1 | 22 ++- .../EXOInboundConnector/1-Create.ps1 | 22 ++- .../EXOInboundConnector/2-Update.ps1 | 22 ++- .../EXOInboundConnector/3-Remove.ps1 | 22 ++- .../1-Create.ps1 | 22 ++- .../2-Update.ps1 | 22 ++- .../3-Remove.ps1 | 22 ++- .../Resources/EXOJournalRule/1-Create.ps1 | 22 ++- .../Resources/EXOJournalRule/2-Update.ps1 | 22 ++- .../Resources/EXOJournalRule/3-Remove.ps1 | 22 ++- .../Resources/EXOMailContact/1-Create.ps1 | 21 ++- .../Resources/EXOMailContact/2-Update.ps1 | 20 ++- .../Resources/EXOMailContact/3-Remove.ps1 | 20 ++- .../Resources/EXOMailTips/1-Create.ps1 | 19 ++- .../Resources/EXOMailTips/2-Update.ps1 | 19 ++- .../Resources/EXOMailTips/3-Remove.ps1 | 19 ++- .../2-Update.ps1 | 22 ++- .../EXOMailboxCalendarFolder/2-Update.ps1 | 24 ++-- .../EXOMailboxPermission/2-Update.ps1 | 21 ++- .../Resources/EXOMailboxPlan/2-Update.ps1 | 18 ++- .../Resources/EXOMailboxSettings/2-Update.ps1 | 21 ++- .../EXOMalwareFilterPolicy/1-Create.ps1 | 18 ++- .../EXOMalwareFilterPolicy/2-Update.ps1 | 18 ++- .../EXOMalwareFilterPolicy/3-Remove.ps1 | 18 ++- .../EXOMalwareFilterRule/1-Create.ps1 | 21 ++- .../EXOMalwareFilterRule/2-Update.ps1 | 21 ++- .../EXOMalwareFilterRule/3-Remove.ps1 | 21 ++- .../Resources/EXOManagementRole/1-Create.ps1 | 21 ++- .../Resources/EXOManagementRole/2-Update.ps1 | 20 ++- .../Resources/EXOManagementRole/3-Remove.ps1 | 18 ++- .../EXOManagementRoleAssignment/1-Create.ps1 | 20 ++- .../EXOManagementRoleAssignment/2-Update.ps1 | 20 ++- .../EXOManagementRoleAssignment/3-Remove.ps1 | 20 ++- .../EXOManagementRoleEntry/2-Update.ps1 | 18 ++- .../EXOMessageClassification/1-Create.ps1 | 21 ++- .../EXOMessageClassification/2-Update.ps1 | 21 ++- .../EXOMessageClassification/3-Remove.ps1 | 21 ++- .../EXOMobileDeviceMailboxPolicy/1-Create.ps1 | 18 ++- .../EXOMobileDeviceMailboxPolicy/2-Update.ps1 | 18 ++- .../EXOMobileDeviceMailboxPolicy/3-Remove.ps1 | 18 ++- .../EXOOMEConfiguration/1-Create.ps1 | 21 ++- .../EXOOMEConfiguration/2-Update.ps1 | 21 ++- .../EXOOMEConfiguration/3-Remove.ps1 | 21 ++- .../EXOOfflineAddressBook/1-Create.ps1 | 21 ++- .../EXOOfflineAddressBook/2-Update.ps1 | 21 ++- .../EXOOfflineAddressBook/3-Remove.ps1 | 21 ++- .../EXOOnPremisesOrganization/1-Create.ps1 | 25 +++- .../EXOOnPremisesOrganization/2-Update.ps1 | 21 ++- .../EXOOnPremisesOrganization/3-Remove.ps1 | 21 ++- .../EXOOrganizationConfig/2-Update.ps1 | 18 ++- .../EXOOrganizationRelationship/1-Create.ps1 | 21 ++- .../EXOOrganizationRelationship/2-Update.ps1 | 21 ++- .../EXOOrganizationRelationship/3-Remove.ps1 | 21 ++- .../EXOOutboundConnector/2-Update.ps1 | 21 ++- .../EXOOutboundConnector/3-Remove.ps1 | 21 ++- .../EXOOwaMailboxPolicy/1-Create.ps1 | 18 ++- .../EXOOwaMailboxPolicy/2-Update.ps1 | 18 ++- .../EXOOwaMailboxPolicy/3-Remove.ps1 | 22 ++- .../EXOPartnerApplication/1-Create.ps1 | 21 ++- .../EXOPartnerApplication/2-Update.ps1 | 21 ++- .../EXOPartnerApplication/3-Remove.ps1 | 21 ++- .../EXOPerimeterConfiguration/2-Update.ps1 | 21 ++- .../Examples/Resources/EXOPlace/1-Create.ps1 | 24 ++-- .../Examples/Resources/EXOPlace/2-Update.ps1 | 24 ++-- .../Examples/Resources/EXOPlace/3-Remove.ps1 | 24 ++-- .../Resources/EXOPolicyTipConfig/1-Create.ps1 | 21 ++- .../Resources/EXOPolicyTipConfig/2-Update.ps1 | 21 ++- .../Resources/EXOPolicyTipConfig/3-Remove.ps1 | 21 ++- .../EXOQuarantinePolicy/1-Create.ps1 | 21 ++- .../EXOQuarantinePolicy/2-Update.ps1 | 20 ++- .../EXOQuarantinePolicy/3-Remove.ps1 | 20 ++- .../EXORecipientPermission/1-Create.ps1 | 26 ++-- .../EXORecipientPermission/3-Remove.ps1 | 24 ++-- .../Resources/EXORemoteDomain/1-Create.ps1 | 18 ++- .../Resources/EXORemoteDomain/2-Update.ps1 | 18 ++- .../Resources/EXORemoteDomain/3-Remove.ps1 | 18 ++- .../EXOReportSubmissionPolicy/2-Update.ps1 | 18 ++- .../EXOReportSubmissionRule/2-Update.ps1 | 18 ++- .../EXOResourceConfiguration/2-Update.ps1 | 21 ++- .../EXORoleAssignmentPolicy/1-Create.ps1 | 18 ++- .../EXORoleAssignmentPolicy/2-Update.ps1 | 18 ++- .../EXORoleAssignmentPolicy/3-Remove.ps1 | 18 ++- .../Resources/EXORoleGroup/1-Create.ps1 | 21 ++- .../Resources/EXORoleGroup/2-Update.ps1 | 21 ++- .../Resources/EXORoleGroup/3-Remove.ps1 | 21 ++- .../EXOSafeAttachmentPolicy/1-Create.ps1 | 24 ++-- .../EXOSafeAttachmentPolicy/2-Update.ps1 | 23 +++- .../EXOSafeAttachmentPolicy/3-Remove.ps1 | 21 ++- .../EXOSafeAttachmentRule/1-Create.ps1 | 26 ++-- .../EXOSafeAttachmentRule/2-Update.ps1 | 25 ++-- .../EXOSafeAttachmentRule/3-Remove.ps1 | 21 ++- .../Resources/EXOSafeLinksPolicy/1-Create.ps1 | 21 ++- .../Resources/EXOSafeLinksPolicy/2-Update.ps1 | 21 ++- .../Resources/EXOSafeLinksPolicy/3-Remove.ps1 | 21 ++- .../Resources/EXOSafeLinksRule/1-Create.ps1 | 26 ++-- .../Resources/EXOSafeLinksRule/2-Update.ps1 | 26 ++-- .../Resources/EXOSafeLinksRule/3-Remove.ps1 | 21 ++- .../Resources/EXOSharedMailbox/1-Create.ps1 | 23 +++- .../Resources/EXOSharedMailbox/2-Update.ps1 | 23 +++- .../Resources/EXOSharedMailbox/3-Remove.ps1 | 22 ++- .../Resources/EXOSharingPolicy/1-Create.ps1 | 18 ++- .../Resources/EXOSharingPolicy/2-Update.ps1 | 18 ++- .../Resources/EXOSharingPolicy/3-Remove.ps1 | 18 ++- .../Resources/EXOTransportConfig/2-Update.ps1 | 18 ++- .../Resources/EXOTransportRule/1-Create.ps1 | 27 ++-- .../Resources/EXOTransportRule/2-Update.ps1 | 27 ++-- .../Resources/EXOTransportRule/3-Remove.ps1 | 21 ++- 121 files changed, 1818 insertions(+), 819 deletions(-) diff --git a/.github/workflows/Global - Integration - EXO.yml b/.github/workflows/Global - Integration - EXO.yml index 76b0ce03bc..14321abf28 100644 --- a/.github/workflows/Global - Integration - EXO.yml +++ b/.github/workflows/Global - Integration - EXO.yml @@ -46,48 +46,6 @@ jobs: git push $SHA = git rev-parse HEAD echo "commitid=$SHA" >> $env:GITHUB_OUTPUT - - name: Run {Create} Integration Tests - shell: powershell - env: - INTEGRATION_USERNAME: ${{ secrets.INTEGRATION_USERNAME }} - INTEGRATION_PASSWORD: ${{ secrets.INTEGRATION_PASSWORD }} - run: | - $CredPassword = ConvertTo-SecureString $env:INTEGRATION_PASSWORD -AsPlainText -Force - $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) - try - { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.EXO.Create.Tests.ps1 -Credential $Credential - } - catch - { - throw $_ - } - - try - { - $Result = Test-DSCConfiguration -Detailed -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - - Write-Host "" - - if ($Result.InDesiredState -eq $false) - { - Write-Host -Message "Resources below are not in the Desired State:" - foreach ($Resource in $Result.ResourcesNotInDesiredState) - { - Write-Host $Resource.InstanceName - } - - throw "Could not validate that the Tenant is in the Desired State" - } - else - { - Write-Host "All resources in the Tenant are in the Desired State" - } - name: Generate {Update} Integration Tests from Examples shell: powershell run: | @@ -104,48 +62,6 @@ jobs: git push $SHA = git rev-parse HEAD echo "commitid=$SHA" >> $env:GITHUB_OUTPUT - - name: Run {Update} Integration Tests - shell: powershell - env: - INTEGRATION_USERNAME: ${{ secrets.INTEGRATION_USERNAME }} - INTEGRATION_PASSWORD: ${{ secrets.INTEGRATION_PASSWORD }} - run: | - $CredPassword = ConvertTo-SecureString $env:INTEGRATION_PASSWORD -AsPlainText -Force - $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) - try - { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.EXO.Update.Tests.ps1 -Credential $Credential - } - catch - { - throw $_ - } - - try - { - $Result = Test-DSCConfiguration -Detailed -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - - Write-Host "" - - if ($Result.InDesiredState -eq $false) - { - Write-Host -Message "Resources below are not in the Desired State:" - foreach ($Resource in $Result.ResourcesNotInDesiredState) - { - Write-Host $Resource.InstanceName - } - - throw "Could not validate that the Tenant is in the Desired State" - } - else - { - Write-Host "All resources in the Tenant are in the Desired State" - } - name: Generate {Remove} Integration Tests from Examples shell: powershell run: | @@ -162,46 +78,3 @@ jobs: git push $SHA = git rev-parse HEAD echo "commitid=$SHA" >> $env:GITHUB_OUTPUT - - name: Run {Remove} Integration Tests - shell: powershell - env: - INTEGRATION_USERNAME: ${{ secrets.INTEGRATION_USERNAME }} - INTEGRATION_PASSWORD: ${{ secrets.INTEGRATION_PASSWORD }} - run: | - $CredPassword = ConvertTo-SecureString $env:INTEGRATION_PASSWORD -AsPlainText -Force - $Credential = New-Object System.Management.Automation.PSCredential ($env:INTEGRATION_USERNAME, $CredPassword) - try - { - & .\Tests\Integration\Microsoft365DSC\M365DSCIntegration.EXO.Remove.Tests.ps1 -Credential $Credential - } - catch - { - throw $_ - } - - try - { - $Result = Test-DSCConfiguration -Detailed -Verbose -ErrorAction Stop - } - catch - { - throw $_ - } - - Write-Host "" - - if ($Result.InDesiredState -eq $false) - { - Write-Host -Message "Resources below are not in the Desired State:" - foreach ($Resource in $Result.ResourcesNotInDesiredState) - { - Write-Host $Resource.InstanceName - } - - throw "Could not validate that the Tenant is in the Desired State" - } - else - { - Write-Host "All resources in the Tenant are in the Desired State" - } - diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedConnectionFilterPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedConnectionFilterPolicy/2-Update.ps1 index dbad190990..f70bf4847c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedConnectionFilterPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedConnectionFilterPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example IPBlockList = @() MakeDefault = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/1-Create.ps1 index 28551c5cb8..e132b067fd 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -56,7 +64,9 @@ Configuration Example TestModeAction = "None" TestModeBccToRecipients = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/2-Update.ps1 index 836aef841f..8fe8c4a1f2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -56,7 +64,9 @@ Configuration Example TestModeAction = "None" TestModeBccToRecipients = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/3-Remove.ps1 index 3a7d7dd917..6f79c66fd0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { Identity = "Integration CFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/1-Create.ps1 index af70c51640..1a7fdefd4e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/1-Create.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' @@ -21,11 +27,13 @@ Configuration Example Identity = "Integration CFR" Comments = "Applies to all users, except when member of HR group" Enabled = $True - ExceptIfSentToMemberOf = "LegalTeam@$Domain" + ExceptIfSentToMemberOf = "LegalTeam@$TenantId" RecipientDomainIs = @('contoso.com') HostedContentFilterPolicy = "Integration CFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/2-Update.ps1 index b109c3907f..6fd3bb4513 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/2-Update.ps1 @@ -5,15 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' @@ -21,11 +28,13 @@ Configuration Example Identity = "Integration CFR" Comments = "Applies to all users, except when member of HR group" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "LegalTeam@$Domain" + ExceptIfSentToMemberOf = "LegalTeam@$TenantId" RecipientDomainIs = @('contoso.com') HostedContentFilterPolicy = "Integration CFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/3-Remove.ps1 index 46aa815857..31ab9d7765 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedContentFilterRule/3-Remove.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -20,7 +28,9 @@ Configuration Example Identity = "Integration CFR" HostedContentFilterPolicy = "Integration CFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 index ea0c0cf6a3..7b75d1c52f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 @@ -6,10 +6,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -28,7 +37,9 @@ Configuration Example RecipientLimitInternalPerHour = 0 RecipientLimitPerDay = 0 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 index d5d9157e3e..9c35f5fd28 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 @@ -6,10 +6,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -28,7 +37,9 @@ Configuration Example RecipientLimitInternalPerHour = 1 # Updated Property RecipientLimitPerDay = 0 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/3-Remove.ps1 index 891b4a4be9..dbd4fc4985 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/3-Remove.ps1 @@ -6,10 +6,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -18,7 +27,9 @@ Configuration Example { Identity = "Integration SFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/1-Create.ps1 index d9db058889..51fc37700d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/1-Create.ps1 @@ -5,15 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' @@ -21,11 +28,13 @@ Configuration Example Identity = "Contoso Executives" Comments = "Does not apply to Executives" Enabled = $True - ExceptIfFrom = "AdeleV@$Domain" - FromMemberOf = "Executives@$Domain" + ExceptIfFrom = "AdeleV@$TenantId" + FromMemberOf = "Executives@$TenantId" HostedOutboundSpamFilterPolicy = "Integration SFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/2-Update.ps1 index 15fa53328c..4d3f4ccfc7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/2-Update.ps1 @@ -5,15 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' @@ -21,11 +28,13 @@ Configuration Example Identity = "Contoso Executives" Comments = "Does not apply to Executives" Enabled = $False # Updated Property - ExceptIfFrom = "AdeleV@$Domain" - FromMemberOf = "Executives@$Domain" + ExceptIfFrom = "AdeleV@$TenantId" + FromMemberOf = "Executives@$TenantId" HostedOutboundSpamFilterPolicy = "Integration SFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 index 261f1ffc0e..dfe6738d4f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC $Domain = $Credscredential.Username.Split('@')[1] diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOIRMConfiguration/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOIRMConfiguration/2-Update.ps1 index 977cbf1eef..dd36d5a272 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOIRMConfiguration/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOIRMConfiguration/2-Update.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -32,7 +40,9 @@ Configuration Example SimplifiedClientAccessEncryptOnlyDisabled = $True TransportDecryptionSetting = 'Mandatory' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/1-Create.ps1 index e8524e45e6..1b5130ebca 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/1-Create.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -27,7 +35,9 @@ Configuration Example SenderDomains = "*.contoso.com" TlsSenderCertificateName = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/2-Update.ps1 index 07c3c4cabd..4eeecde129 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/2-Update.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -27,7 +35,9 @@ Configuration Example SenderDomains = "*.contoso.com" TlsSenderCertificateName = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/3-Remove.ps1 index 9b30be3986..1bbebc4716 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOInboundConnector/3-Remove.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -19,7 +27,9 @@ Configuration Example { Identity = "Integration Inbound Connector" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/1-Create.ps1 index 141cb1aa07..9253fea87c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/1-Create.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -22,7 +30,9 @@ Configuration Example TargetAddressDomains = "Cloud1.contoso.com","Cloud2.contoso.com" Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/2-Update.ps1 index 0fc17035db..58cde88c62 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/2-Update.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -22,7 +30,9 @@ Configuration Example TargetAddressDomains = "Cloud1.contoso.com","Cloud2.contoso.com" Enabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/3-Remove.ps1 index e5c9f58607..64e271f17d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOIntraOrganizationConnector/3-Remove.ps1 @@ -5,12 +5,20 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -19,7 +27,9 @@ Configuration Example { Identity = "MainCloudConnector" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/1-Create.ps1 index b69332c585..ba195a7b50 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/1-Create.ps1 @@ -6,23 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOJournalRule 'CreateJournalRule' { Enabled = $True - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" RuleScope = "Global" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/2-Update.ps1 index 1161e39a67..b34922c48e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/2-Update.ps1 @@ -6,23 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOJournalRule 'CreateJournalRule' { Enabled = $False # Updated Property - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" RuleScope = "Global" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/3-Remove.ps1 index fdc5d0c87e..e07203cda9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOJournalRule/3-Remove.ps1 @@ -6,21 +6,31 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOJournalRule 'CreateJournalRule' { - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/1-Create.ps1 index 6a804d5c63..a4814162aa 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/1-Create.ps1 @@ -6,19 +6,25 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Present' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' @@ -28,11 +34,14 @@ Configuration Example ModeratedBy = @() ModerationEnabled = $false Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $true CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 index d6dae3e389..0c9c5415df 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,6 @@ Configuration Example EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Present' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' @@ -28,11 +35,14 @@ Configuration Example ModeratedBy = @() ModerationEnabled = $false Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $false # Updated Property CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 index 9c00cbf291..3f68bfaaaa 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,16 +26,18 @@ Configuration Example EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Absent' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $false # Updated Property CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 index b58921fed5..8495866148 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 @@ -6,13 +6,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailTips 'OrgWideMailTips' @@ -24,7 +31,9 @@ Configuration Example MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 index 95cafdbc6c..7236cea8c1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 @@ -6,13 +6,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailTips 'OrgWideMailTips' @@ -24,7 +31,9 @@ Configuration Example MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/3-Remove.ps1 index 3a010d19d9..ec8fa0c4ab 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/3-Remove.ps1 @@ -6,20 +6,29 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailTips 'OrgWideMailTips' { IsSingleInstance = 'Yes' Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxAutoReplyConfiguration/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxAutoReplyConfiguration/2-Update.ps1 index 6dfcc36565..ca203716f0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxAutoReplyConfiguration/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxAutoReplyConfiguration/2-Update.ps1 @@ -6,13 +6,21 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailboxAutoReplyConfiguration "EXOMailboxAutoReplyConfiguration" @@ -20,7 +28,6 @@ Configuration Example AutoDeclineFutureRequestsWhenOOF = $False; AutoReplyState = "Disabled"; CreateOOFEvent = $False; - Credential = $Credscredential; DeclineAllEventsForScheduledOOF = $False; DeclineEventsForScheduledOOF = $False; DeclineMeetingMessage = ""; @@ -28,10 +35,13 @@ Configuration Example Ensure = "Present"; ExternalAudience = "All"; ExternalMessage = (New-Guid).ToString(); # Updated Property - Identity = "AdeleV@$Domain"; + Identity = "AdeleV@$TenantId"; InternalMessage = ""; OOFEventSubject = ""; StartTime = "1/22/2024 3:00:00 PM"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxCalendarFolder/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxCalendarFolder/2-Update.ps1 index d634a068e6..43ccc54f26 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxCalendarFolder/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxCalendarFolder/2-Update.ps1 @@ -5,27 +5,35 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailboxCalendarFolder "JohnCalendarFolder" { - Credential = $credsCredential; DetailLevel = "AvailabilityOnly"; Ensure = "Present"; - Identity = "AlexW@$Domain" + ":\Calendar"; + Identity = "AlexW@$TenantId" + ":\Calendar"; PublishDateRangeFrom = "ThreeMonths"; PublishDateRangeTo = "ThreeMonths"; PublishEnabled = $True; # Updated Property SearchableUrlEnabled = $False; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPermission/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPermission/2-Update.ps1 index 61c3877d25..69b74017d1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPermission/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPermission/2-Update.ps1 @@ -6,24 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailboxPermission "TestPermission" { AccessRights = @("FullAccess","ReadPermission"); - Credential = $credsCredential; Deny = $True; # Updated Property Ensure = "Present"; - Identity = "AlexW@$Domain"; + Identity = "AlexW@$TenantId"; InheritanceType = "All"; User = "NT AUTHORITY\SELF"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPlan/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPlan/2-Update.ps1 index 280e394098..4c6ddacc42 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPlan/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxPlan/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,9 @@ Configuration Example ProhibitSendReceiveQuota = "15 GB (16,106,127,360 bytes)"; # Updated Property RetainDeletedItemsFor = "14.00:00:00"; RoleAssignmentPolicy = "Default Role Assignment Policy"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxSettings/2-Update.ps1 index 7d1ec97214..403e70bd4e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxSettings/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailboxSettings/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example TimeZone = 'Eastern Standard Time' Locale = 'en-US' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/1-Create.ps1 index 283795ee7b..4cf53b6976 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +34,9 @@ Configuration Example QuarantineTag = "AdminOnlyAccessPolicy" ZapEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/2-Update.ps1 index 862d17b0bb..b89c6153d9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +34,9 @@ Configuration Example QuarantineTag = "AdminOnlyAccessPolicy" ZapEnabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/3-Remove.ps1 index 22d47da26d..4513816e47 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { Identity = "IntegrationMFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/1-Create.ps1 index 91edbc4237..d3f49c9f89 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example Enabled = $True RecipientDomainIs = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/2-Update.ps1 index e36ce09244..cf6956c8f7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example Enabled = $False # Updated Property RecipientDomainIs = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/3-Remove.ps1 index f6f2a1a2a4..21dd6ff35f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMalwareFilterRule/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Identity = "Contoso Recipients" MalwareFilterPolicy = "IntegrationMFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/1-Create.ps1 index 5be4191d19..397e0afdae 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/1-Create.ps1 @@ -6,22 +6,31 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRole 'ConfigureManagementRole' { Name = "MyDisplayName" Description = "" - Parent = "$Domain\MyProfileInformation" + Parent = "$TenantId\MyProfileInformation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 index d6094d3dca..8c8a0338cf 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,9 +27,11 @@ Configuration Example { Name = "MyDisplayName" Description = "Updated Description" # Updated Property - Parent = "$Domain\MyProfileInformation" + Parent = "$TenantId\MyProfileInformation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/3-Remove.ps1 index 65e2e25345..fdc5733f21 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Description = "Updated Description" # Updated Property Parent = "contoso.onmicrosoft.com\MyProfileInformation" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 index 38bf4d1041..4cb4a78f85 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,11 +25,13 @@ Configuration Example { EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Present"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AdeleV@$Domain"; + User = "AdeleV@$TenantId"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 index 9737099842..7a007b8cb6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,11 +25,13 @@ Configuration Example { EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Present"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AlexW@$Domain"; # Updated Property + User = "AlexW@$TenantId"; # Updated Property + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 index e1990e8efd..e3b5886c96 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,11 +25,13 @@ Configuration Example { EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Absent"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AlexW@$Domain"; # Updated Property + User = "AlexW@$TenantId"; # Updated Property + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleEntry/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleEntry/2-Update.ps1 index 35001eaa4d..7ce9834aaf 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleEntry/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleEntry/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,9 @@ Configuration Example { EXOManagementRoleEntry "UpdateRoleEntry" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Identity = "Information Rights Management\Get-BookingMailbox" Parameters = @("ANR","RecipientTypeDetails", "ResultSize") } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/1-Create.ps1 index 98b2b94373..928a2c3182 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +33,9 @@ Configuration Example SenderDescription = "Shown to senders" RetainClassificationEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/2-Update.ps1 index 9054444658..a703d03058 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +33,9 @@ Configuration Example SenderDescription = "Shown to senders" RetainClassificationEnabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/3-Remove.ps1 index f02998c20b..06f81cc5d4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMessageClassification/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +28,9 @@ Configuration Example Name = "Contoso Message Classification" DisplayName = "Contoso Message Classification" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/1-Create.ps1 index ae57ee981f..21345ea669 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +79,9 @@ Configuration Example UNCAccessEnabled = $True WSSAccessEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/2-Update.ps1 index 1c21d6c9cc..bf4975a901 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +79,9 @@ Configuration Example UNCAccessEnabled = $True WSSAccessEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/3-Remove.ps1 index c2fe96cf2f..2ce1f7df10 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMobileDeviceMailboxPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { Name = "Default" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/1-Create.ps1 index 67044383ae..f43fbc75b7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +34,9 @@ Configuration Example PortalText = "This portal is encrypted." SocialIdSignIn = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/2-Update.ps1 index bb802a8b64..aa21a126d8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +34,9 @@ Configuration Example PortalText = "This portal is encrypted." SocialIdSignIn = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/3-Remove.ps1 index 25ed2cde98..6d145dcf03 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOMEConfiguration/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { Identity = "Contoso Marketing" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/1-Create.ps1 index 01477e3204..1f38f1cf71 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example DiffRetentionPeriod = "30" IsDefault = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/2-Update.ps1 index 9957b25583..b348a917bd 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example DiffRetentionPeriod = "60" # Updated Property IsDefault = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/3-Remove.ps1 index d8927dce08..4ccf776009 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOfflineAddressBook/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +31,9 @@ Configuration Example DiffRetentionPeriod = "30" IsDefault = $true Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/1-Create.ps1 index 98ed5fd428..0265f9ecb7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +33,9 @@ Configuration Example OrganizationName = 'O365DSC' OutboundConnector = 'Contoso Outbound Connector' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DependsOn = "[EXOOutboundConnector]OutboundDependency" } EXOOutboundConnector 'OutboundDependency' @@ -45,7 +54,9 @@ Configuration Example TlsSettings = "DomainValidation" UseMxRecord = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/2-Update.ps1 index da8b029d11..ae98967657 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,7 +33,9 @@ Configuration Example OrganizationName = 'O365DSC' OutboundConnector = 'Contoso Outbound Connector' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/3-Remove.ps1 index ca38670405..a563275b98 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOnPremisesOrganization/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example EXOOnPremisesOrganization 'ConfigureOnPremisesOrganization' { Identity = 'Contoso' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationConfig/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationConfig/2-Update.ps1 index 522bc5728d..9e3efddb88 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationConfig/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationConfig/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -77,7 +85,9 @@ Configuration Example AutoExpandingArchive = $null ConnectorsEnabledForSharepoint = $True ReadTrackingEnabled = $False - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/1-Create.ps1 index 0692bc9687..eb785fc035 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +38,9 @@ Configuration Example TargetApplicationUri = "mail.contoso.com" TargetAutodiscoverEpr = "https://mail.contoso.com/autodiscover/autodiscover.svc/wssecurity" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/2-Update.ps1 index 36971ac851..d932c5add7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +38,9 @@ Configuration Example TargetApplicationUri = "mail.contoso.com" TargetAutodiscoverEpr = "https://mail.contoso.com/autodiscover/autodiscover.svc/wssecurity" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/3-Remove.ps1 index 8a554c5e2a..f228c8a367 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOrganizationRelationship/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Name = "Contoso" Enabled = $True Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/2-Update.ps1 index 503f87c410..b6858bf0d4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +38,9 @@ Configuration Example TlsSettings = "DomainValidation" UseMxRecord = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/3-Remove.ps1 index a9841310b1..8615711515 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOutboundConnector/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { Identity = "Contoso Outbound Connector" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/1-Create.ps1 index 1a725a4c29..ded9e80b7c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -90,7 +98,9 @@ Configuration Example WeatherEnabled = $True WebPartsFrameOptionsType = "SameOrigin" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/2-Update.ps1 index b6fe6ee87d..da5504540d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -90,7 +98,9 @@ Configuration Example WeatherEnabled = $True WebPartsFrameOptionsType = "SameOrigin" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/3-Remove.ps1 index c443618a36..bcf39e06ca 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOOwaMailboxPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { EXOOwaMailboxPolicy 'ConfigureOwaMailboxPolicy' { - Name = "OwaMailboxPolicy-Integration" - Ensure = "Absent" - Credential = $Credscredential + Name = "OwaMailboxPolicy-Integration" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/1-Create.ps1 index f90d243abe..0fd1c4d508 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example AcceptSecurityIdentifierInformation = $true Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/2-Update.ps1 index bf09619125..507ca3e22a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example AcceptSecurityIdentifierInformation = $False # Updated Property Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/3-Remove.ps1 index 2cb2adb985..cbe2540c49 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPartnerApplication/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Name = "HRApp" ApplicationIdentifier = "00000006-0000-0dd1-ac00-000000000000" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPerimeterConfiguration/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPerimeterConfiguration/2-Update.ps1 index 7a7f729945..1fbd49354c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPerimeterConfiguration/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPerimeterConfiguration/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example IsSingleInstance = 'Yes' #GatewayIPAddresses = '123.0.0.1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/1-Create.ps1 index 48d306104b..f21314507f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/1-Create.ps1 @@ -5,16 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOPlace 'TestPlace' @@ -22,10 +28,12 @@ Configuration Example AudioDeviceName = "MyAudioDevice"; Capacity = 15; City = ""; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Present' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; IsWheelChairAccessible = $True; MTREnabled = $False; ParentType = "None"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/2-Update.ps1 index b84d5cc320..77b66903df 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/2-Update.ps1 @@ -5,16 +5,22 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOPlace 'TestPlace' @@ -22,10 +28,12 @@ Configuration Example AudioDeviceName = "MyAudioDevice"; Capacity = 16; # Updated Property City = ""; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Present' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; IsWheelChairAccessible = $True; MTREnabled = $False; ParentType = "None"; diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/3-Remove.ps1 index 51ad933226..e0bebcd71f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPlace/3-Remove.ps1 @@ -5,25 +5,33 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOPlace 'TestPlace' { AudioDeviceName = "MyAudioDevice"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Absent' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/1-Create.ps1 index 1c948d9891..c9a91ead2b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy." Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/2-Update.ps1 index 1d23f23daf..93082f33a6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy. Updated" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/3-Remove.ps1 index aae3186d10..02e6b6be47 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOPolicyTipConfig/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy. Updated" # Updated Property Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 index 3acd8f9215..00e7ab9592 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 @@ -6,23 +6,32 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' { EndUserQuarantinePermissionsValue = 87; ESNEnabled = $False; - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 index 6c5a45c055..70daf13e41 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC @@ -20,9 +28,11 @@ Configuration Example { EndUserQuarantinePermissionsValue = 87; ESNEnabled = $True; # Updated Property - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 index bc6b68e50e..0777c270bd 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC @@ -18,9 +26,11 @@ Configuration Example { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' { - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/1-Create.ps1 index 6b6c1e6190..2cbd1875a1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/1-Create.ps1 @@ -6,25 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXORecipientPermission 'AddSendAs' { - Identity = "AlexW@$Domain" - Trustee = "admin@$Domain" + Identity = "AlexW@$TenantId" + Trustee = "admin@$TenantId" AccessRights = 'SendAs' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/3-Remove.ps1 index f263aba8e4..aa641ed3d6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORecipientPermission/3-Remove.ps1 @@ -6,25 +6,33 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXORecipientPermission 'AddSendAs' { Identity = 'AdeleV@$Domain' - Trustee = "admin@$Domain" + Trustee = "admin@$TenantId" Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/1-Create.ps1 index 885d097448..0dd12c6582 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example TrustedMailOutboundEnabled = $False UseSimpleDisplayName = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/2-Update.ps1 index 109dc72855..177d22a79e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example TrustedMailOutboundEnabled = $False UseSimpleDisplayName = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/3-Remove.ps1 index 2ec3881cd3..f93b8948a6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORemoteDomain/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { Identity = "Integration" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionPolicy/2-Update.ps1 index 1698bb7de0..cff345b769 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,9 @@ Configuration Example ReportNotJunkToCustomizedAddress = $False ReportPhishToCustomizedAddress = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionRule/2-Update.ps1 index e1af0e2270..6d481f56c3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOReportSubmissionRule/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example Comments = "This is my default rule" SentTo = "submission@contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOResourceConfiguration/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOResourceConfiguration/2-Update.ps1 index fe354bf120..6ae6532390 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOResourceConfiguration/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOResourceConfiguration/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +28,9 @@ Configuration Example IsSingleInstance = 'Yes' ResourcePropertySchema = @('Room/TV', 'Equipment/Laptop') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/1-Create.ps1 index e4ac25a96a..5a3f329211 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example IsDefault = $True Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/2-Update.ps1 index b9166d8e45..1d31511746 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example IsDefault = $True Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/3-Remove.ps1 index f00c24b593..731d592310 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORoleAssignmentPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example IsDefault = $False # Updated Property Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/1-Create.ps1 index 294bbdbcd6..ceafa9e939 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/2-Update.ps1 index e8546060e8..33c9e16eec 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/3-Remove.ps1 index b897864cc5..c0469a418f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXORoleGroup/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +28,9 @@ Configuration Example Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/1-Create.ps1 index d670be256a..4fc1c58b57 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/1-Create.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' @@ -21,9 +27,11 @@ Configuration Example Identity = "Marketing Block Attachments" Enable = $True Redirect = $True - RedirectAddress = "admin@$Domain" + RedirectAddress = "admin@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 index 2caf85bed1..dc8074f6f2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,9 +28,11 @@ Configuration Example Identity = "Marketing Block Attachments" Enable = $False # Updated Property Redirect = $True - RedirectAddress = "admin@$Domain" + RedirectAddress = "admin@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 index fb3378fa92..9a7e82add6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +28,9 @@ Configuration Example Identity = "Marketing Block Attachments" Enable = $False # Updated Property Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/1-Create.ps1 index 255584dbd0..bb437f44bf 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/1-Create.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' @@ -21,11 +27,13 @@ Configuration Example Identity = "Research Department Attachment Rule" Comments = "Applies to Research Department, except managers" Enabled = $True - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeAttachmentPolicy = "Marketing Block Attachments" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 index 6aa8a4a02b..1996d383c2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,11 +28,13 @@ Configuration Example Identity = "Research Department Attachment Rule" Comments = "Applies to Research Department, except managers" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeAttachmentPolicy = "Marketing Block Attachments" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/3-Remove.ps1 index 3ba7d01996..ffe83d1011 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +30,9 @@ Configuration Example SafeAttachmentPolicy = "Marketing Block Attachments" SentToMemberOf = "Research Department" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/1-Create.ps1 index 1d27ca318e..7475a9b249 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +32,9 @@ Configuration Example EnableSafeLinksForTeams = $True ScanUrls = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/2-Update.ps1 index ae083d94a0..8287e9535d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +32,9 @@ Configuration Example EnableSafeLinksForTeams = $True ScanUrls = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/3-Remove.ps1 index f8659eed81..528025c8da 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksPolicy/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +26,9 @@ Configuration Example { Identity = 'Marketing Block URL' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/1-Create.ps1 index f89887d86b..8054082be5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/1-Create.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeLinksRule 'ConfigureSafeLinksRule' @@ -21,11 +27,13 @@ Configuration Example Identity = "Research Department URL Rule" Comments = "Applies to Research Department, except managers" Enabled = $True - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeLinksPolicy = "Marketing Block URL" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/2-Update.ps1 index c86aa8e09a..0dcd44efe7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/2-Update.ps1 @@ -5,15 +5,21 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeLinksRule 'ConfigureSafeLinksRule' @@ -21,11 +27,13 @@ Configuration Example Identity = "Research Department URL Rule" Comments = "Applies to Research Department, except managers" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeLinksPolicy = "Marketing Block URL" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/3-Remove.ps1 index 12fe46f671..d4df9b8b6a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeLinksRule/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +29,9 @@ Configuration Example Enabled = $False # Updated Property SafeLinksPolicy = "Marketing Block URL" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/1-Create.ps1 index 83fac8d5ff..343b9c4f2c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/1-Create.ps1 @@ -6,23 +6,32 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId") Alias = "IntegrationSM" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/2-Update.ps1 index addaba121b..a3f84afc8e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/2-Update.ps1 @@ -6,23 +6,32 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain", "IntegrationSM2@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId", "IntegrationSM2@$TenantId") Alias = "IntegrationSM" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 index 90388f70c4..92be003632 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,11 +26,13 @@ Configuration Example EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain", "IntegrationSM2@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId", "IntegrationSM2@$TenantId") Alias = "IntegrationSM" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/1-Create.ps1 index ddce10e578..d9445ad3b8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/2-Update.ps1 index 5f08c125a7..49ac1ddfef 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/3-Remove.ps1 index 54a8e868f4..6fc0e9f414 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharingPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportConfig/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportConfig/2-Update.ps1 index 839f40fe2e..5c1a594b46 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportConfig/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportConfig/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -38,7 +46,9 @@ Configuration Example ReplyAllStormProtectionEnabled = $True; Rfc2231EncodingEnabled = $False; SmtpClientAuthenticationDisabled = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 index 3fb7c0a9fe..ba0220662b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,14 +26,16 @@ Configuration Example EXOTransportRule 'ConfigureTransportRule' { Name = "Ethical Wall - Sales and Executives Departments" - BetweenMemberOf1 = "SalesTeam@$Domain" - BetweenMemberOf2 = "Executives@$Domain" - ExceptIfFrom = "AdeleV@$Domain" + BetweenMemberOf1 = "SalesTeam@$TenantId" + BetweenMemberOf2 = "Executives@$TenantId" + ExceptIfFrom = "AdeleV@$TenantId" ExceptIfSubjectContainsWords = "Press Release","Corporate Communication" RejectMessageReasonText = "Messages sent between the Sales and Brokerage departments are strictly prohibited." Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 index ebec921bdd..3481e3a882 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,14 +26,16 @@ Configuration Example EXOTransportRule 'ConfigureTransportRule' { Name = "Ethical Wall - Sales and Executives Departments" - BetweenMemberOf1 = "SalesTeam@$Domain" - BetweenMemberOf2 = "Executives@$Domain" - ExceptIfFrom = "AdeleV@$Domain" + BetweenMemberOf1 = "SalesTeam@$TenantId" + BetweenMemberOf2 = "Executives@$TenantId" + ExceptIfFrom = "AdeleV@$TenantId" ExceptIfSubjectContainsWords = "Press Release","Corporate Communication" RejectMessageReasonText = "Messages sent between the Sales and Brokerage departments are strictly prohibited." Enabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/3-Remove.ps1 index 5c40c4a7b7..3d4be5d308 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/3-Remove.ps1 @@ -5,11 +5,18 @@ It is not meant to use as a production baseline. Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +27,9 @@ Configuration Example Name = "Ethical Wall - Sales and Brokerage Departments" Enabled = $True Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From f26182b49a5389f0c13322d205a88bfec0f7301d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 12:49:11 +0000 Subject: [PATCH 180/273] Updated Resources and Cmdlet documentation pages --- .../resources/exchange/EXOAcceptedDomain.md | 61 +++++++++++---- .../exchange/EXOActiveSyncDeviceAccessRule.md | 63 ++++++++++----- .../exchange/EXOAddressBookPolicy.md | 63 ++++++++++----- .../docs/resources/exchange/EXOAddressList.md | 54 ++++++++++--- .../resources/exchange/EXOAntiPhishPolicy.md | 54 ++++++++++--- .../resources/exchange/EXOAntiPhishRule.md | 60 +++++++++++---- .../exchange/EXOApplicationAccessPolicy.md | 69 +++++++++++------ .../resources/exchange/EXOAtpPolicyForO365.md | 18 ++++- .../exchange/EXOAuthenticationPolicy.md | 54 ++++++++++--- .../EXOAuthenticationPolicyAssignment.md | 42 +++++++--- .../exchange/EXOAvailabilityAddressSpace.md | 63 ++++++++++----- .../exchange/EXOAvailabilityConfig.md | 75 ++++++++++++------ .../resources/exchange/EXOCASMailboxPlan.md | 18 ++++- .../exchange/EXOCASMailboxSettings.md | 25 +++--- .../exchange/EXOCalendarProcessing.md | 27 ++++--- .../resources/exchange/EXOClientAccessRule.md | 54 ++++++++++--- .../exchange/EXODataClassification.md | 18 ++++- .../exchange/EXODataEncryptionPolicy.md | 18 ++++- .../exchange/EXODistributionGroup.md | 77 ++++++++++++------- .../exchange/EXOEOPProtectionPolicyRule.md | 21 +++-- .../exchange/EXOEmailAddressPolicy.md | 64 ++++++++++----- .../exchange/EXOExternalInOutlook.md | 19 ++++- .../exchange/EXOGlobalAddressList.md | 66 +++++++++++----- .../resources/exchange/EXOGroupSettings.md | 24 ++++-- .../EXOHostedConnectionFilterPolicy.md | 18 ++++- .../exchange/EXOHostedContentFilterPolicy.md | 54 ++++++++++--- .../exchange/EXOHostedContentFilterRule.md | 71 +++++++++++------ .../EXOHostedOutboundSpamFilterPolicy.md | 57 +++++++++++--- .../EXOHostedOutboundSpamFilterRule.md | 72 +++++++++++------ .../resources/exchange/EXOIRMConfiguration.md | 22 ++++-- .../resources/exchange/EXOInboundConnector.md | 66 +++++++++++----- .../exchange/EXOIntraOrganizationConnector.md | 66 +++++++++++----- .../docs/resources/exchange/EXOJournalRule.md | 66 +++++++++++----- .../docs/resources/exchange/EXOMailContact.md | 61 +++++++++++---- docs/docs/resources/exchange/EXOMailTips.md | 57 ++++++++++---- .../EXOMailboxAutoReplyConfiguration.md | 22 ++++-- .../exchange/EXOMailboxCalendarFolder.md | 24 ++++-- .../exchange/EXOMailboxPermission.md | 21 +++-- .../docs/resources/exchange/EXOMailboxPlan.md | 18 ++++- .../resources/exchange/EXOMailboxSettings.md | 21 +++-- .../exchange/EXOMalwareFilterPolicy.md | 54 ++++++++++--- .../exchange/EXOMalwareFilterRule.md | 63 ++++++++++----- .../resources/exchange/EXOManagementRole.md | 59 ++++++++++---- .../exchange/EXOManagementRoleAssignment.md | 60 +++++++++++---- .../exchange/EXOManagementRoleEntry.md | 18 ++++- .../exchange/EXOMessageClassification.md | 63 ++++++++++----- .../exchange/EXOMobileDeviceMailboxPolicy.md | 54 ++++++++++--- .../resources/exchange/EXOOMEConfiguration.md | 63 ++++++++++----- .../exchange/EXOOfflineAddressBook.md | 63 ++++++++++----- .../exchange/EXOOnPremisesOrganization.md | 67 +++++++++++----- .../exchange/EXOOrganizationConfig.md | 18 ++++- .../exchange/EXOOrganizationRelationship.md | 63 ++++++++++----- .../exchange/EXOOutboundConnector.md | 42 +++++++--- .../resources/exchange/EXOOwaMailboxPolicy.md | 58 ++++++++++---- .../exchange/EXOPartnerApplication.md | 63 ++++++++++----- .../exchange/EXOPerimeterConfiguration.md | 21 +++-- docs/docs/resources/exchange/EXOPlace.md | 72 +++++++++++------ .../resources/exchange/EXOPolicyTipConfig.md | 63 ++++++++++----- .../resources/exchange/EXOQuarantinePolicy.md | 61 +++++++++++---- .../exchange/EXORecipientPermission.md | 50 ++++++++---- .../resources/exchange/EXORemoteDomain.md | 54 ++++++++++--- .../exchange/EXOReportSubmissionPolicy.md | 18 ++++- .../exchange/EXOReportSubmissionRule.md | 18 ++++- .../exchange/EXOResourceConfiguration.md | 21 +++-- .../exchange/EXORoleAssignmentPolicy.md | 54 ++++++++++--- docs/docs/resources/exchange/EXORoleGroup.md | 63 ++++++++++----- .../exchange/EXOSafeAttachmentPolicy.md | 68 +++++++++++----- .../exchange/EXOSafeAttachmentRule.md | 72 +++++++++++------ .../resources/exchange/EXOSafeLinksPolicy.md | 63 ++++++++++----- .../resources/exchange/EXOSafeLinksRule.md | 73 ++++++++++++------ .../resources/exchange/EXOSharedMailbox.md | 68 +++++++++++----- .../resources/exchange/EXOSharingPolicy.md | 54 ++++++++++--- .../resources/exchange/EXOTransportConfig.md | 18 ++++- .../resources/exchange/EXOTransportRule.md | 75 ++++++++++++------ 74 files changed, 2618 insertions(+), 999 deletions(-) diff --git a/docs/docs/resources/exchange/EXOAcceptedDomain.md b/docs/docs/resources/exchange/EXOAcceptedDomain.md index 0d42c84531..416f025cc3 100644 --- a/docs/docs/resources/exchange/EXOAcceptedDomain.md +++ b/docs/docs/resources/exchange/EXOAcceptedDomain.md @@ -47,22 +47,31 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" OutboundOnly = $false Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -77,9 +86,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -87,11 +104,13 @@ Configuration Example { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" OutboundOnly = $true # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -106,9 +125,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -116,10 +143,12 @@ Configuration Example { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOActiveSyncDeviceAccessRule.md b/docs/docs/resources/exchange/EXOActiveSyncDeviceAccessRule.md index 25d5fcb8a2..9676d00d32 100644 --- a/docs/docs/resources/exchange/EXOActiveSyncDeviceAccessRule.md +++ b/docs/docs/resources/exchange/EXOActiveSyncDeviceAccessRule.md @@ -46,11 +46,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -63,7 +70,9 @@ Configuration Example QueryString = "iOS 6.1 10B146" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -77,11 +86,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -94,7 +110,9 @@ Configuration Example QueryString = "iOS 6.1 10B145" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -108,11 +126,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +150,9 @@ Configuration Example QueryString = "iOS 6.1 10B145" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAddressBookPolicy.md b/docs/docs/resources/exchange/EXOAddressBookPolicy.md index 5742865e7c..a3d74672e4 100644 --- a/docs/docs/resources/exchange/EXOAddressBookPolicy.md +++ b/docs/docs/resources/exchange/EXOAddressBookPolicy.md @@ -47,11 +47,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -65,7 +72,9 @@ Configuration Example OfflineAddressBook = "\Default Offline Address Book" GlobalAddressList = "\Default Global Address List" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -79,11 +88,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -97,7 +113,9 @@ Configuration Example OfflineAddressBook = "\Default Offline Address Book" GlobalAddressList = "\Default Global Address List" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -111,11 +129,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +150,9 @@ Configuration Example { Name = "All Fabrikam ABP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAddressList.md b/docs/docs/resources/exchange/EXOAddressList.md index 06438f1669..b675d33d4d 100644 --- a/docs/docs/resources/exchange/EXOAddressList.md +++ b/docs/docs/resources/exchange/EXOAddressList.md @@ -65,9 +65,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -81,7 +89,9 @@ Configuration Example ConditionalStateOrProvince = "US" IncludedRecipients = "AllRecipients" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -96,9 +106,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -112,7 +130,9 @@ Configuration Example ConditionalStateOrProvince = "US" IncludedRecipients = "AllRecipients" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -127,9 +147,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -139,7 +167,9 @@ Configuration Example { Name = "HR Users" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAntiPhishPolicy.md b/docs/docs/resources/exchange/EXOAntiPhishPolicy.md index 3866339b5b..d0859b5a13 100644 --- a/docs/docs/resources/exchange/EXOAntiPhishPolicy.md +++ b/docs/docs/resources/exchange/EXOAntiPhishPolicy.md @@ -78,9 +78,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +117,9 @@ Configuration Example EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -124,9 +134,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -155,7 +173,9 @@ Configuration Example EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -170,9 +190,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -201,7 +229,9 @@ Configuration Example EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAntiPhishRule.md b/docs/docs/resources/exchange/EXOAntiPhishRule.md index c9e9a3b969..0b556b6129 100644 --- a/docs/docs/resources/exchange/EXOAntiPhishRule.md +++ b/docs/docs/resources/exchange/EXOAntiPhishRule.md @@ -55,13 +55,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAntiPhishRule 'ConfigureAntiPhishRule' @@ -69,9 +76,11 @@ Configuration Example Identity = "Test Rule" AntiPhishPolicy = "Our Rule" Enabled = $True - SentToMemberOf = @("executives@$Domain") + SentToMemberOf = @("executives@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -86,13 +95,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAntiPhishRule 'ConfigureAntiPhishRule' @@ -101,9 +117,11 @@ Configuration Example Comments = "This is an updated comment." # Updated Property AntiPhishPolicy = "Our Rule" Enabled = $True - SentToMemberOf = @("executives@$Domain") + SentToMemberOf = @("executives@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -118,9 +136,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -131,7 +157,9 @@ Configuration Example Identity = "Test Rule" AntiPhishPolicy = "Our Rule" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOApplicationAccessPolicy.md b/docs/docs/resources/exchange/EXOApplicationAccessPolicy.md index 9fa1a46662..8b1f6887be 100644 --- a/docs/docs/resources/exchange/EXOApplicationAccessPolicy.md +++ b/docs/docs/resources/exchange/EXOApplicationAccessPolicy.md @@ -47,15 +47,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' @@ -63,10 +69,12 @@ Configuration Example Identity = "Integration Policy" AccessRight = "DenyAccess" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' - PolicyScopeGroupId = "IntegrationMailEnabled@$Domain" + PolicyScopeGroupId = "IntegrationMailEnabled@$TenantId" Description = "Engineering Group Policy" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -80,15 +88,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' @@ -96,10 +110,12 @@ Configuration Example Identity = "Integration Policy" AccessRight = "DenyAccess" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' - PolicyScopeGroupId = "IntegrationMailEnabled@$Domain" + PolicyScopeGroupId = "IntegrationMailEnabled@$TenantId" Description = "Engineering Group Policy Updated" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -113,11 +129,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -128,7 +151,9 @@ Configuration Example Identity = "Integration Policy" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAtpPolicyForO365.md b/docs/docs/resources/exchange/EXOAtpPolicyForO365.md index e6b91e99ed..5d9809d9cf 100644 --- a/docs/docs/resources/exchange/EXOAtpPolicyForO365.md +++ b/docs/docs/resources/exchange/EXOAtpPolicyForO365.md @@ -49,9 +49,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -62,7 +70,9 @@ Configuration Example IsSingleInstance = "Yes" EnableATPForSPOTeamsODB = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAuthenticationPolicy.md b/docs/docs/resources/exchange/EXOAuthenticationPolicy.md index f4394e2bf0..602e77f5a7 100644 --- a/docs/docs/resources/exchange/EXOAuthenticationPolicy.md +++ b/docs/docs/resources/exchange/EXOAuthenticationPolicy.md @@ -56,9 +56,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -80,7 +88,9 @@ Configuration Example AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -95,9 +105,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -119,7 +137,9 @@ Configuration Example AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -134,9 +154,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -158,7 +186,9 @@ Configuration Example AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAuthenticationPolicyAssignment.md b/docs/docs/resources/exchange/EXOAuthenticationPolicyAssignment.md index 989f6a5dca..04cdfc7453 100644 --- a/docs/docs/resources/exchange/EXOAuthenticationPolicyAssignment.md +++ b/docs/docs/resources/exchange/EXOAuthenticationPolicyAssignment.md @@ -43,21 +43,30 @@ To authenticate with Microsoft Exchange, this resource required the following pe Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAuthenticationPolicyAssignment 'ConfigureAuthenticationPolicyAssignment' { - UserName = "AdeleV@$Domain" + UserName = "AdeleV@$TenantId" AuthenticationPolicyName = "Block Basic Auth" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -70,21 +79,30 @@ Configuration Example Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAuthenticationPolicyAssignment 'ConfigureAuthenticationPolicyAssignment' { - UserName = "AdeleV@$Domain" + UserName = "AdeleV@$TenantId" AuthenticationPolicyName = "Test Policy" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAvailabilityAddressSpace.md b/docs/docs/resources/exchange/EXOAvailabilityAddressSpace.md index e7df67892d..83d0c3a0a6 100644 --- a/docs/docs/resources/exchange/EXOAvailabilityAddressSpace.md +++ b/docs/docs/resources/exchange/EXOAvailabilityAddressSpace.md @@ -49,11 +49,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -68,7 +75,9 @@ Configuration Example TargetServiceEpr = 'https://contoso.com/autodiscover/autodiscover.xml' TargetTenantId = 'o365dsc.onmicrosoft.com' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -82,11 +91,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -101,7 +117,9 @@ Configuration Example TargetServiceEpr = 'https://contoso.com/autodiscover/autodiscover.xml' TargetTenantId = 'contoso.onmicrosoft.com' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -115,11 +133,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -130,7 +155,9 @@ Configuration Example { Identity = 'Contoso.com' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOAvailabilityConfig.md b/docs/docs/resources/exchange/EXOAvailabilityConfig.md index 936517c50e..d74942c811 100644 --- a/docs/docs/resources/exchange/EXOAvailabilityConfig.md +++ b/docs/docs/resources/exchange/EXOAvailabilityConfig.md @@ -43,22 +43,31 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "adelev@$Domain" + OrgWideAccount = "adelev@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -72,22 +81,31 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "alexW@$Domain" # Updated Property + OrgWideAccount = "alexW@$TenantId" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -101,22 +119,31 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "alexW@$Domain" # Updated Property + OrgWideAccount = "alexW@$TenantId" # Updated Property Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOCASMailboxPlan.md b/docs/docs/resources/exchange/EXOCASMailboxPlan.md index d63d6a8774..a86f0fbb56 100644 --- a/docs/docs/resources/exchange/EXOCASMailboxPlan.md +++ b/docs/docs/resources/exchange/EXOCASMailboxPlan.md @@ -50,9 +50,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -66,7 +74,9 @@ Configuration Example Identity = 'ExchangeOnlineEnterprise' ImapEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOCASMailboxSettings.md b/docs/docs/resources/exchange/EXOCASMailboxSettings.md index 9fac50452a..686e5c3a51 100644 --- a/docs/docs/resources/exchange/EXOCASMailboxSettings.md +++ b/docs/docs/resources/exchange/EXOCASMailboxSettings.md @@ -77,16 +77,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOCASMailboxSettings 'AdeleVCasMailboxSettings' @@ -98,7 +103,7 @@ Configuration Example ActiveSyncMailboxPolicy = 'Default' ActiveSyncSuppressReadReceipt = $False EwsEnabled = $True - Identity = "admin@$Domain" + Identity = "admin@$TenantId" ImapEnabled = $True # Updated Property ImapForceICalForCalendarRetrievalOption = $False ImapMessagesRetrievalMimeFormat = 'BestBodyFormat' @@ -119,7 +124,9 @@ Configuration Example ShowGalAsDefaultView = $True UniversalOutlookEnabled = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOCalendarProcessing.md b/docs/docs/resources/exchange/EXOCalendarProcessing.md index 42b6045f42..1b358814a1 100644 --- a/docs/docs/resources/exchange/EXOCalendarProcessing.md +++ b/docs/docs/resources/exchange/EXOCalendarProcessing.md @@ -81,15 +81,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOCalendarProcessing "CalendarProcessing" @@ -107,7 +114,6 @@ Configuration Example BookingWindowInDays = 180; BookInPolicy = @(); ConflictPercentageAllowed = 0; - Credential = $credsCredential; DeleteAttachments = $True; DeleteComments = $True; DeleteNonCalendarItems = $True; @@ -118,7 +124,7 @@ Configuration Example EnforceSchedulingHorizon = $True; Ensure = "Present"; ForwardRequestsToDelegates = $True; - Identity = "admin@$Domain"; + Identity = "admin@$TenantId"; MaximumConflictInstances = 0; MaximumDurationInMinutes = 1440; MinimumDurationInMinutes = 0; @@ -129,10 +135,13 @@ Configuration Example RemoveForwardedMeetingNotifications = $False; RemoveOldMeetingMessages = $False; RemovePrivateProperty = $True; - RequestInPolicy = @("AlexW@$Domain"); + RequestInPolicy = @("AlexW@$TenantId"); ResourceDelegates = @(); ScheduleOnlyDuringWorkHours = $False; TentativePendingApproval = $True; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOClientAccessRule.md b/docs/docs/resources/exchange/EXOClientAccessRule.md index 468b2823c9..f1fcdc480e 100644 --- a/docs/docs/resources/exchange/EXOClientAccessRule.md +++ b/docs/docs/resources/exchange/EXOClientAccessRule.md @@ -64,9 +64,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -88,7 +96,9 @@ Configuration Example ExceptAnyOfClientIPAddressesOrRanges = @() AnyOfClientIPAddressesOrRanges = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -103,9 +113,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -127,7 +145,9 @@ Configuration Example ExceptAnyOfClientIPAddressesOrRanges = @() AnyOfClientIPAddressesOrRanges = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -142,9 +162,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -155,7 +183,9 @@ Configuration Example Action = "AllowAccess" Identity = "Always Allow Remote PowerShell" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXODataClassification.md b/docs/docs/resources/exchange/EXODataClassification.md index 261852d7ec..e85a9c96f3 100644 --- a/docs/docs/resources/exchange/EXODataClassification.md +++ b/docs/docs/resources/exchange/EXODataClassification.md @@ -49,9 +49,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -65,7 +73,9 @@ Configuration Example IsDefault = $True; Locale = "en-US"; Name = "Canada Social Insurance Number"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXODataEncryptionPolicy.md b/docs/docs/resources/exchange/EXODataEncryptionPolicy.md index 73284eb14c..5146af3072 100644 --- a/docs/docs/resources/exchange/EXODataEncryptionPolicy.md +++ b/docs/docs/resources/exchange/EXODataEncryptionPolicy.md @@ -50,9 +50,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -62,7 +70,9 @@ Configuration Example { Identity = 'US Mailboxes' Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXODistributionGroup.md b/docs/docs/resources/exchange/EXODistributionGroup.md index 761c1d7768..a3142c7693 100644 --- a/docs/docs/resources/exchange/EXODistributionGroup.md +++ b/docs/docs/resources/exchange/EXODistributionGroup.md @@ -85,11 +85,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -104,17 +111,19 @@ Configuration Example DisplayName = "My Demo DG"; Ensure = "Present"; HiddenGroupMembershipEnabled = $True; - ManagedBy = @("adeleV@$Domain"); + ManagedBy = @("adeleV@$TenantId"); MemberDepartRestriction = "Open"; MemberJoinRestriction = "Closed"; - ModeratedBy = @("alexW@$Domain"); + ModeratedBy = @("alexW@$TenantId"); ModerationEnabled = $False; Identity = "DemoDG"; Name = "DemoDG"; - PrimarySmtpAddress = "demodg@$Domain"; + PrimarySmtpAddress = "demodg@$TenantId"; RequireSenderAuthenticationEnabled = $True; SendModerationNotifications = "Always"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -128,15 +137,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODistributionGroup 'DemoDG' @@ -147,17 +162,19 @@ Configuration Example DisplayName = "My Demo DG"; Ensure = "Present"; HiddenGroupMembershipEnabled = $True; - ManagedBy = @("adeleV@$Domain"); + ManagedBy = @("adeleV@$TenantId"); MemberDepartRestriction = "Open"; MemberJoinRestriction = "Closed"; - ModeratedBy = @("alexW@$Domain"); + ModeratedBy = @("alexW@$TenantId"); ModerationEnabled = $False; Identity = "DemoDG"; Name = "DemoDG"; - PrimarySmtpAddress = "demodg@$Domain"; + PrimarySmtpAddress = "demodg@$TenantId"; RequireSenderAuthenticationEnabled = $True; SendModerationNotifications = "Always"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -171,24 +188,32 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC node localhost { - $Domain = $Credscredential.Username.Split('@')[1] EXODistributionGroup 'DemoDG' { DisplayName = "My Demo DG"; Ensure = "Absent"; Identity = "DemoDG"; Name = "DemoDG"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md b/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md index c439f3314c..d5c0c35184 100644 --- a/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md +++ b/docs/docs/resources/exchange/EXOEOPProtectionPolicyRule.md @@ -52,26 +52,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOEOPProtectionPolicyRule "EXOEOPProtectionPolicyRule-Strict Preset Security Policy" { - ApplicationId = $ConfigurationData.NonNodeData.ApplicationId; - CertificateThumbprint = $ConfigurationData.NonNodeData.CertificateThumbprint; Ensure = "Present"; ExceptIfRecipientDomainIs = @("sandrodev.onmicrosoft.com"); Identity = "Strict Preset Security Policy"; Name = "Strict Preset Security Policy"; Priority = 0; State = "Enabled"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOEmailAddressPolicy.md b/docs/docs/resources/exchange/EXOEmailAddressPolicy.md index 54bf098cd3..b1bb91b7cf 100644 --- a/docs/docs/resources/exchange/EXOEmailAddressPolicy.md +++ b/docs/docs/resources/exchange/EXOEmailAddressPolicy.md @@ -48,9 +48,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -60,12 +68,14 @@ Configuration Example EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" - EnabledEmailAddressTemplates = @("SMTP:@$Domain") - EnabledPrimarySMTPAddressTemplate = "@$Domain" + EnabledEmailAddressTemplates = @("SMTP:@$TenantId") + EnabledPrimarySMTPAddressTemplate = "@$TenantId" ManagedByFilter = "" Priority = 1 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -80,24 +90,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" - EnabledEmailAddressTemplates = @("SMTP:@$Domain") - EnabledPrimarySMTPAddressTemplate = "@$Domain" + EnabledEmailAddressTemplates = @("SMTP:@$TenantId") + EnabledPrimarySMTPAddressTemplate = "@$TenantId" ManagedByFilter = "Department -eq 'Sales'" # Updated Property Priority = 1 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -112,20 +131,29 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC node localhost { - $Domain = $Credscredential.Username.Split('@')[1] EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOExternalInOutlook.md b/docs/docs/resources/exchange/EXOExternalInOutlook.md index 14a617a670..c06886185b 100644 --- a/docs/docs/resources/exchange/EXOExternalInOutlook.md +++ b/docs/docs/resources/exchange/EXOExternalInOutlook.md @@ -44,10 +44,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -58,7 +67,9 @@ Configuration Example AllowList = @("mobile01@contoso.onmicrosoft.com","*contoso.onmicrosoft.com","contoso.com"); Enabled = $False; Ensure = "Present"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOGlobalAddressList.md b/docs/docs/resources/exchange/EXOGlobalAddressList.md index 03f184e64e..905ab60094 100644 --- a/docs/docs/resources/exchange/EXOGlobalAddressList.md +++ b/docs/docs/resources/exchange/EXOGlobalAddressList.md @@ -63,12 +63,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -81,7 +89,9 @@ Configuration Example ConditionalStateOrProvince = "Washington" IncludedRecipients = 'AllRecipients' Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -95,12 +105,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -112,7 +130,9 @@ Configuration Example ConditionalDepartment = "Finances" # Updated Property ConditionalStateOrProvince = "Washington" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -126,12 +146,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -140,7 +168,9 @@ Configuration Example { Name = "Contoso Human Resources in Washington" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOGroupSettings.md b/docs/docs/resources/exchange/EXOGroupSettings.md index a9994b01f8..ca2bae5934 100644 --- a/docs/docs/resources/exchange/EXOGroupSettings.md +++ b/docs/docs/resources/exchange/EXOGroupSettings.md @@ -94,16 +94,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOGroupSettings 'TestGroup' @@ -115,7 +121,6 @@ Configuration Example AutoSubscribeNewMembers = $False; CalendarMemberReadOnly = $False; ConnectorsEnabled = $False; # Updated Property - Credential = $Credscredential; HiddenFromAddressListsEnabled = $True; HiddenFromExchangeClientsEnabled = $True; InformationBarrierMode = "Open"; @@ -124,9 +129,12 @@ Configuration Example MaxSendSize = "35 MB (36,700,160 bytes)"; ModerationEnabled = $False; Notes = "My Notes"; - PrimarySmtpAddress = "TestGroup@$Domain"; + PrimarySmtpAddress = "TestGroup@$TenantId"; RequireSenderAuthenticationEnabled = $True; SubscriptionEnabled = $False; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOHostedConnectionFilterPolicy.md b/docs/docs/resources/exchange/EXOHostedConnectionFilterPolicy.md index d5ce379cde..24fd712aa2 100644 --- a/docs/docs/resources/exchange/EXOHostedConnectionFilterPolicy.md +++ b/docs/docs/resources/exchange/EXOHostedConnectionFilterPolicy.md @@ -50,9 +50,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -67,7 +75,9 @@ Configuration Example IPBlockList = @() MakeDefault = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOHostedContentFilterPolicy.md b/docs/docs/resources/exchange/EXOHostedContentFilterPolicy.md index 15f1f0a745..d01949203b 100644 --- a/docs/docs/resources/exchange/EXOHostedContentFilterPolicy.md +++ b/docs/docs/resources/exchange/EXOHostedContentFilterPolicy.md @@ -97,9 +97,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -147,7 +155,9 @@ Configuration Example TestModeAction = "None" TestModeBccToRecipients = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -162,9 +172,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -212,7 +230,9 @@ Configuration Example TestModeAction = "None" TestModeBccToRecipients = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -227,9 +247,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -239,7 +267,9 @@ Configuration Example { Identity = "Integration CFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOHostedContentFilterRule.md b/docs/docs/resources/exchange/EXOHostedContentFilterRule.md index 1eb607bc93..bc656c1f5e 100644 --- a/docs/docs/resources/exchange/EXOHostedContentFilterRule.md +++ b/docs/docs/resources/exchange/EXOHostedContentFilterRule.md @@ -54,15 +54,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' @@ -70,11 +76,13 @@ Configuration Example Identity = "Integration CFR" Comments = "Applies to all users, except when member of HR group" Enabled = $True - ExceptIfSentToMemberOf = "LegalTeam@$Domain" + ExceptIfSentToMemberOf = "LegalTeam@$TenantId" RecipientDomainIs = @('contoso.com') HostedContentFilterPolicy = "Integration CFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -88,15 +96,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' @@ -104,11 +119,13 @@ Configuration Example Identity = "Integration CFR" Comments = "Applies to all users, except when member of HR group" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "LegalTeam@$Domain" + ExceptIfSentToMemberOf = "LegalTeam@$TenantId" RecipientDomainIs = @('contoso.com') HostedContentFilterPolicy = "Integration CFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -122,12 +139,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -137,7 +162,9 @@ Configuration Example Identity = "Integration CFR" HostedContentFilterPolicy = "Integration CFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md index 25ceb5f298..24df1817c5 100644 --- a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md +++ b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md @@ -55,10 +55,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -77,7 +86,9 @@ Configuration Example RecipientLimitInternalPerHour = 0 RecipientLimitPerDay = 0 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -92,10 +103,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -114,7 +134,9 @@ Configuration Example RecipientLimitInternalPerHour = 1 # Updated Property RecipientLimitPerDay = 0 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -129,10 +151,19 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -141,7 +172,9 @@ Configuration Example { Identity = "Integration SFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md index 85c7083158..d260d6da3a 100644 --- a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md +++ b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md @@ -54,15 +54,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' @@ -70,11 +77,13 @@ Configuration Example Identity = "Contoso Executives" Comments = "Does not apply to Executives" Enabled = $True - ExceptIfFrom = "AdeleV@$Domain" - FromMemberOf = "Executives@$Domain" + ExceptIfFrom = "AdeleV@$TenantId" + FromMemberOf = "Executives@$TenantId" HostedOutboundSpamFilterPolicy = "Integration SFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -88,15 +97,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' @@ -104,11 +120,13 @@ Configuration Example Identity = "Contoso Executives" Comments = "Does not apply to Executives" Enabled = $False # Updated Property - ExceptIfFrom = "AdeleV@$Domain" - FromMemberOf = "Executives@$Domain" + ExceptIfFrom = "AdeleV@$TenantId" + FromMemberOf = "Executives@$TenantId" HostedOutboundSpamFilterPolicy = "Integration SFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -122,12 +140,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC $Domain = $Credscredential.Username.Split('@')[1] diff --git a/docs/docs/resources/exchange/EXOIRMConfiguration.md b/docs/docs/resources/exchange/EXOIRMConfiguration.md index 3fbd8d2935..67903e63f8 100644 --- a/docs/docs/resources/exchange/EXOIRMConfiguration.md +++ b/docs/docs/resources/exchange/EXOIRMConfiguration.md @@ -58,12 +58,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -85,7 +93,9 @@ Configuration Example SimplifiedClientAccessEncryptOnlyDisabled = $True TransportDecryptionSetting = 'Mandatory' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOInboundConnector.md b/docs/docs/resources/exchange/EXOInboundConnector.md index 3d56a2047b..5f7dde5179 100644 --- a/docs/docs/resources/exchange/EXOInboundConnector.md +++ b/docs/docs/resources/exchange/EXOInboundConnector.md @@ -59,12 +59,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -81,7 +89,9 @@ Configuration Example SenderDomains = "*.contoso.com" TlsSenderCertificateName = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -95,12 +105,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -117,7 +135,9 @@ Configuration Example SenderDomains = "*.contoso.com" TlsSenderCertificateName = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -131,12 +151,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -145,7 +173,9 @@ Configuration Example { Identity = "Integration Inbound Connector" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOIntraOrganizationConnector.md b/docs/docs/resources/exchange/EXOIntraOrganizationConnector.md index 7247b53cf0..957c45cde9 100644 --- a/docs/docs/resources/exchange/EXOIntraOrganizationConnector.md +++ b/docs/docs/resources/exchange/EXOIntraOrganizationConnector.md @@ -47,12 +47,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -64,7 +72,9 @@ Configuration Example TargetAddressDomains = "Cloud1.contoso.com","Cloud2.contoso.com" Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -78,12 +88,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -95,7 +113,9 @@ Configuration Example TargetAddressDomains = "Cloud1.contoso.com","Cloud2.contoso.com" Enabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -109,12 +129,20 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -123,7 +151,9 @@ Configuration Example { Identity = "MainCloudConnector" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOJournalRule.md b/docs/docs/resources/exchange/EXOJournalRule.md index 5621508b15..aeeead5aa0 100644 --- a/docs/docs/resources/exchange/EXOJournalRule.md +++ b/docs/docs/resources/exchange/EXOJournalRule.md @@ -48,23 +48,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOJournalRule 'CreateJournalRule' { Enabled = $True - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" RuleScope = "Global" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -79,23 +89,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOJournalRule 'CreateJournalRule' { Enabled = $False # Updated Property - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" RuleScope = "Global" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -110,21 +130,31 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOJournalRule 'CreateJournalRule' { - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailContact.md b/docs/docs/resources/exchange/EXOMailContact.md index bd05b43037..d9da5a8747 100644 --- a/docs/docs/resources/exchange/EXOMailContact.md +++ b/docs/docs/resources/exchange/EXOMailContact.md @@ -80,19 +80,25 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Present' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' @@ -102,11 +108,14 @@ Configuration Example ModeratedBy = @() ModerationEnabled = $false Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $true CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -121,9 +130,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -133,7 +150,6 @@ Configuration Example EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Present' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' @@ -143,11 +159,14 @@ Configuration Example ModeratedBy = @() ModerationEnabled = $false Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $false # Updated Property CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -162,9 +181,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -174,16 +201,18 @@ Configuration Example EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Absent' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $false # Updated Property CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailTips.md b/docs/docs/resources/exchange/EXOMailTips.md index 76f374a191..c7980b4ba8 100644 --- a/docs/docs/resources/exchange/EXOMailTips.md +++ b/docs/docs/resources/exchange/EXOMailTips.md @@ -49,13 +49,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailTips 'OrgWideMailTips' @@ -67,7 +74,9 @@ Configuration Example MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -82,13 +91,20 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailTips 'OrgWideMailTips' @@ -100,7 +116,9 @@ Configuration Example MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -115,20 +133,29 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailTips 'OrgWideMailTips' { IsSingleInstance = 'Yes' Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailboxAutoReplyConfiguration.md b/docs/docs/resources/exchange/EXOMailboxAutoReplyConfiguration.md index 158fb13cd7..ac9ad5ca55 100644 --- a/docs/docs/resources/exchange/EXOMailboxAutoReplyConfiguration.md +++ b/docs/docs/resources/exchange/EXOMailboxAutoReplyConfiguration.md @@ -58,13 +58,21 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) + Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailboxAutoReplyConfiguration "EXOMailboxAutoReplyConfiguration" @@ -72,7 +80,6 @@ Configuration Example AutoDeclineFutureRequestsWhenOOF = $False; AutoReplyState = "Disabled"; CreateOOFEvent = $False; - Credential = $Credscredential; DeclineAllEventsForScheduledOOF = $False; DeclineEventsForScheduledOOF = $False; DeclineMeetingMessage = ""; @@ -80,10 +87,13 @@ Configuration Example Ensure = "Present"; ExternalAudience = "All"; ExternalMessage = (New-Guid).ToString(); # Updated Property - Identity = "AdeleV@$Domain"; + Identity = "AdeleV@$TenantId"; InternalMessage = ""; OOFEventSubject = ""; StartTime = "1/22/2024 3:00:00 PM"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailboxCalendarFolder.md b/docs/docs/resources/exchange/EXOMailboxCalendarFolder.md index f28ef89768..23b1861153 100644 --- a/docs/docs/resources/exchange/EXOMailboxCalendarFolder.md +++ b/docs/docs/resources/exchange/EXOMailboxCalendarFolder.md @@ -50,27 +50,35 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailboxCalendarFolder "JohnCalendarFolder" { - Credential = $credsCredential; DetailLevel = "AvailabilityOnly"; Ensure = "Present"; - Identity = "AlexW@$Domain" + ":\Calendar"; + Identity = "AlexW@$TenantId" + ":\Calendar"; PublishDateRangeFrom = "ThreeMonths"; PublishDateRangeTo = "ThreeMonths"; PublishEnabled = $True; # Updated Property SearchableUrlEnabled = $False; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailboxPermission.md b/docs/docs/resources/exchange/EXOMailboxPermission.md index c554e2bf5e..f7dfe3b58c 100644 --- a/docs/docs/resources/exchange/EXOMailboxPermission.md +++ b/docs/docs/resources/exchange/EXOMailboxPermission.md @@ -49,24 +49,33 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailboxPermission "TestPermission" { AccessRights = @("FullAccess","ReadPermission"); - Credential = $credsCredential; Deny = $True; # Updated Property Ensure = "Present"; - Identity = "AlexW@$Domain"; + Identity = "AlexW@$TenantId"; InheritanceType = "All"; User = "NT AUTHORITY\SELF"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailboxPlan.md b/docs/docs/resources/exchange/EXOMailboxPlan.md index 5f5de0e838..6401c6441c 100644 --- a/docs/docs/resources/exchange/EXOMailboxPlan.md +++ b/docs/docs/resources/exchange/EXOMailboxPlan.md @@ -53,9 +53,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -72,7 +80,9 @@ Configuration Example ProhibitSendReceiveQuota = "15 GB (16,106,127,360 bytes)"; # Updated Property RetainDeletedItemsFor = "14.00:00:00"; RoleAssignmentPolicy = "Default Role Assignment Policy"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMailboxSettings.md b/docs/docs/resources/exchange/EXOMailboxSettings.md index cb5e9dd7e9..0007b04d38 100644 --- a/docs/docs/resources/exchange/EXOMailboxSettings.md +++ b/docs/docs/resources/exchange/EXOMailboxSettings.md @@ -48,11 +48,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -65,7 +72,9 @@ Configuration Example TimeZone = 'Eastern Standard Time' Locale = 'en-US' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMalwareFilterPolicy.md b/docs/docs/resources/exchange/EXOMalwareFilterPolicy.md index 0596397bc3..7d9fd4fc7e 100644 --- a/docs/docs/resources/exchange/EXOMalwareFilterPolicy.md +++ b/docs/docs/resources/exchange/EXOMalwareFilterPolicy.md @@ -62,9 +62,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -82,7 +90,9 @@ Configuration Example QuarantineTag = "AdminOnlyAccessPolicy" ZapEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -97,9 +107,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -117,7 +135,9 @@ Configuration Example QuarantineTag = "AdminOnlyAccessPolicy" ZapEnabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -132,9 +152,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -144,7 +172,9 @@ Configuration Example { Identity = "IntegrationMFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMalwareFilterRule.md b/docs/docs/resources/exchange/EXOMalwareFilterRule.md index 46f54e7f7e..dc4689f84c 100644 --- a/docs/docs/resources/exchange/EXOMalwareFilterRule.md +++ b/docs/docs/resources/exchange/EXOMalwareFilterRule.md @@ -53,11 +53,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +78,9 @@ Configuration Example Enabled = $True RecipientDomainIs = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -85,11 +94,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -103,7 +119,9 @@ Configuration Example Enabled = $False # Updated Property RecipientDomainIs = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -117,11 +135,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -132,7 +157,9 @@ Configuration Example Identity = "Contoso Recipients" MalwareFilterPolicy = "IntegrationMFP" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOManagementRole.md b/docs/docs/resources/exchange/EXOManagementRole.md index 43ecc597a6..3dfd2ffcc4 100644 --- a/docs/docs/resources/exchange/EXOManagementRole.md +++ b/docs/docs/resources/exchange/EXOManagementRole.md @@ -46,22 +46,31 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRole 'ConfigureManagementRole' { Name = "MyDisplayName" Description = "" - Parent = "$Domain\MyProfileInformation" + Parent = "$TenantId\MyProfileInformation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -76,9 +85,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -89,9 +106,11 @@ Configuration Example { Name = "MyDisplayName" Description = "Updated Description" # Updated Property - Parent = "$Domain\MyProfileInformation" + Parent = "$TenantId\MyProfileInformation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -106,9 +125,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -120,7 +147,9 @@ Configuration Example Description = "Updated Description" # Updated Property Parent = "contoso.onmicrosoft.com\MyProfileInformation" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOManagementRoleAssignment.md b/docs/docs/resources/exchange/EXOManagementRoleAssignment.md index 31934e2895..d45b5fcabb 100644 --- a/docs/docs/resources/exchange/EXOManagementRoleAssignment.md +++ b/docs/docs/resources/exchange/EXOManagementRoleAssignment.md @@ -55,9 +55,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -66,11 +74,13 @@ Configuration Example { EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Present"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AdeleV@$Domain"; + User = "AdeleV@$TenantId"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -85,9 +95,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -96,11 +114,13 @@ Configuration Example { EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Present"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AlexW@$Domain"; # Updated Property + User = "AlexW@$TenantId"; # Updated Property + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -115,9 +135,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $credsCredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -126,11 +154,13 @@ Configuration Example { EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Absent"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AlexW@$Domain"; # Updated Property + User = "AlexW@$TenantId"; # Updated Property + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOManagementRoleEntry.md b/docs/docs/resources/exchange/EXOManagementRoleEntry.md index 2c20553e80..d45b2b6e0d 100644 --- a/docs/docs/resources/exchange/EXOManagementRoleEntry.md +++ b/docs/docs/resources/exchange/EXOManagementRoleEntry.md @@ -45,9 +45,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -55,7 +63,9 @@ Configuration Example { EXOManagementRoleEntry "UpdateRoleEntry" { - Credential = $Credscredential; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint Identity = "Information Rights Management\Get-BookingMailbox" Parameters = @("ANR","RecipientTypeDetails", "ResultSize") } diff --git a/docs/docs/resources/exchange/EXOMessageClassification.md b/docs/docs/resources/exchange/EXOMessageClassification.md index f37a4f8049..4f8a62bcb8 100644 --- a/docs/docs/resources/exchange/EXOMessageClassification.md +++ b/docs/docs/resources/exchange/EXOMessageClassification.md @@ -51,11 +51,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -72,7 +79,9 @@ Configuration Example SenderDescription = "Shown to senders" RetainClassificationEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -86,11 +95,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -107,7 +123,9 @@ Configuration Example SenderDescription = "Shown to senders" RetainClassificationEnabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -121,11 +139,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -137,7 +162,9 @@ Configuration Example Name = "Contoso Message Classification" DisplayName = "Contoso Message Classification" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOMobileDeviceMailboxPolicy.md b/docs/docs/resources/exchange/EXOMobileDeviceMailboxPolicy.md index 3285327426..0fdbcff8f4 100644 --- a/docs/docs/resources/exchange/EXOMobileDeviceMailboxPolicy.md +++ b/docs/docs/resources/exchange/EXOMobileDeviceMailboxPolicy.md @@ -98,9 +98,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -163,7 +171,9 @@ Configuration Example UNCAccessEnabled = $True WSSAccessEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -178,9 +188,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -243,7 +261,9 @@ Configuration Example UNCAccessEnabled = $True WSSAccessEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -258,9 +278,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -270,7 +298,9 @@ Configuration Example { Name = "Default" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOMEConfiguration.md b/docs/docs/resources/exchange/EXOOMEConfiguration.md index 3d2e31eff2..45ddac8afe 100644 --- a/docs/docs/resources/exchange/EXOOMEConfiguration.md +++ b/docs/docs/resources/exchange/EXOOMEConfiguration.md @@ -53,11 +53,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -75,7 +82,9 @@ Configuration Example PortalText = "This portal is encrypted." SocialIdSignIn = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -89,11 +98,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -111,7 +127,9 @@ Configuration Example PortalText = "This portal is encrypted." SocialIdSignIn = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -125,11 +143,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -139,7 +164,9 @@ Configuration Example { Identity = "Contoso Marketing" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOfflineAddressBook.md b/docs/docs/resources/exchange/EXOOfflineAddressBook.md index 3fc957f8c4..4439e5ab9c 100644 --- a/docs/docs/resources/exchange/EXOOfflineAddressBook.md +++ b/docs/docs/resources/exchange/EXOOfflineAddressBook.md @@ -47,11 +47,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -65,7 +72,9 @@ Configuration Example DiffRetentionPeriod = "30" IsDefault = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -79,11 +88,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -97,7 +113,9 @@ Configuration Example DiffRetentionPeriod = "60" # Updated Property IsDefault = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -111,11 +129,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -130,7 +155,9 @@ Configuration Example DiffRetentionPeriod = "30" IsDefault = $true Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOnPremisesOrganization.md b/docs/docs/resources/exchange/EXOOnPremisesOrganization.md index a36dd455a3..b9ac4ad94c 100644 --- a/docs/docs/resources/exchange/EXOOnPremisesOrganization.md +++ b/docs/docs/resources/exchange/EXOOnPremisesOrganization.md @@ -50,11 +50,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +78,9 @@ Configuration Example OrganizationName = 'O365DSC' OutboundConnector = 'Contoso Outbound Connector' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DependsOn = "[EXOOutboundConnector]OutboundDependency" } EXOOutboundConnector 'OutboundDependency' @@ -90,7 +99,9 @@ Configuration Example TlsSettings = "DomainValidation" UseMxRecord = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -104,11 +115,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +143,9 @@ Configuration Example OrganizationName = 'O365DSC' OutboundConnector = 'Contoso Outbound Connector' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -139,11 +159,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -153,7 +180,9 @@ Configuration Example EXOOnPremisesOrganization 'ConfigureOnPremisesOrganization' { Identity = 'Contoso' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOrganizationConfig.md b/docs/docs/resources/exchange/EXOOrganizationConfig.md index 4cb2c64b8d..13977a5b61 100644 --- a/docs/docs/resources/exchange/EXOOrganizationConfig.md +++ b/docs/docs/resources/exchange/EXOOrganizationConfig.md @@ -150,9 +150,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -221,7 +229,9 @@ Configuration Example AutoExpandingArchive = $null ConnectorsEnabledForSharepoint = $True ReadTrackingEnabled = $False - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOrganizationRelationship.md b/docs/docs/resources/exchange/EXOOrganizationRelationship.md index f13e4acac0..c088e8fc91 100644 --- a/docs/docs/resources/exchange/EXOOrganizationRelationship.md +++ b/docs/docs/resources/exchange/EXOOrganizationRelationship.md @@ -63,11 +63,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -89,7 +96,9 @@ Configuration Example TargetApplicationUri = "mail.contoso.com" TargetAutodiscoverEpr = "https://mail.contoso.com/autodiscover/autodiscover.svc/wssecurity" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -103,11 +112,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -129,7 +145,9 @@ Configuration Example TargetApplicationUri = "mail.contoso.com" TargetAutodiscoverEpr = "https://mail.contoso.com/autodiscover/autodiscover.svc/wssecurity" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -143,11 +161,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -158,7 +183,9 @@ Configuration Example Name = "Contoso" Enabled = $True Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOutboundConnector.md b/docs/docs/resources/exchange/EXOOutboundConnector.md index cf2d1b3c8a..12fe6fc758 100644 --- a/docs/docs/resources/exchange/EXOOutboundConnector.md +++ b/docs/docs/resources/exchange/EXOOutboundConnector.md @@ -59,11 +59,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -85,7 +92,9 @@ Configuration Example TlsSettings = "DomainValidation" UseMxRecord = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -99,11 +108,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -113,7 +129,9 @@ Configuration Example { Identity = "Contoso Outbound Connector" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOOwaMailboxPolicy.md b/docs/docs/resources/exchange/EXOOwaMailboxPolicy.md index 48446c50ee..b5b36683c3 100644 --- a/docs/docs/resources/exchange/EXOOwaMailboxPolicy.md +++ b/docs/docs/resources/exchange/EXOOwaMailboxPolicy.md @@ -129,9 +129,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -213,7 +221,9 @@ Configuration Example WeatherEnabled = $True WebPartsFrameOptionsType = "SameOrigin" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -228,9 +238,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -312,7 +330,9 @@ Configuration Example WeatherEnabled = $True WebPartsFrameOptionsType = "SameOrigin" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -327,9 +347,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -337,9 +365,11 @@ Configuration Example { EXOOwaMailboxPolicy 'ConfigureOwaMailboxPolicy' { - Name = "OwaMailboxPolicy-Integration" - Ensure = "Absent" - Credential = $Credscredential + Name = "OwaMailboxPolicy-Integration" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOPartnerApplication.md b/docs/docs/resources/exchange/EXOPartnerApplication.md index 171b6139ef..c2a9274372 100644 --- a/docs/docs/resources/exchange/EXOPartnerApplication.md +++ b/docs/docs/resources/exchange/EXOPartnerApplication.md @@ -48,11 +48,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -65,7 +72,9 @@ Configuration Example AcceptSecurityIdentifierInformation = $true Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -79,11 +88,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -96,7 +112,9 @@ Configuration Example AcceptSecurityIdentifierInformation = $False # Updated Property Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -110,11 +128,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +150,9 @@ Configuration Example Name = "HRApp" ApplicationIdentifier = "00000006-0000-0dd1-ac00-000000000000" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOPerimeterConfiguration.md b/docs/docs/resources/exchange/EXOPerimeterConfiguration.md index 7be82338d6..fd4f32630f 100644 --- a/docs/docs/resources/exchange/EXOPerimeterConfiguration.md +++ b/docs/docs/resources/exchange/EXOPerimeterConfiguration.md @@ -44,11 +44,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -59,7 +66,9 @@ Configuration Example IsSingleInstance = 'Yes' #GatewayIPAddresses = '123.0.0.1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOPlace.md b/docs/docs/resources/exchange/EXOPlace.md index 3871b8b820..ff45da9f80 100644 --- a/docs/docs/resources/exchange/EXOPlace.md +++ b/docs/docs/resources/exchange/EXOPlace.md @@ -65,16 +65,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOPlace 'TestPlace' @@ -82,10 +88,12 @@ Configuration Example AudioDeviceName = "MyAudioDevice"; Capacity = 15; City = ""; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Present' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; IsWheelChairAccessible = $True; MTREnabled = $False; ParentType = "None"; @@ -105,16 +113,22 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOPlace 'TestPlace' @@ -122,10 +136,12 @@ Configuration Example AudioDeviceName = "MyAudioDevice"; Capacity = 16; # Updated Property City = ""; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Present' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; IsWheelChairAccessible = $True; MTREnabled = $False; ParentType = "None"; @@ -145,25 +161,33 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOPlace 'TestPlace' { AudioDeviceName = "MyAudioDevice"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Absent' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; } } } diff --git a/docs/docs/resources/exchange/EXOPolicyTipConfig.md b/docs/docs/resources/exchange/EXOPolicyTipConfig.md index db36152278..8bb48246bd 100644 --- a/docs/docs/resources/exchange/EXOPolicyTipConfig.md +++ b/docs/docs/resources/exchange/EXOPolicyTipConfig.md @@ -44,11 +44,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -59,7 +66,9 @@ Configuration Example Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy." Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -73,11 +82,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -88,7 +104,9 @@ Configuration Example Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy. Updated" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -102,11 +120,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -117,7 +142,9 @@ Configuration Example Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy. Updated" # Updated Property Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOQuarantinePolicy.md b/docs/docs/resources/exchange/EXOQuarantinePolicy.md index 28bfdad964..063a768b03 100644 --- a/docs/docs/resources/exchange/EXOQuarantinePolicy.md +++ b/docs/docs/resources/exchange/EXOQuarantinePolicy.md @@ -56,23 +56,32 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' { EndUserQuarantinePermissionsValue = 87; ESNEnabled = $False; - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -87,9 +96,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC @@ -101,9 +118,11 @@ Configuration Example { EndUserQuarantinePermissionsValue = 87; ESNEnabled = $True; # Updated Property - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -118,9 +137,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC @@ -130,9 +157,11 @@ Configuration Example { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' { - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXORecipientPermission.md b/docs/docs/resources/exchange/EXORecipientPermission.md index a4826c215a..94520d12c2 100644 --- a/docs/docs/resources/exchange/EXORecipientPermission.md +++ b/docs/docs/resources/exchange/EXORecipientPermission.md @@ -45,25 +45,33 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXORecipientPermission 'AddSendAs' { - Identity = "AlexW@$Domain" - Trustee = "admin@$Domain" + Identity = "AlexW@$TenantId" + Trustee = "admin@$TenantId" AccessRights = 'SendAs' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -77,25 +85,33 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXORecipientPermission 'AddSendAs' { Identity = 'AdeleV@$Domain' - Trustee = "admin@$Domain" + Trustee = "admin@$TenantId" Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXORemoteDomain.md b/docs/docs/resources/exchange/EXORemoteDomain.md index 7a861c31ba..68d429a45e 100644 --- a/docs/docs/resources/exchange/EXORemoteDomain.md +++ b/docs/docs/resources/exchange/EXORemoteDomain.md @@ -66,9 +66,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -97,7 +105,9 @@ Configuration Example TrustedMailOutboundEnabled = $False UseSimpleDisplayName = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -112,9 +122,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -143,7 +161,9 @@ Configuration Example TrustedMailOutboundEnabled = $False UseSimpleDisplayName = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -158,9 +178,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -170,7 +198,9 @@ Configuration Example { Identity = "Integration" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOReportSubmissionPolicy.md b/docs/docs/resources/exchange/EXOReportSubmissionPolicy.md index 18e09b8021..9e685a4f18 100644 --- a/docs/docs/resources/exchange/EXOReportSubmissionPolicy.md +++ b/docs/docs/resources/exchange/EXOReportSubmissionPolicy.md @@ -68,9 +68,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -91,7 +99,9 @@ Configuration Example ReportNotJunkToCustomizedAddress = $False ReportPhishToCustomizedAddress = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOReportSubmissionRule.md b/docs/docs/resources/exchange/EXOReportSubmissionRule.md index 091855231f..d541c21d72 100644 --- a/docs/docs/resources/exchange/EXOReportSubmissionRule.md +++ b/docs/docs/resources/exchange/EXOReportSubmissionRule.md @@ -47,9 +47,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -62,7 +70,9 @@ Configuration Example Comments = "This is my default rule" SentTo = "submission@contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOResourceConfiguration.md b/docs/docs/resources/exchange/EXOResourceConfiguration.md index a31936bbad..a8b78c947d 100644 --- a/docs/docs/resources/exchange/EXOResourceConfiguration.md +++ b/docs/docs/resources/exchange/EXOResourceConfiguration.md @@ -44,11 +44,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -60,7 +67,9 @@ Configuration Example IsSingleInstance = 'Yes' ResourcePropertySchema = @('Room/TV', 'Equipment/Laptop') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXORoleAssignmentPolicy.md b/docs/docs/resources/exchange/EXORoleAssignmentPolicy.md index 9ed00e0a90..43d6cc6115 100644 --- a/docs/docs/resources/exchange/EXORoleAssignmentPolicy.md +++ b/docs/docs/resources/exchange/EXORoleAssignmentPolicy.md @@ -47,9 +47,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -62,7 +70,9 @@ Configuration Example IsDefault = $True Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -77,9 +87,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -92,7 +110,9 @@ Configuration Example IsDefault = $True Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -107,9 +127,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -121,7 +149,9 @@ Configuration Example IsDefault = $False # Updated Property Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXORoleGroup.md b/docs/docs/resources/exchange/EXORoleGroup.md index e9d4fd8065..3072a3f721 100644 --- a/docs/docs/resources/exchange/EXORoleGroup.md +++ b/docs/docs/resources/exchange/EXORoleGroup.md @@ -46,11 +46,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -63,7 +70,9 @@ Configuration Example Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -77,11 +86,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -94,7 +110,9 @@ Configuration Example Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -108,11 +126,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -124,7 +149,9 @@ Configuration Example Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md b/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md index 11579e4698..066ce2f432 100644 --- a/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md +++ b/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md @@ -51,15 +51,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' @@ -67,9 +73,11 @@ Configuration Example Identity = "Marketing Block Attachments" Enable = $True Redirect = $True - RedirectAddress = "admin@$Domain" + RedirectAddress = "admin@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -83,11 +91,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -99,9 +114,11 @@ Configuration Example Identity = "Marketing Block Attachments" Enable = $False # Updated Property Redirect = $True - RedirectAddress = "admin@$Domain" + RedirectAddress = "admin@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -115,11 +132,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -131,7 +155,9 @@ Configuration Example Identity = "Marketing Block Attachments" Enable = $False # Updated Property Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOSafeAttachmentRule.md b/docs/docs/resources/exchange/EXOSafeAttachmentRule.md index 5516640d52..a976bbd813 100644 --- a/docs/docs/resources/exchange/EXOSafeAttachmentRule.md +++ b/docs/docs/resources/exchange/EXOSafeAttachmentRule.md @@ -53,15 +53,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' @@ -69,11 +75,13 @@ Configuration Example Identity = "Research Department Attachment Rule" Comments = "Applies to Research Department, except managers" Enabled = $True - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeAttachmentPolicy = "Marketing Block Attachments" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -87,11 +95,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -103,11 +118,13 @@ Configuration Example Identity = "Research Department Attachment Rule" Comments = "Applies to Research Department, except managers" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeAttachmentPolicy = "Marketing Block Attachments" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -121,11 +138,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -139,7 +163,9 @@ Configuration Example SafeAttachmentPolicy = "Marketing Block Attachments" SentToMemberOf = "Research Department" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOSafeLinksPolicy.md b/docs/docs/resources/exchange/EXOSafeLinksPolicy.md index e4c923aa6d..3b23dbd204 100644 --- a/docs/docs/resources/exchange/EXOSafeLinksPolicy.md +++ b/docs/docs/resources/exchange/EXOSafeLinksPolicy.md @@ -58,11 +58,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -78,7 +85,9 @@ Configuration Example EnableSafeLinksForTeams = $True ScanUrls = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -92,11 +101,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -112,7 +128,9 @@ Configuration Example EnableSafeLinksForTeams = $True ScanUrls = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -126,11 +144,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -140,7 +165,9 @@ Configuration Example { Identity = 'Marketing Block URL' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOSafeLinksRule.md b/docs/docs/resources/exchange/EXOSafeLinksRule.md index 5ccd53294f..5fa7c600e1 100644 --- a/docs/docs/resources/exchange/EXOSafeLinksRule.md +++ b/docs/docs/resources/exchange/EXOSafeLinksRule.md @@ -53,15 +53,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeLinksRule 'ConfigureSafeLinksRule' @@ -69,11 +75,13 @@ Configuration Example Identity = "Research Department URL Rule" Comments = "Applies to Research Department, except managers" Enabled = $True - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeLinksPolicy = "Marketing Block URL" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -87,15 +95,21 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeLinksRule 'ConfigureSafeLinksRule' @@ -103,11 +117,13 @@ Configuration Example Identity = "Research Department URL Rule" Comments = "Applies to Research Department, except managers" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeLinksPolicy = "Marketing Block URL" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -121,11 +137,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -138,7 +161,9 @@ Configuration Example Enabled = $False # Updated Property SafeLinksPolicy = "Marketing Block URL" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOSharedMailbox.md b/docs/docs/resources/exchange/EXOSharedMailbox.md index 05118d3172..b8f9df783c 100644 --- a/docs/docs/resources/exchange/EXOSharedMailbox.md +++ b/docs/docs/resources/exchange/EXOSharedMailbox.md @@ -48,23 +48,32 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId") Alias = "IntegrationSM" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -79,23 +88,32 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain", "IntegrationSM2@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId", "IntegrationSM2@$TenantId") Alias = "IntegrationSM" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -110,9 +128,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -122,11 +148,13 @@ Configuration Example EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain", "IntegrationSM2@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId", "IntegrationSM2@$TenantId") Alias = "IntegrationSM" Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOSharingPolicy.md b/docs/docs/resources/exchange/EXOSharingPolicy.md index 47d213d5ac..2b91d57af1 100644 --- a/docs/docs/resources/exchange/EXOSharingPolicy.md +++ b/docs/docs/resources/exchange/EXOSharingPolicy.md @@ -47,9 +47,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -62,7 +70,9 @@ Configuration Example Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -77,9 +87,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -92,7 +110,9 @@ Configuration Example Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -107,9 +127,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -122,7 +150,9 @@ Configuration Example Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOTransportConfig.md b/docs/docs/resources/exchange/EXOTransportConfig.md index 239887b01f..fe43448e3e 100644 --- a/docs/docs/resources/exchange/EXOTransportConfig.md +++ b/docs/docs/resources/exchange/EXOTransportConfig.md @@ -70,9 +70,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -102,7 +110,9 @@ Configuration Example ReplyAllStormProtectionEnabled = $True; Rfc2231EncodingEnabled = $False; SmtpClientAuthenticationDisabled = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/docs/docs/resources/exchange/EXOTransportRule.md b/docs/docs/resources/exchange/EXOTransportRule.md index 4ac253aa5c..3866dd667b 100644 --- a/docs/docs/resources/exchange/EXOTransportRule.md +++ b/docs/docs/resources/exchange/EXOTransportRule.md @@ -210,11 +210,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -224,14 +231,16 @@ Configuration Example EXOTransportRule 'ConfigureTransportRule' { Name = "Ethical Wall - Sales and Executives Departments" - BetweenMemberOf1 = "SalesTeam@$Domain" - BetweenMemberOf2 = "Executives@$Domain" - ExceptIfFrom = "AdeleV@$Domain" + BetweenMemberOf1 = "SalesTeam@$TenantId" + BetweenMemberOf2 = "Executives@$TenantId" + ExceptIfFrom = "AdeleV@$TenantId" ExceptIfSubjectContainsWords = "Press Release","Corporate Communication" RejectMessageReasonText = "Messages sent between the Sales and Brokerage departments are strictly prohibited." Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -245,11 +254,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -259,14 +275,16 @@ Configuration Example EXOTransportRule 'ConfigureTransportRule' { Name = "Ethical Wall - Sales and Executives Departments" - BetweenMemberOf1 = "SalesTeam@$Domain" - BetweenMemberOf2 = "Executives@$Domain" - ExceptIfFrom = "AdeleV@$Domain" + BetweenMemberOf1 = "SalesTeam@$TenantId" + BetweenMemberOf2 = "Executives@$TenantId" + ExceptIfFrom = "AdeleV@$TenantId" ExceptIfSubjectContainsWords = "Press Release","Corporate Communication" RejectMessageReasonText = "Messages sent between the Sales and Brokerage departments are strictly prohibited." Enabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -280,11 +298,18 @@ It is not meant to use as a production baseline. ```powershell Configuration Example { - param - ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -295,7 +320,9 @@ Configuration Example Name = "Ethical Wall - Sales and Brokerage Departments" Enabled = $True Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From 60ad97c799c535a74840b1faa13aad50531cca13 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 12:51:28 +0000 Subject: [PATCH 181/273] Updated {Create} EXO Integration Tests --- .../M365DSCIntegration.EXO.Create.Tests.ps1 | 266 ++++++++++++------ 1 file changed, 184 insertions(+), 82 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 index 5d0291451f..5549afde13 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 @@ -36,11 +36,13 @@ { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" OutboundOnly = $false Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOActiveSyncDeviceAccessRule 'ConfigureActiveSyncDeviceAccessRule' { @@ -49,7 +51,9 @@ QueryString = "iOS 6.1 10B146" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAddressBookPolicy 'ConfigureAddressBookPolicy' { @@ -59,7 +63,9 @@ OfflineAddressBook = "\Default Offline Address Book" GlobalAddressList = "\Default Global Address List" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAddressList 'HRUsersAddressList' { @@ -69,7 +75,9 @@ ConditionalStateOrProvince = "US" IncludedRecipients = "AllRecipients" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAntiPhishPolicy 'ConfigureAntiphishPolicy' { @@ -94,26 +102,32 @@ EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAntiPhishRule 'ConfigureAntiPhishRule' { Identity = "Test Rule" AntiPhishPolicy = "Our Rule" Enabled = $True - SentToMemberOf = @("executives@$Domain") + SentToMemberOf = @("executives@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' { Identity = "Integration Policy" AccessRight = "DenyAccess" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' - PolicyScopeGroupId = "IntegrationMailEnabled@$Domain" + PolicyScopeGroupId = "IntegrationMailEnabled@$TenantId" Description = "Engineering Group Policy" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAuthenticationPolicy 'ConfigureAuthenticationPolicy' { @@ -131,14 +145,18 @@ AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAuthenticationPolicyAssignment 'ConfigureAuthenticationPolicyAssignment' { - UserName = "AdeleV@$Domain" + UserName = "AdeleV@$TenantId" AuthenticationPolicyName = "Block Basic Auth" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAvailabilityAddressSpace 'ConfigureAvailabilityAddressSpace' { @@ -148,13 +166,17 @@ TargetServiceEpr = 'https://contoso.com/autodiscover/autodiscover.xml' TargetTenantId = 'o365dsc.onmicrosoft.com' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "adelev@$Domain" + OrgWideAccount = "adelev@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOClientAccessRule 'ConfigureClientAccessRule' { @@ -172,7 +194,9 @@ ExceptAnyOfClientIPAddressesOrRanges = @() AnyOfClientIPAddressesOrRanges = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXODistributionGroup 'DemoDG' { @@ -182,17 +206,19 @@ DisplayName = "My Demo DG"; Ensure = "Present"; HiddenGroupMembershipEnabled = $True; - ManagedBy = @("adeleV@$Domain"); + ManagedBy = @("adeleV@$TenantId"); MemberDepartRestriction = "Open"; MemberJoinRestriction = "Closed"; - ModeratedBy = @("alexW@$Domain"); + ModeratedBy = @("alexW@$TenantId"); ModerationEnabled = $False; Identity = "DemoDG"; Name = "DemoDG"; - PrimarySmtpAddress = "demodg@$Domain"; + PrimarySmtpAddress = "demodg@$TenantId"; RequireSenderAuthenticationEnabled = $True; SendModerationNotifications = "Always"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXODkimSigningConfig 'ConfigureDKIMSigning' { @@ -208,12 +234,14 @@ EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" - EnabledEmailAddressTemplates = @("SMTP:@$Domain") - EnabledPrimarySMTPAddressTemplate = "@$Domain" + EnabledEmailAddressTemplates = @("SMTP:@$TenantId") + EnabledPrimarySMTPAddressTemplate = "@$TenantId" ManagedByFilter = "" Priority = 1 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOGlobalAddressList 'ConfigureGlobalAddressList' { @@ -223,7 +251,9 @@ ConditionalStateOrProvince = "Washington" IncludedRecipients = 'AllRecipients' Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedContentFilterPolicy 'ConfigureHostedContentFilterPolicy' { @@ -267,18 +297,22 @@ TestModeAction = "None" TestModeBccToRecipients = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' { Identity = "Integration CFR" Comments = "Applies to all users, except when member of HR group" Enabled = $True - ExceptIfSentToMemberOf = "LegalTeam@$Domain" + ExceptIfSentToMemberOf = "LegalTeam@$TenantId" RecipientDomainIs = @('contoso.com') HostedContentFilterPolicy = "Integration CFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedOutboundSpamFilterPolicy 'HostedOutboundSpamFilterPolicy' { @@ -294,18 +328,22 @@ RecipientLimitInternalPerHour = 0 RecipientLimitPerDay = 0 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' { Identity = "Contoso Executives" Comments = "Does not apply to Executives" Enabled = $True - ExceptIfFrom = "AdeleV@$Domain" - FromMemberOf = "Executives@$Domain" + ExceptIfFrom = "AdeleV@$TenantId" + FromMemberOf = "Executives@$TenantId" HostedOutboundSpamFilterPolicy = "Integration SFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOInboundConnector 'ConfigureInboundConnector' { @@ -319,7 +357,9 @@ SenderDomains = "*.contoso.com" TlsSenderCertificateName = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOIntraOrganizationConnector 'ConfigureIntraOrganizationConnector' { @@ -328,21 +368,24 @@ TargetAddressDomains = "Cloud1.contoso.com","Cloud2.contoso.com" Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOJournalRule 'CreateJournalRule' { Enabled = $True - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" RuleScope = "Global" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Present' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' @@ -352,11 +395,14 @@ ModeratedBy = @() ModerationEnabled = $false Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $true CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailTips 'OrgWideMailTips' { @@ -367,7 +413,9 @@ MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMalwareFilterPolicy 'ConfigureMalwareFilterPolicy' { @@ -381,7 +429,9 @@ QuarantineTag = "AdminOnlyAccessPolicy" ZapEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMalwareFilterRule 'ConfigureMalwareFilterRule' { @@ -391,23 +441,29 @@ Enabled = $True RecipientDomainIs = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOManagementRole 'ConfigureManagementRole' { Name = "MyDisplayName" Description = "" - Parent = "$Domain\MyProfileInformation" + Parent = "$TenantId\MyProfileInformation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Present"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AdeleV@$Domain"; + User = "AdeleV@$TenantId"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMessageClassification 'ConfigureMessageClassification' { @@ -420,7 +476,9 @@ SenderDescription = "Shown to senders" RetainClassificationEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMobileDeviceMailboxPolicy 'ConfigureMobileDeviceMailboxPolicy' { @@ -479,7 +537,9 @@ UNCAccessEnabled = $True WSSAccessEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOfflineAddressBook 'ConfigureOfflineAddressBook' { @@ -488,7 +548,9 @@ DiffRetentionPeriod = "30" IsDefault = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOMEConfiguration 'ConfigureOMEConfiguration' { @@ -502,7 +564,9 @@ PortalText = "This portal is encrypted." SocialIdSignIn = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOnPremisesOrganization 'ConfigureOnPremisesOrganization' { @@ -514,7 +578,9 @@ OrganizationName = 'O365DSC' OutboundConnector = 'Contoso Outbound Connector' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DependsOn = "[EXOOutboundConnector]OutboundDependency" } EXOOutboundConnector 'OutboundDependency' @@ -533,7 +599,9 @@ TlsSettings = "DomainValidation" UseMxRecord = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOrganizationRelationship 'ConfigureOrganizationRelationship' { @@ -551,7 +619,9 @@ TargetApplicationUri = "mail.contoso.com" TargetAutodiscoverEpr = "https://mail.contoso.com/autodiscover/autodiscover.svc/wssecurity" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOwaMailboxPolicy 'ConfigureOwaMailboxPolicy' { @@ -629,7 +699,9 @@ WeatherEnabled = $True WebPartsFrameOptionsType = "SameOrigin" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOPartnerApplication 'ConfigurePartnerApplication' { @@ -638,17 +710,21 @@ AcceptSecurityIdentifierInformation = $true Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOPlace 'TestPlace' { AudioDeviceName = "MyAudioDevice"; Capacity = 15; City = ""; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Present' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; IsWheelChairAccessible = $True; MTREnabled = $False; ParentType = "None"; @@ -661,23 +737,29 @@ Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy." Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOQuarantinePolicy 'ConfigureQuarantinePolicy' { EndUserQuarantinePermissionsValue = 87; ESNEnabled = $False; - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORecipientPermission 'AddSendAs' { - Identity = "AlexW@$Domain" - Trustee = "admin@$Domain" + Identity = "AlexW@$TenantId" + Trustee = "admin@$TenantId" AccessRights = 'SendAs' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORemoteDomain '583b0b70-b45d-401f-98a6-0e7fa8434946' { @@ -702,7 +784,9 @@ TrustedMailOutboundEnabled = $False UseSimpleDisplayName = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORoleAssignmentPolicy 'ConfigureRoleAssignmentPolicy' { @@ -711,7 +795,9 @@ IsDefault = $True Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORoleGroup 'ConfigureRoleGroup' { @@ -720,27 +806,33 @@ Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' { Identity = "Marketing Block Attachments" Enable = $True Redirect = $True - RedirectAddress = "admin@$Domain" + RedirectAddress = "admin@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' { Identity = "Research Department Attachment Rule" Comments = "Applies to Research Department, except managers" Enabled = $True - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeAttachmentPolicy = "Marketing Block Attachments" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeLinksPolicy 'ConfigureSafeLinksPolicy' { @@ -752,27 +844,33 @@ EnableSafeLinksForTeams = $True ScanUrls = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeLinksRule 'ConfigureSafeLinksRule' { Identity = "Research Department URL Rule" Comments = "Applies to Research Department, except managers" Enabled = $True - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeLinksPolicy = "Marketing Block URL" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId") Alias = "IntegrationSM" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSharingPolicy 'ConfigureSharingPolicy' { @@ -781,19 +879,23 @@ Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOTransportRule 'ConfigureTransportRule' { Name = "Ethical Wall - Sales and Executives Departments" - BetweenMemberOf1 = "SalesTeam@$Domain" - BetweenMemberOf2 = "Executives@$Domain" - ExceptIfFrom = "AdeleV@$Domain" + BetweenMemberOf1 = "SalesTeam@$TenantId" + BetweenMemberOf2 = "Executives@$TenantId" + ExceptIfFrom = "AdeleV@$TenantId" ExceptIfSubjectContainsWords = "Press Release","Corporate Communication" RejectMessageReasonText = "Messages sent between the Sales and Brokerage departments are strictly prohibited." Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From e4197e818b59ddb380a72d4fc6eca6035493a38d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 12:51:54 +0000 Subject: [PATCH 182/273] Updated {Update} EXO Integration Tests --- .../M365DSCIntegration.EXO.Update.Tests.ps1 | 382 +++++++++++++----- 1 file changed, 271 insertions(+), 111 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 index 8b35477834..77b81b37c4 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 @@ -1,30 +1,48 @@ param ( [Parameter()] - [System.Management.Automation.PSCredential] - $Credential + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Configuration Master { param ( - [Parameter(Mandatory = $true)] - [System.Management.Automation.PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] + $Domain = $TenantId Node Localhost { EXOAcceptedDomain 'O365DSCDomain' { - Identity = $Domain + Identity = $TenantId DomainType = "Authoritative" OutboundOnly = $true # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOActiveSyncDeviceAccessRule 'ConfigureActiveSyncDeviceAccessRule' { @@ -33,7 +51,9 @@ QueryString = "iOS 6.1 10B145" AccessLevel = "Allow" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAddressBookPolicy 'ConfigureAddressBookPolicy' { @@ -43,7 +63,9 @@ OfflineAddressBook = "\Default Offline Address Book" GlobalAddressList = "\Default Global Address List" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAddressList 'HRUsersAddressList' { @@ -53,7 +75,9 @@ ConditionalStateOrProvince = "US" IncludedRecipients = "AllRecipients" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAntiPhishPolicy 'ConfigureAntiphishPolicy' { @@ -78,7 +102,9 @@ EnableUnusualCharactersSafetyTips = $null TargetedUserActionRecipients = $null Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAntiPhishRule 'ConfigureAntiPhishRule' { @@ -86,26 +112,32 @@ Comments = "This is an updated comment." # Updated Property AntiPhishPolicy = "Our Rule" Enabled = $True - SentToMemberOf = @("executives@$Domain") + SentToMemberOf = @("executives@$TenantId") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' { Identity = "Integration Policy" AccessRight = "DenyAccess" AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' - PolicyScopeGroupId = "IntegrationMailEnabled@$Domain" + PolicyScopeGroupId = "IntegrationMailEnabled@$TenantId" Description = "Engineering Group Policy Updated" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAtpPolicyForO365 'ConfigureAntiPhishPolicy' { IsSingleInstance = "Yes" EnableATPForSPOTeamsODB = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAuthenticationPolicy 'ConfigureAuthenticationPolicy' { @@ -123,7 +155,9 @@ AllowBasicAuthSmtp = $False AllowBasicAuthWebServices = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAvailabilityAddressSpace 'ConfigureAvailabilityAddressSpace' { @@ -133,13 +167,17 @@ TargetServiceEpr = 'https://contoso.com/autodiscover/autodiscover.xml' TargetTenantId = 'contoso.onmicrosoft.com' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOAvailabilityConfig 'ConfigureAvailabilityConfig' { - OrgWideAccount = "alexW@$Domain" # Updated Property + OrgWideAccount = "alexW@$TenantId" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOCalendarProcessing 'CalendarProcessing' { @@ -156,7 +194,6 @@ BookingWindowInDays = 180; BookInPolicy = @(); ConflictPercentageAllowed = 0; - Credential = $credsCredential; DeleteAttachments = $True; DeleteComments = $True; DeleteNonCalendarItems = $True; @@ -167,7 +204,7 @@ EnforceSchedulingHorizon = $True; Ensure = "Present"; ForwardRequestsToDelegates = $True; - Identity = "admin@$Domain"; + Identity = "admin@$TenantId"; MaximumConflictInstances = 0; MaximumDurationInMinutes = 1440; MinimumDurationInMinutes = 0; @@ -178,10 +215,13 @@ RemoveForwardedMeetingNotifications = $False; RemoveOldMeetingMessages = $False; RemovePrivateProperty = $True; - RequestInPolicy = @("AlexW@$Domain"); + RequestInPolicy = @("AlexW@$TenantId"); ResourceDelegates = @(); ScheduleOnlyDuringWorkHours = $False; TentativePendingApproval = $True; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOCASMailboxPlan 'ConfigureCASMailboxPlan' { @@ -191,7 +231,9 @@ Identity = 'ExchangeOnlineEnterprise' ImapEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOCASMailboxSettings 'AdeleVCasMailboxSettings' { @@ -202,7 +244,7 @@ ActiveSyncMailboxPolicy = 'Default' ActiveSyncSuppressReadReceipt = $False EwsEnabled = $True - Identity = "admin@$Domain" + Identity = "admin@$TenantId" ImapEnabled = $True # Updated Property ImapForceICalForCalendarRetrievalOption = $False ImapMessagesRetrievalMimeFormat = 'BestBodyFormat' @@ -223,7 +265,9 @@ ShowGalAsDefaultView = $True UniversalOutlookEnabled = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOClientAccessRule 'ConfigureClientAccessRule' { @@ -241,7 +285,9 @@ ExceptAnyOfClientIPAddressesOrRanges = @() AnyOfClientIPAddressesOrRanges = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXODataClassification 'ConfigureDataClassification' { @@ -251,7 +297,9 @@ IsDefault = $True; Locale = "en-US"; Name = "Canada Social Insurance Number"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXODistributionGroup 'DemoDG' { @@ -261,17 +309,19 @@ DisplayName = "My Demo DG"; Ensure = "Present"; HiddenGroupMembershipEnabled = $True; - ManagedBy = @("adeleV@$Domain"); + ManagedBy = @("adeleV@$TenantId"); MemberDepartRestriction = "Open"; MemberJoinRestriction = "Closed"; - ModeratedBy = @("alexW@$Domain"); + ModeratedBy = @("alexW@$TenantId"); ModerationEnabled = $False; Identity = "DemoDG"; Name = "DemoDG"; - PrimarySmtpAddress = "demodg@$Domain"; + PrimarySmtpAddress = "demodg@$TenantId"; RequireSenderAuthenticationEnabled = $True; SendModerationNotifications = "Always"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXODkimSigningConfig 'ConfigureDKIMSigning' { @@ -287,12 +337,14 @@ EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { Name = "Integration Policy" - EnabledEmailAddressTemplates = @("SMTP:@$Domain") - EnabledPrimarySMTPAddressTemplate = "@$Domain" + EnabledEmailAddressTemplates = @("SMTP:@$TenantId") + EnabledPrimarySMTPAddressTemplate = "@$TenantId" ManagedByFilter = "Department -eq 'Sales'" # Updated Property Priority = 1 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOGlobalAddressList 'ConfigureGlobalAddressList' { @@ -301,7 +353,9 @@ ConditionalDepartment = "Finances" # Updated Property ConditionalStateOrProvince = "Washington" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOGroupSettings 'TestGroup' { @@ -312,7 +366,6 @@ AutoSubscribeNewMembers = $False; CalendarMemberReadOnly = $False; ConnectorsEnabled = $False; # Updated Property - Credential = $Credscredential; HiddenFromAddressListsEnabled = $True; HiddenFromExchangeClientsEnabled = $True; InformationBarrierMode = "Open"; @@ -321,9 +374,12 @@ MaxSendSize = "35 MB (36,700,160 bytes)"; ModerationEnabled = $False; Notes = "My Notes"; - PrimarySmtpAddress = "TestGroup@$Domain"; + PrimarySmtpAddress = "TestGroup@$TenantId"; RequireSenderAuthenticationEnabled = $True; SubscriptionEnabled = $False; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedConnectionFilterPolicy 'ConfigureHostedConnectionFilterPolicy' { @@ -334,7 +390,9 @@ IPBlockList = @() MakeDefault = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedContentFilterPolicy 'ConfigureHostedContentFilterPolicy' { @@ -378,18 +436,22 @@ TestModeAction = "None" TestModeBccToRecipients = @() Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' { Identity = "Integration CFR" Comments = "Applies to all users, except when member of HR group" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "LegalTeam@$Domain" + ExceptIfSentToMemberOf = "LegalTeam@$TenantId" RecipientDomainIs = @('contoso.com') HostedContentFilterPolicy = "Integration CFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedOutboundSpamFilterPolicy 'HostedOutboundSpamFilterPolicy' { @@ -405,18 +467,22 @@ RecipientLimitInternalPerHour = 1 # Updated Property RecipientLimitPerDay = 0 Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' { Identity = "Contoso Executives" Comments = "Does not apply to Executives" Enabled = $False # Updated Property - ExceptIfFrom = "AdeleV@$Domain" - FromMemberOf = "Executives@$Domain" + ExceptIfFrom = "AdeleV@$TenantId" + FromMemberOf = "Executives@$TenantId" HostedOutboundSpamFilterPolicy = "Integration SFP" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOInboundConnector 'ConfigureInboundConnector' { @@ -430,7 +496,9 @@ SenderDomains = "*.contoso.com" TlsSenderCertificateName = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOIntraOrganizationConnector 'ConfigureIntraOrganizationConnector' { @@ -439,7 +507,9 @@ TargetAddressDomains = "Cloud1.contoso.com","Cloud2.contoso.com" Enabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOIRMConfiguration 'ConfigureIRMConfiguration' { @@ -458,23 +528,26 @@ SimplifiedClientAccessEncryptOnlyDisabled = $True TransportDecryptionSetting = 'Mandatory' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOJournalRule 'CreateJournalRule' { Enabled = $False # Updated Property - JournalEmailAddress = "AdeleV@$Domain" + JournalEmailAddress = "AdeleV@$TenantId" Name = "Send to Adele" RuleScope = "Global" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailboxAutoReplyConfiguration 'EXOMailboxAutoReplyConfiguration' { AutoDeclineFutureRequestsWhenOOF = $False; AutoReplyState = "Disabled"; CreateOOFEvent = $False; - Credential = $Credscredential; DeclineAllEventsForScheduledOOF = $False; DeclineEventsForScheduledOOF = $False; DeclineMeetingMessage = ""; @@ -482,31 +555,38 @@ Ensure = "Present"; ExternalAudience = "All"; ExternalMessage = (New-Guid).ToString(); # Updated Property - Identity = "AdeleV@$Domain"; + Identity = "AdeleV@$TenantId"; InternalMessage = ""; OOFEventSubject = ""; StartTime = "1/22/2024 3:00:00 PM"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailboxCalendarFolder 'JohnCalendarFolder' { - Credential = $credsCredential; DetailLevel = "AvailabilityOnly"; Ensure = "Present"; - Identity = "AlexW@$Domain" + ":\Calendar"; + Identity = "AlexW@$TenantId" + ":\Calendar"; PublishDateRangeFrom = "ThreeMonths"; PublishDateRangeTo = "ThreeMonths"; PublishEnabled = $True; # Updated Property SearchableUrlEnabled = $False; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailboxPermission 'TestPermission' { AccessRights = @("FullAccess","ReadPermission"); - Credential = $credsCredential; Deny = $True; # Updated Property Ensure = "Present"; - Identity = "AlexW@$Domain"; + Identity = "AlexW@$TenantId"; InheritanceType = "All"; User = "NT AUTHORITY\SELF"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailboxPlan 'ConfigureMailboxPlan' { @@ -519,7 +599,9 @@ ProhibitSendReceiveQuota = "15 GB (16,106,127,360 bytes)"; # Updated Property RetainDeletedItemsFor = "14.00:00:00"; RoleAssignmentPolicy = "Default Role Assignment Policy"; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailboxSettings 'OttawaTeamMailboxSettings' { @@ -527,12 +609,13 @@ TimeZone = 'Eastern Standard Time' Locale = 'en-US' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailContact 'TestMailContact' { Alias = 'TestMailContact' - Credential = $Credscredential DisplayName = 'My Test Contact' Ensure = 'Present' ExternalEmailAddress = 'SMTP:test@tailspintoys.com' @@ -542,22 +625,27 @@ ModeratedBy = @() ModerationEnabled = $false Name = 'My Test Contact' - OrganizationalUnit = $Domain + OrganizationalUnit = $TenantId SendModerationNotifications = 'Always' UsePreferMessageFormat = $false # Updated Property CustomAttribute1 = 'Custom Value 1' ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMailTips 'OrgWideMailTips' { - Organization = $Domain + IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $False # Updated Property MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMalwareFilterPolicy 'ConfigureMalwareFilterPolicy' { @@ -571,7 +659,9 @@ QuarantineTag = "AdminOnlyAccessPolicy" ZapEnabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMalwareFilterRule 'ConfigureMalwareFilterRule' { @@ -581,23 +671,37 @@ Enabled = $False # Updated Property RecipientDomainIs = "contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOManagementRole 'ConfigureManagementRole' { Name = "MyDisplayName" Description = "Updated Description" # Updated Property - Parent = "$Domain\MyProfileInformation" + Parent = "$TenantId\MyProfileInformation" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOManagementRoleAssignment 'AssignManagementRole' { - Credential = $credsCredential; Ensure = "Present"; Name = "MyManagementRoleAssignment"; Role = "UserApplication"; - User = "AlexW@$Domain"; # Updated Property + User = "AlexW@$TenantId"; # Updated Property + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOManagementRoleEntry 'UpdateRoleEntry' + { + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + Identity = "Information Rights Management\Get-BookingMailbox" + Parameters = @("ANR","RecipientTypeDetails", "ResultSize") } EXOMessageClassification 'ConfigureMessageClassification' { @@ -610,7 +714,9 @@ SenderDescription = "Shown to senders" RetainClassificationEnabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOMobileDeviceMailboxPolicy 'ConfigureMobileDeviceMailboxPolicy' { @@ -669,7 +775,9 @@ UNCAccessEnabled = $True WSSAccessEnabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOfflineAddressBook 'ConfigureOfflineAddressBook' { @@ -678,7 +786,9 @@ DiffRetentionPeriod = "60" # Updated Property IsDefault = $true Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOMEConfiguration 'ConfigureOMEConfiguration' { @@ -692,7 +802,9 @@ PortalText = "This portal is encrypted." SocialIdSignIn = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOnPremisesOrganization 'ConfigureOnPremisesOrganization' { @@ -704,7 +816,9 @@ OrganizationName = 'O365DSC' OutboundConnector = 'Contoso Outbound Connector' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOrganizationConfig 'EXOOrganizationConfig' { @@ -769,7 +883,9 @@ AutoExpandingArchive = $null ConnectorsEnabledForSharepoint = $True ReadTrackingEnabled = $False - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOrganizationRelationship 'ConfigureOrganizationRelationship' { @@ -787,7 +903,9 @@ TargetApplicationUri = "mail.contoso.com" TargetAutodiscoverEpr = "https://mail.contoso.com/autodiscover/autodiscover.svc/wssecurity" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOutboundConnector 'ConfigureOutboundConnector' { @@ -805,7 +923,9 @@ TlsSettings = "DomainValidation" UseMxRecord = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOOwaMailboxPolicy 'ConfigureOwaMailboxPolicy' { @@ -883,7 +1003,9 @@ WeatherEnabled = $True WebPartsFrameOptionsType = "SameOrigin" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOPartnerApplication 'ConfigurePartnerApplication' { @@ -892,24 +1014,30 @@ AcceptSecurityIdentifierInformation = $False # Updated Property Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOPerimeterConfiguration 'ConfigurePerimeterConfiguration' { IsSingleInstance = 'Yes' #GatewayIPAddresses = '123.0.0.1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOPlace 'TestPlace' { AudioDeviceName = "MyAudioDevice"; Capacity = 16; # Updated Property City = ""; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint DisplayDeviceName = "DisplayDeviceName"; Ensure = 'Present' - Identity = "Hood@$Domain"; + Identity = "Hood@$TenantId"; IsWheelChairAccessible = $True; MTREnabled = $False; ParentType = "None"; @@ -922,15 +1050,19 @@ Name = "en\NotifyOnly" Value = "This message contains content that is restricted by Contoso company policy. Updated" # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOQuarantinePolicy 'ConfigureQuarantinePolicy' { EndUserQuarantinePermissionsValue = 87; ESNEnabled = $True; # Updated Property - Identity = "$Domain\IntegrationPolicy"; + Identity = "$TenantId\IntegrationPolicy"; Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORemoteDomain '583b0b70-b45d-401f-98a6-0e7fa8434946' { @@ -955,7 +1087,9 @@ TrustedMailOutboundEnabled = $False UseSimpleDisplayName = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOReportSubmissionPolicy 'ConfigureReportSubmissionPolicy' { @@ -972,7 +1106,9 @@ ReportNotJunkToCustomizedAddress = $False ReportPhishToCustomizedAddress = $False Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOReportSubmissionRule 'ConfigureReportSubmissionRule' { @@ -981,14 +1117,18 @@ Comments = "This is my default rule" SentTo = "submission@contoso.com" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOResourceConfiguration 'ConfigureResourceConfiguration' { IsSingleInstance = 'Yes' ResourcePropertySchema = @('Room/TV', 'Equipment/Laptop') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORoleAssignmentPolicy 'ConfigureRoleAssignmentPolicy' { @@ -997,7 +1137,9 @@ IsDefault = $True Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXORoleGroup 'ConfigureRoleGroup' { @@ -1006,27 +1148,33 @@ Members = @("Exchange Administrator") Roles = @("Address Lists") Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' { Identity = "Marketing Block Attachments" Enable = $False # Updated Property Redirect = $True - RedirectAddress = "admin@$Domain" + RedirectAddress = "admin@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' { Identity = "Research Department Attachment Rule" Comments = "Applies to Research Department, except managers" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeAttachmentPolicy = "Marketing Block Attachments" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeLinksPolicy 'ConfigureSafeLinksPolicy' { @@ -1038,27 +1186,33 @@ EnableSafeLinksForTeams = $True ScanUrls = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSafeLinksRule 'ConfigureSafeLinksRule' { Identity = "Research Department URL Rule" Comments = "Applies to Research Department, except managers" Enabled = $False # Updated Property - ExceptIfSentToMemberOf = "Executives@$Domain" + ExceptIfSentToMemberOf = "Executives@$TenantId" SafeLinksPolicy = "Marketing Block URL" - SentToMemberOf = "LegalTeam@$Domain" + SentToMemberOf = "LegalTeam@$TenantId" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSharedMailbox 'SharedMailbox' { DisplayName = "Integration" - PrimarySMTPAddress = "Integration@$Domain" - EmailAddresses = @("IntegrationSM@$Domain", "IntegrationSM2@$Domain") + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId", "IntegrationSM2@$TenantId") Alias = "IntegrationSM" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOSharingPolicy 'ConfigureSharingPolicy' { @@ -1067,7 +1221,9 @@ Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") Enabled = $True Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOTransportConfig 'EXOTransportConfig ' { @@ -1093,19 +1249,23 @@ ReplyAllStormProtectionEnabled = $True; Rfc2231EncodingEnabled = $False; SmtpClientAuthenticationDisabled = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOTransportRule 'ConfigureTransportRule' { Name = "Ethical Wall - Sales and Executives Departments" - BetweenMemberOf1 = "SalesTeam@$Domain" - BetweenMemberOf2 = "Executives@$Domain" - ExceptIfFrom = "AdeleV@$Domain" + BetweenMemberOf1 = "SalesTeam@$TenantId" + BetweenMemberOf2 = "Executives@$TenantId" + ExceptIfFrom = "AdeleV@$TenantId" ExceptIfSubjectContainsWords = "Press Release","Corporate Communication" RejectMessageReasonText = "Messages sent between the Sales and Brokerage departments are strictly prohibited." Enabled = $False # Updated Property Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -1122,7 +1282,7 @@ # Compile and deploy configuration try { - Master -ConfigurationData $ConfigurationData -Credscredential $Credential + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop } catch From 8d75092acb8757a0a2d372e480060304745936a3 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 12:52:13 +0000 Subject: [PATCH 183/273] Updated {Update} EXO Integration Tests --- .../M365DSCIntegration.EXO.Remove.Tests.ps1 | 567 ++++++++++++++++++ 1 file changed, 567 insertions(+) create mode 100644 Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 new file mode 100644 index 0000000000..f46628fe06 --- /dev/null +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 @@ -0,0 +1,567 @@ + param + ( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + + Configuration Master + { + param + ( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + + Import-DscResource -ModuleName Microsoft365DSC + $Domain = $TenantId + Node Localhost + { + EXOAcceptedDomain 'O365DSCDomain' + { + Identity = $TenantId + DomainType = "Authoritative" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOActiveSyncDeviceAccessRule 'ConfigureActiveSyncDeviceAccessRule' + { + Identity = "ContosoPhone(DeviceOS)" + Characteristic = "DeviceModel" # Updated Property + QueryString = "iOS 6.1 10B145" + AccessLevel = "Allow" + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAddressBookPolicy 'ConfigureAddressBookPolicy' + { + Name = "All Fabrikam ABP" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAddressList 'HRUsersAddressList' + { + Name = "HR Users" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAntiPhishPolicy 'ConfigureAntiphishPolicy' + { + Identity = "Our Rule" + MakeDefault = $null + PhishThresholdLevel = 2 # Updated Property + EnableTargetedDomainsProtection = $null + Enabled = $null + TargetedDomainsToProtect = $null + EnableSimilarUsersSafetyTips = $null + ExcludedDomains = $null + TargetedDomainActionRecipients = $null + EnableMailboxIntelligence = $null + EnableSimilarDomainsSafetyTips = $null + AdminDisplayName = "" + AuthenticationFailAction = "MoveToJmf" + TargetedUserProtectionAction = "NoAction" + TargetedUsersToProtect = $null + EnableTargetedUserProtection = $null + ExcludedSenders = $null + EnableOrganizationDomainsProtection = $null + EnableUnusualCharactersSafetyTips = $null + TargetedUserActionRecipients = $null + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAntiPhishRule 'ConfigureAntiPhishRule' + { + Identity = "Test Rule" + AntiPhishPolicy = "Our Rule" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOApplicationAccessPolicy 'ConfigureApplicationAccessPolicy' + { + Identity = "Integration Policy" + AppID = '3dbc2ae1-7198-45ed-9f9f-d86ba3ec35b5' + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAuthenticationPolicy 'ConfigureAuthenticationPolicy' + { + Identity = "Block Basic Auth" + AllowBasicAuthActiveSync = $False + AllowBasicAuthAutodiscover = $False + AllowBasicAuthImap = $False + AllowBasicAuthMapi = $True # Updated Property + AllowBasicAuthOfflineAddressBook = $False + AllowBasicAuthOutlookService = $False + AllowBasicAuthPop = $False + AllowBasicAuthPowerShell = $False + AllowBasicAuthReportingWebServices = $False + AllowBasicAuthRpc = $False + AllowBasicAuthSmtp = $False + AllowBasicAuthWebServices = $False + Ensure = "Present" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAuthenticationPolicyAssignment 'ConfigureAuthenticationPolicyAssignment' + { + UserName = "AdeleV@$TenantId" + AuthenticationPolicyName = "Test Policy" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAvailabilityAddressSpace 'ConfigureAvailabilityAddressSpace' + { + Identity = 'Contoso.com' + Ensure = 'Absent' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOAvailabilityConfig 'ConfigureAvailabilityConfig' + { + OrgWideAccount = "alexW@$TenantId" # Updated Property + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOClientAccessRule 'ConfigureClientAccessRule' + { + Action = "AllowAccess" + Identity = "Always Allow Remote PowerShell" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXODataEncryptionPolicy 'ConfigureDataEncryptionPolicy' + { + Identity = 'US Mailboxes' + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXODistributionGroup 'DemoDG' + { + DisplayName = "My Demo DG"; + Ensure = "Absent"; + Identity = "DemoDG"; + Name = "DemoDG"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXODkimSigningConfig 'ConfigureDKIMSigning' + { + Identity = $Domain + Ensure = "Absent" + Credential = $Credscredential + } + EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' + { + Name = "Integration Policy" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOGlobalAddressList 'ConfigureGlobalAddressList' + { + Name = "Contoso Human Resources in Washington" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOHostedContentFilterPolicy 'ConfigureHostedContentFilterPolicy' + { + Identity = "Integration CFP" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOHostedContentFilterRule 'ConfigureHostedContentFilterRule' + { + Identity = "Integration CFR" + HostedContentFilterPolicy = "Integration CFP" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOHostedOutboundSpamFilterPolicy 'HostedOutboundSpamFilterPolicy' + { + Identity = "Integration SFP" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' + { + Identity = "Contoso Executives" + Enabled = $False # Updated Property + HostedOutboundSpamFilterPolicy = "Integration SFP" + Ensure = "Absent" + Credential = $Credscredential + } + EXOInboundConnector 'ConfigureInboundConnector' + { + Identity = "Integration Inbound Connector" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOIntraOrganizationConnector 'ConfigureIntraOrganizationConnector' + { + Identity = "MainCloudConnector" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOJournalRule 'CreateJournalRule' + { + JournalEmailAddress = "AdeleV@$TenantId" + Name = "Send to Adele" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOMailContact 'TestMailContact' + { + Alias = 'TestMailContact' + DisplayName = 'My Test Contact' + Ensure = 'Absent' + ExternalEmailAddress = 'SMTP:test@tailspintoys.com' + Name = 'My Test Contact' + OrganizationalUnit = $TenantId + SendModerationNotifications = 'Always' + UsePreferMessageFormat = $false # Updated Property + CustomAttribute1 = 'Custom Value 1' + ExtensionCustomAttribute5 = 'Extension Custom Value 1', 'Extension Custom Value 2' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOMailTips 'OrgWideMailTips' + { + IsSingleInstance = 'Yes' + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOMalwareFilterPolicy 'ConfigureMalwareFilterPolicy' + { + Identity = "IntegrationMFP" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOMalwareFilterRule 'ConfigureMalwareFilterRule' + { + Identity = "Contoso Recipients" + MalwareFilterPolicy = "IntegrationMFP" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOManagementRole 'ConfigureManagementRole' + { + Name = "MyDisplayName" + Description = "Updated Description" # Updated Property + Parent = "contoso.onmicrosoft.com\MyProfileInformation" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOManagementRoleAssignment 'AssignManagementRole' + { + Ensure = "Absent"; + Name = "MyManagementRoleAssignment"; + Role = "UserApplication"; + User = "AlexW@$TenantId"; # Updated Property + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOMessageClassification 'ConfigureMessageClassification' + { + Identity = "Contoso Message Classification" + Name = "Contoso Message Classification" + DisplayName = "Contoso Message Classification" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOMobileDeviceMailboxPolicy 'ConfigureMobileDeviceMailboxPolicy' + { + Name = "Default" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOOfflineAddressBook 'ConfigureOfflineAddressBook' + { + Name = "Integration Address Book" + AddressLists = @('\Offline Global Address List') + ConfiguredAttributes = @('OfficeLocation, ANR', 'ProxyAddresses, ANR', 'PhoneticGivenName, ANR', 'GivenName, ANR', 'PhoneticSurname, ANR', 'Surname, ANR', 'Account, ANR', 'PhoneticDisplayName, ANR', 'UserInformationDisplayName, ANR', 'ExternalMemberCount, Value', 'TotalMemberCount, Value', 'ModerationEnabled, Value', 'DelivContLength, Value', 'MailTipTranslations, Value', 'ObjectGuid, Value', 'IsOrganizational, Value', 'HabSeniorityIndex, Value', 'DisplayTypeEx, Value', 'SimpleDisplayNameAnsi, Value', 'HomeMdbA, Value', 'Certificate, Value', 'UserSMimeCertificate, Value', 'UserCertificate, Value', 'Comment, Value', 'PagerTelephoneNumber, Value', 'AssistantTelephoneNumber, Value', 'MobileTelephoneNumber, Value', 'PrimaryFaxNumber, Value', 'Home2TelephoneNumberMv, Value', 'Business2TelephoneNumberMv, Value', 'HomeTelephoneNumber, Value', 'TargetAddress, Value', 'PhoneticDepartmentName, Value', 'DepartmentName, Value', 'Assistant, Value', 'PhoneticCompanyName, Value', 'CompanyName, Value', 'Title, Value', 'Country, Value', 'PostalCode, Value', 'StateOrProvince, Value', 'Locality, Value', 'StreetAddress, Value', 'Initials, Value', 'BusinessTelephoneNumber, Value', 'SendRichInfo, Value', 'ObjectType, Value', 'DisplayType, Value', 'RejectMessagesFromDLMembers, Indicator', 'AcceptMessagesOnlyFromDLMembers, Indicator', 'RejectMessagesFrom, Indicator', 'AcceptMessagesOnlyFrom, Indicator', 'UmSpokenName, Indicator', 'ThumbnailPhoto, Indicator') + DiffRetentionPeriod = "30" + IsDefault = $true + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOOMEConfiguration 'ConfigureOMEConfiguration' + { + Identity = "Contoso Marketing" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOOnPremisesOrganization 'ConfigureOnPremisesOrganization' + { + Identity = 'Contoso' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOOrganizationRelationship 'ConfigureOrganizationRelationship' + { + Name = "Contoso" + Enabled = $True + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOOutboundConnector 'ConfigureOutboundConnector' + { + Identity = "Contoso Outbound Connector" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOOwaMailboxPolicy 'ConfigureOwaMailboxPolicy' + { + Name = "OwaMailboxPolicy-Integration" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOPartnerApplication 'ConfigurePartnerApplication' + { + Name = "HRApp" + ApplicationIdentifier = "00000006-0000-0dd1-ac00-000000000000" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOPlace 'TestPlace' + { + AudioDeviceName = "MyAudioDevice"; + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + DisplayDeviceName = "DisplayDeviceName"; + Ensure = 'Absent' + Identity = "Hood@$TenantId"; + } + EXOPolicyTipConfig 'ConfigurePolicyTipConfig' + { + Name = "en\NotifyOnly" + Value = "This message contains content that is restricted by Contoso company policy. Updated" # Updated Property + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOQuarantinePolicy 'ConfigureQuarantinePolicy' + { + Identity = "$TenantId\IntegrationPolicy"; + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXORecipientPermission 'AddSendAs' + { + + Identity = 'AdeleV@$Domain' + Trustee = "admin@$TenantId" + Ensure = 'Absent' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXORemoteDomain '583b0b70-b45d-401f-98a6-0e7fa8434946' + { + Identity = "Integration" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXORoleAssignmentPolicy 'ConfigureRoleAssignmentPolicy' + { + Name = "Integration Policy" + IsDefault = $False # Updated Property + Roles = @("My Marketplace Apps","MyVoiceMail","MyDistributionGroups","MyRetentionPolicies","MyContactInformation","MyBaseOptions","MyTextMessaging","MyDistributionGroupMembership","MyProfileInformation","My Custom Apps","My ReadWriteMailbox Apps") + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXORoleGroup 'ConfigureRoleGroup' + { + Name = "Contoso Role Group" + Members = @("Exchange Administrator") + Roles = @("Address Lists") + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' + { + Identity = "Marketing Block Attachments" + Enable = $False # Updated Property + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' + { + Identity = "Research Department Attachment Rule" + Enabled = $False # Updated Property + ExceptIfSentToMemberOf = "Research Department Managers" + SafeAttachmentPolicy = "Marketing Block Attachments" + SentToMemberOf = "Research Department" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOSafeLinksPolicy 'ConfigureSafeLinksPolicy' + { + Identity = 'Marketing Block URL' + Ensure = 'Absent' + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOSafeLinksRule 'ConfigureSafeLinksRule' + { + Identity = "Research Department URL Rule" + Comments = "Applies to Research Department, except managers" + Enabled = $False # Updated Property + SafeLinksPolicy = "Marketing Block URL" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOSharedMailbox 'SharedMailbox' + { + DisplayName = "Integration" + PrimarySMTPAddress = "Integration@$TenantId" + EmailAddresses = @("IntegrationSM@$TenantId", "IntegrationSM2@$TenantId") + Alias = "IntegrationSM" + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOSharingPolicy 'ConfigureSharingPolicy' + { + Name = "Integration Sharing Policy" + Default = $False # Updated Property + Domains = @("Anonymous:CalendarSharingFreeBusyReviewer", "*:CalendarSharingFreeBusySimple") + Enabled = $True + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + EXOTransportRule 'ConfigureTransportRule' + { + Name = "Ethical Wall - Sales and Brokerage Departments" + Enabled = $True + Ensure = "Absent" + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + } + } + } + + $ConfigurationData = @{ + AllNodes = @( + @{ + NodeName = "Localhost" + PSDSCAllowPlaintextPassword = $true + } + ) + } + + # Compile and deploy configuration + try + { + Master -ConfigurationData $ConfigurationData -ApplicationId $ApplicationId -TenantId $TenantId -CertificateThumbprint $CertificateThumbprint + Start-DscConfiguration Master -Wait -Force -Verbose -ErrorAction Stop + } + catch + { + throw $_ + } From 763c02082cc8b701e1d7b11f3f78e108b906dc68 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 09:00:41 -0400 Subject: [PATCH 184/273] Fixes --- .../EXODkimSigningConfig/1-Create.ps1 | 21 +++++++++++++------ .../EXODkimSigningConfig/2-Update.ps1 | 21 +++++++++++++------ .../EXODkimSigningConfig/3-Remove.ps1 | 21 +++++++++++++------ 3 files changed, 45 insertions(+), 18 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/1-Create.ps1 index 5f427b2eaa..4dc6fae31f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/1-Create.ps1 @@ -6,25 +6,34 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODkimSigningConfig 'ConfigureDKIMSigning' { KeySize = 1024 - Identity = $Domain + Identity = $TenantId HeaderCanonicalization = "Relaxed" Enabled = $True BodyCanonicalization = "Relaxed" AdminDisplayName = "" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/2-Update.ps1 index 519d24fe0a..d7ef4fafe5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/2-Update.ps1 @@ -6,25 +6,34 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODkimSigningConfig 'ConfigureDKIMSigning' { KeySize = 1024 - Identity = $Domain + Identity = $TenantId HeaderCanonicalization = "Relaxed" Enabled = $False # Updated Property BodyCanonicalization = "Relaxed" AdminDisplayName = "" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/3-Remove.ps1 index c37c0a7f6f..fb2afa7d60 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODkimSigningConfig/3-Remove.ps1 @@ -6,20 +6,29 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODkimSigningConfig 'ConfigureDKIMSigning' { - Identity = $Domain + Identity = $TenantId Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From 08ea6f24243938bd7588a6b4f08bd0dd5ed2e34e Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 13:01:58 +0000 Subject: [PATCH 185/273] Updated Resources and Cmdlet documentation pages --- .../exchange/EXODkimSigningConfig.md | 63 +++++++++++++------ 1 file changed, 45 insertions(+), 18 deletions(-) diff --git a/docs/docs/resources/exchange/EXODkimSigningConfig.md b/docs/docs/resources/exchange/EXODkimSigningConfig.md index 6638eca381..72bcd092b0 100644 --- a/docs/docs/resources/exchange/EXODkimSigningConfig.md +++ b/docs/docs/resources/exchange/EXODkimSigningConfig.md @@ -50,25 +50,34 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODkimSigningConfig 'ConfigureDKIMSigning' { KeySize = 1024 - Identity = $Domain + Identity = $TenantId HeaderCanonicalization = "Relaxed" Enabled = $True BodyCanonicalization = "Relaxed" AdminDisplayName = "" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -83,25 +92,34 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODkimSigningConfig 'ConfigureDKIMSigning' { KeySize = 1024 - Identity = $Domain + Identity = $TenantId HeaderCanonicalization = "Relaxed" Enabled = $False # Updated Property BodyCanonicalization = "Relaxed" AdminDisplayName = "" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } @@ -116,20 +134,29 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODkimSigningConfig 'ConfigureDKIMSigning' { - Identity = $Domain + Identity = $TenantId Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } } } From 221b008fcfb326de8b108502ebabc43dd0022a30 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 13:04:10 +0000 Subject: [PATCH 186/273] Updated {Create} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 index 5549afde13..9b21948a96 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 @@ -223,13 +223,15 @@ EXODkimSigningConfig 'ConfigureDKIMSigning' { KeySize = 1024 - Identity = $Domain + Identity = $TenantId HeaderCanonicalization = "Relaxed" Enabled = $True BodyCanonicalization = "Relaxed" AdminDisplayName = "" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { From 6c0e924f8a8e8e8417c2d1203ecdb6a1edb3b17c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 13:04:33 +0000 Subject: [PATCH 187/273] Updated {Update} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 index 77b81b37c4..5b3240b4cb 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 @@ -326,13 +326,15 @@ EXODkimSigningConfig 'ConfigureDKIMSigning' { KeySize = 1024 - Identity = $Domain + Identity = $TenantId HeaderCanonicalization = "Relaxed" Enabled = $False # Updated Property BodyCanonicalization = "Relaxed" AdminDisplayName = "" Ensure = "Present" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { From 0e603d8fc4b3244734d0044d9ce78626e1c81ab5 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 13:04:51 +0000 Subject: [PATCH 188/273] Updated {Update} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 index f46628fe06..7c897b2a25 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Remove.Tests.ps1 @@ -189,9 +189,11 @@ } EXODkimSigningConfig 'ConfigureDKIMSigning' { - Identity = $Domain + Identity = $TenantId Ensure = "Absent" - Credential = $Credscredential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint } EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' { From 57fc1adeba3b4479e23b97facea2d82f4712babc Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 10:38:23 -0400 Subject: [PATCH 189/273] Fixes --- CHANGELOG.md | 6 ++++++ .../MSFT_EXOHostedContentFilterRule.psm1 | 19 ++++++++++++++----- ...SFT_EXOHostedOutboundSpamFilterPolicy.psm1 | 18 +++++++++--------- ...OHostedOutboundSpamFilterPolicy.schema.mof | 6 +++--- .../EXOQuarantinePolicy/1-Create.ps1 | 1 - .../EXOQuarantinePolicy/2-Update.ps1 | 2 -- .../EXOQuarantinePolicy/3-Remove.ps1 | 2 -- .../EXOSafeAttachmentPolicy/2-Update.ps1 | 1 - .../EXOSafeAttachmentPolicy/3-Remove.ps1 | 1 - .../EXOSafeAttachmentRule/2-Update.ps1 | 1 - .../Resources/EXOSharedMailbox/3-Remove.ps1 | 1 - .../Resources/EXOTransportRule/1-Create.ps1 | 1 - .../Resources/EXOTransportRule/2-Update.ps1 | 1 - 13 files changed, 32 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f62077cf2..8ae87d55ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOHostedOutboundSpamFilterPolicy + * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, an + RecipientLimitExternalPerHour parameters to UInt32. + # 1.24.710.3 * MISC diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 index 6ea3b6dda9..f8f39c8e1a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 @@ -86,7 +86,7 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Getting configuration of HostedContentFilterRule for $Identity" + Write-Verbose -Message "Getting configuration of HostedContentFilterRule for [$Identity]" #Ensure the proper dependencies are installed in the current environment. Confirm-M365DSCDependencies @@ -122,10 +122,19 @@ function Get-TargetResource } catch { - $Message = 'Error calling {Get-HostedContentFilterRule}' - New-M365DSCLogEntry -Message $Message ` - -Exception $_ ` - -Source $MyInvocation.MyCommand.ModuleName + try + { + Write-Verbose -Message "Couldn't find rule by ID, trying by name." + $rules = Get-HostedContentFilterRule + $HostedContentFilterRule = $rules | Where-Object -FilterScript {$_.Name -eq $Identity -and $_.HostedContentFilterPolicy -eq $HostedContentFilterPolicy} + } + catch + { + $Message = 'Error calling {Get-HostedContentFilterRule}' + New-M365DSCLogEntry -Message $Message ` + -Exception $_ ` + -Source $MyInvocation.MyCommand.ModuleName + } } if (-not $HostedContentFilterRule) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 index 149c30cc33..a214bd520e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 @@ -29,15 +29,15 @@ function Get-TargetResource $NotifyOutboundSpam = $true, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitInternalPerHour, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitPerDay, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitExternalPerHour, [Parameter()] @@ -196,15 +196,15 @@ function Set-TargetResource $NotifyOutboundSpam = $true, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitInternalPerHour, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitPerDay, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitExternalPerHour, [Parameter()] @@ -337,15 +337,15 @@ function Test-TargetResource $NotifyOutboundSpam = $true, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitInternalPerHour, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitPerDay, [Parameter()] - [System.String] + [System.UInt32] $RecipientLimitExternalPerHour, [Parameter()] diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.schema.mof index 359b208c15..0911e34063 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.schema.mof @@ -7,9 +7,9 @@ class MSFT_EXOHostedOutboundSpamFilterPolicy : OMI_BaseResource [Write, Description("The BccSuspiciousOutboundMail parameter enables or disables adding recipients to the Bcc field of outgoing spam messages. Valid input for this parameter is $true or $false. The default value is $false. You specify the additional recipients using the BccSuspiciousOutboundAdditionalRecipients parameter.")] Boolean BccSuspiciousOutboundMail; [Write, Description("The NotifyOutboundSpam parameter enables or disables sending notification messages to administrators when an outgoing message is determined to be spam. Valid input for this parameter is $true or $false. The default value is $false. You specify the administrators to notify by using the NotifyOutboundSpamRecipients parameter.")] Boolean NotifyOutboundSpam; [Write, Description("The NotifyOutboundSpamRecipients parameter specifies the administrators to notify when an outgoing message is determined to be spam. Valid input for this parameter is an email address. Separate multiple email addresses with commas.")] String NotifyOutboundSpamRecipients[]; - [Write, Description("The RecipientLimitInternalPerHour parameter specifies the maximum number of internal recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used.")] String RecipientLimitInternalPerHour; - [Write, Description("The RecipientLimitPerDay parameter specifies the maximum number of recipients that a user can send to within a day. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used.")] String RecipientLimitPerDay; - [Write, Description("The RecipientLimitExternalPerHour parameter specifies the maximum number of external recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used.")] String RecipientLimitExternalPerHour; + [Write, Description("The RecipientLimitInternalPerHour parameter specifies the maximum number of internal recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used.")] UInt32 RecipientLimitInternalPerHour; + [Write, Description("The RecipientLimitPerDay parameter specifies the maximum number of recipients that a user can send to within a day. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used.")] UInt32 RecipientLimitPerDay; + [Write, Description("The RecipientLimitExternalPerHour parameter specifies the maximum number of external recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used.")] UInt32 RecipientLimitExternalPerHour; [Write, Description("The ActionWhenThresholdReached parameter specifies the action to take when any of the limits specified in the policy are reached. Valid values are: Alert, BlockUser, BlockUserForToday. BlockUserForToday is the default value.")] String ActionWhenThresholdReached; [Write, Description("The AutoForwardingMode specifies how the policy controls automatic email forwarding to outbound recipients. Valid values are: Automatic, On, Off.")] String AutoForwardingMode; [Write, Description("Specify if this policy should exist or not."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure; diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 index 00e7ab9592..7789a50846 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/1-Create.ps1 @@ -18,7 +18,6 @@ Configuration Example [System.String] $CertificateThumbprint ) - $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC node localhost diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 index 70daf13e41..f7af4ec63d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/2-Update.ps1 @@ -18,10 +18,8 @@ Configuration Example [System.String] $CertificateThumbprint ) - $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 index 0777c270bd..618b4765b6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOQuarantinePolicy/3-Remove.ps1 @@ -18,10 +18,8 @@ Configuration Example [System.String] $CertificateThumbprint ) - $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 index dc8074f6f2..890d96c026 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 index 9a7e82add6..4ba99a10e3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentPolicy/3-Remove.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 index 1996d383c2..a2042efcf4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSafeAttachmentRule/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 index 92be003632..ac6ca975fe 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOSharedMailbox/3-Remove.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSharedMailbox 'SharedMailbox' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 index ba0220662b..37775a8752 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/1-Create.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOTransportRule 'ConfigureTransportRule' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 index 3481e3a882..6446633aa2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOTransportRule/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOTransportRule 'ConfigureTransportRule' From 28bfa4852efa5fdb8a1db60befc8990ace63f898 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 10:39:23 -0400 Subject: [PATCH 190/273] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ae87d55ee..ca89390a29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ # UNRELEASED * EXOHostedOutboundSpamFilterPolicy - * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, an + * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and RecipientLimitExternalPerHour parameters to UInt32. # 1.24.710.3 From 2d5df67711cd7e49c651d00bc4fa81d8be299d1a Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 13:12:40 -0400 Subject: [PATCH 191/273] Updates --- .../EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 | 6 +++--- .../EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 index 7b75d1c52f..8be7f94672 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/1-Create.ps1 @@ -33,9 +33,9 @@ Configuration Example BccSuspiciousOutboundMail = $False NotifyOutboundSpam = $False NotifyOutboundSpamRecipients = @() - RecipientLimitExternalPerHour = 0 - RecipientLimitInternalPerHour = 0 - RecipientLimitPerDay = 0 + #RecipientLimitExternalPerHour = 0 + #RecipientLimitInternalPerHour = 0 + #RecipientLimitPerDay = 0 Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 index 9c35f5fd28..c061821ca1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterPolicy/2-Update.ps1 @@ -33,9 +33,9 @@ Configuration Example BccSuspiciousOutboundMail = $False NotifyOutboundSpam = $False NotifyOutboundSpamRecipients = @() - RecipientLimitExternalPerHour = 0 - RecipientLimitInternalPerHour = 1 # Updated Property - RecipientLimitPerDay = 0 + #RecipientLimitExternalPerHour = 0 + #RecipientLimitInternalPerHour = 1 # Updated Property + #RecipientLimitPerDay = 0 Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId From de37ac0ed1691f6bcd51e8aa081c437e3c499450 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 13:28:59 -0400 Subject: [PATCH 192/273] Update Microsoft365DSC.Examples.Tests.ps1 --- Tests/QA/Microsoft365DSC.Examples.Tests.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Tests/QA/Microsoft365DSC.Examples.Tests.ps1 b/Tests/QA/Microsoft365DSC.Examples.Tests.ps1 index 41f93e594f..4b1344bdd0 100644 --- a/Tests/QA/Microsoft365DSC.Examples.Tests.ps1 +++ b/Tests/QA/Microsoft365DSC.Examples.Tests.ps1 @@ -153,6 +153,10 @@ Describe -Name 'Successfully compile examples' { #> $exampleParameters.Add($parameterName, ('1' -as $parameterType)) } + elseif ($parameterName -eq 'TenantId') + { + $exampleParameters.Add('TenantId', (New-Guid).ToString()) + } } } From 2d8ca476ac68585aa0bc65cb3acb187087a27ba4 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 13:34:00 -0400 Subject: [PATCH 193/273] Fixes --- .../Examples/Resources/EXODistributionGroup/1-Create.ps1 | 1 - .../Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 | 1 - .../Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 | 1 - .../Examples/Resources/EXOMailContact/2-Update.ps1 | 1 - .../Examples/Resources/EXOMailContact/3-Remove.ps1 | 1 - .../Examples/Resources/EXOManagementRole/2-Update.ps1 | 1 - .../Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 | 1 - .../Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 | 1 - .../Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 | 1 - 9 files changed, 9 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 index 95bead29ef..85487e8131 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXODistributionGroup/1-Create.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODistributionGroup 'DemoDG' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 index 29fc3244ba..9f6aa65248 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOEmailAddressPolicy/1-Create.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 index dfe6738d4f..f41c0dad6c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOHostedOutboundSpamFilterRule/3-Remove.ps1 @@ -21,7 +21,6 @@ Configuration Example Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 index 0c9c5415df..e5d852bc38 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailContact 'TestMailContact' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 index 3f68bfaaaa..8ec1c31117 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailContact/3-Remove.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailContact 'TestMailContact' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 index 8c8a0338cf..a5ba2b2cbb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRole/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRole 'ConfigureManagementRole' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 index 4cb4a78f85..595be2b648 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/1-Create.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRoleAssignment 'AssignManagementRole' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 index 7a007b8cb6..e5db422476 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/2-Update.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRoleAssignment 'AssignManagementRole' diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 index e3b5886c96..ed39214a56 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOManagementRoleAssignment/3-Remove.ps1 @@ -20,7 +20,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRoleAssignment 'AssignManagementRole' From 825a7187973033485289e2cf5b21e0e5f59b2808 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:02:03 +0000 Subject: [PATCH 194/273] Updated Resources and Cmdlet documentation pages --- .../resources/exchange/EXODistributionGroup.md | 1 - .../exchange/EXOEmailAddressPolicy.md | 1 - .../EXOHostedOutboundSpamFilterPolicy.md | 18 +++++++++--------- .../EXOHostedOutboundSpamFilterRule.md | 1 - docs/docs/resources/exchange/EXOMailContact.md | 2 -- .../resources/exchange/EXOManagementRole.md | 1 - .../exchange/EXOManagementRoleAssignment.md | 3 --- .../resources/exchange/EXOQuarantinePolicy.md | 5 ----- .../exchange/EXOSafeAttachmentPolicy.md | 2 -- .../exchange/EXOSafeAttachmentRule.md | 1 - .../resources/exchange/EXOSharedMailbox.md | 1 - .../resources/exchange/EXOTransportRule.md | 2 -- 12 files changed, 9 insertions(+), 29 deletions(-) diff --git a/docs/docs/resources/exchange/EXODistributionGroup.md b/docs/docs/resources/exchange/EXODistributionGroup.md index a3142c7693..c1649e47f4 100644 --- a/docs/docs/resources/exchange/EXODistributionGroup.md +++ b/docs/docs/resources/exchange/EXODistributionGroup.md @@ -100,7 +100,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXODistributionGroup 'DemoDG' diff --git a/docs/docs/resources/exchange/EXOEmailAddressPolicy.md b/docs/docs/resources/exchange/EXOEmailAddressPolicy.md index b1bb91b7cf..013b05cf2b 100644 --- a/docs/docs/resources/exchange/EXOEmailAddressPolicy.md +++ b/docs/docs/resources/exchange/EXOEmailAddressPolicy.md @@ -62,7 +62,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOEmailAddressPolicy 'ConfigureEmailAddressPolicy' diff --git a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md index 24df1817c5..bd16fe3c7b 100644 --- a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md +++ b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterPolicy.md @@ -10,9 +10,9 @@ | **BccSuspiciousOutboundMail** | Write | Boolean | The BccSuspiciousOutboundMail parameter enables or disables adding recipients to the Bcc field of outgoing spam messages. Valid input for this parameter is $true or $false. The default value is $false. You specify the additional recipients using the BccSuspiciousOutboundAdditionalRecipients parameter. | | | **NotifyOutboundSpam** | Write | Boolean | The NotifyOutboundSpam parameter enables or disables sending notification messages to administrators when an outgoing message is determined to be spam. Valid input for this parameter is $true or $false. The default value is $false. You specify the administrators to notify by using the NotifyOutboundSpamRecipients parameter. | | | **NotifyOutboundSpamRecipients** | Write | StringArray[] | The NotifyOutboundSpamRecipients parameter specifies the administrators to notify when an outgoing message is determined to be spam. Valid input for this parameter is an email address. Separate multiple email addresses with commas. | | -| **RecipientLimitInternalPerHour** | Write | String | The RecipientLimitInternalPerHour parameter specifies the maximum number of internal recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used. | | -| **RecipientLimitPerDay** | Write | String | The RecipientLimitPerDay parameter specifies the maximum number of recipients that a user can send to within a day. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used. | | -| **RecipientLimitExternalPerHour** | Write | String | The RecipientLimitExternalPerHour parameter specifies the maximum number of external recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used. | | +| **RecipientLimitInternalPerHour** | Write | UInt32 | The RecipientLimitInternalPerHour parameter specifies the maximum number of internal recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used. | | +| **RecipientLimitPerDay** | Write | UInt32 | The RecipientLimitPerDay parameter specifies the maximum number of recipients that a user can send to within a day. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used. | | +| **RecipientLimitExternalPerHour** | Write | UInt32 | The RecipientLimitExternalPerHour parameter specifies the maximum number of external recipients that a user can send to within an hour. A valid value is 0 to 10000. The default value is 0, which means the service defaults are used. | | | **ActionWhenThresholdReached** | Write | String | The ActionWhenThresholdReached parameter specifies the action to take when any of the limits specified in the policy are reached. Valid values are: Alert, BlockUser, BlockUserForToday. BlockUserForToday is the default value. | | | **AutoForwardingMode** | Write | String | The AutoForwardingMode specifies how the policy controls automatic email forwarding to outbound recipients. Valid values are: Automatic, On, Off. | | | **Ensure** | Write | String | Specify if this policy should exist or not. | `Present`, `Absent` | @@ -82,9 +82,9 @@ Configuration Example BccSuspiciousOutboundMail = $False NotifyOutboundSpam = $False NotifyOutboundSpamRecipients = @() - RecipientLimitExternalPerHour = 0 - RecipientLimitInternalPerHour = 0 - RecipientLimitPerDay = 0 + #RecipientLimitExternalPerHour = 0 + #RecipientLimitInternalPerHour = 0 + #RecipientLimitPerDay = 0 Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId @@ -130,9 +130,9 @@ Configuration Example BccSuspiciousOutboundMail = $False NotifyOutboundSpam = $False NotifyOutboundSpamRecipients = @() - RecipientLimitExternalPerHour = 0 - RecipientLimitInternalPerHour = 1 # Updated Property - RecipientLimitPerDay = 0 + #RecipientLimitExternalPerHour = 0 + #RecipientLimitInternalPerHour = 1 # Updated Property + #RecipientLimitPerDay = 0 Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId diff --git a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md index d260d6da3a..4abd1066cc 100644 --- a/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md +++ b/docs/docs/resources/exchange/EXOHostedOutboundSpamFilterRule.md @@ -156,7 +156,6 @@ Configuration Example Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOHostedOutboundSpamFilterRule 'ConfigureHostedOutboundSpamFilterRule' diff --git a/docs/docs/resources/exchange/EXOMailContact.md b/docs/docs/resources/exchange/EXOMailContact.md index d9da5a8747..16dded24e7 100644 --- a/docs/docs/resources/exchange/EXOMailContact.md +++ b/docs/docs/resources/exchange/EXOMailContact.md @@ -144,7 +144,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailContact 'TestMailContact' @@ -195,7 +194,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOMailContact 'TestMailContact' diff --git a/docs/docs/resources/exchange/EXOManagementRole.md b/docs/docs/resources/exchange/EXOManagementRole.md index 3dfd2ffcc4..b0688f5521 100644 --- a/docs/docs/resources/exchange/EXOManagementRole.md +++ b/docs/docs/resources/exchange/EXOManagementRole.md @@ -99,7 +99,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRole 'ConfigureManagementRole' diff --git a/docs/docs/resources/exchange/EXOManagementRoleAssignment.md b/docs/docs/resources/exchange/EXOManagementRoleAssignment.md index d45b5fcabb..0a44fcf9f1 100644 --- a/docs/docs/resources/exchange/EXOManagementRoleAssignment.md +++ b/docs/docs/resources/exchange/EXOManagementRoleAssignment.md @@ -69,7 +69,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRoleAssignment 'AssignManagementRole' @@ -109,7 +108,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRoleAssignment 'AssignManagementRole' @@ -149,7 +147,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOManagementRoleAssignment 'AssignManagementRole' diff --git a/docs/docs/resources/exchange/EXOQuarantinePolicy.md b/docs/docs/resources/exchange/EXOQuarantinePolicy.md index 063a768b03..0a52e3dee5 100644 --- a/docs/docs/resources/exchange/EXOQuarantinePolicy.md +++ b/docs/docs/resources/exchange/EXOQuarantinePolicy.md @@ -68,7 +68,6 @@ Configuration Example [System.String] $CertificateThumbprint ) - $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC node localhost @@ -108,10 +107,8 @@ Configuration Example [System.String] $CertificateThumbprint ) - $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' @@ -149,10 +146,8 @@ Configuration Example [System.String] $CertificateThumbprint ) - $OrganizationName = $Credscredential.UserName.Split('@')[1] Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOQuarantinePolicy 'ConfigureQuarantinePolicy' diff --git a/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md b/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md index 066ce2f432..13ee9bbaa3 100644 --- a/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md +++ b/docs/docs/resources/exchange/EXOSafeAttachmentPolicy.md @@ -106,7 +106,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' @@ -147,7 +146,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentPolicy 'ConfigureSafeAttachmentPolicy' diff --git a/docs/docs/resources/exchange/EXOSafeAttachmentRule.md b/docs/docs/resources/exchange/EXOSafeAttachmentRule.md index a976bbd813..488adb3565 100644 --- a/docs/docs/resources/exchange/EXOSafeAttachmentRule.md +++ b/docs/docs/resources/exchange/EXOSafeAttachmentRule.md @@ -110,7 +110,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSafeAttachmentRule 'ConfigureSafeAttachmentRule' diff --git a/docs/docs/resources/exchange/EXOSharedMailbox.md b/docs/docs/resources/exchange/EXOSharedMailbox.md index b8f9df783c..1511cac2e4 100644 --- a/docs/docs/resources/exchange/EXOSharedMailbox.md +++ b/docs/docs/resources/exchange/EXOSharedMailbox.md @@ -142,7 +142,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOSharedMailbox 'SharedMailbox' diff --git a/docs/docs/resources/exchange/EXOTransportRule.md b/docs/docs/resources/exchange/EXOTransportRule.md index 3866dd667b..16270f8937 100644 --- a/docs/docs/resources/exchange/EXOTransportRule.md +++ b/docs/docs/resources/exchange/EXOTransportRule.md @@ -225,7 +225,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOTransportRule 'ConfigureTransportRule' @@ -269,7 +268,6 @@ Configuration Example ) Import-DscResource -ModuleName Microsoft365DSC - $Domain = $Credscredential.Username.Split('@')[1] node localhost { EXOTransportRule 'ConfigureTransportRule' From 5dd7a312781c63209aa995827c0d87c6cea7a26c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:03:33 +0000 Subject: [PATCH 195/273] Updated {Create} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 index 9b21948a96..ed059503f4 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 @@ -326,9 +326,9 @@ BccSuspiciousOutboundMail = $False NotifyOutboundSpam = $False NotifyOutboundSpamRecipients = @() - RecipientLimitExternalPerHour = 0 - RecipientLimitInternalPerHour = 0 - RecipientLimitPerDay = 0 + #RecipientLimitExternalPerHour = 0 + #RecipientLimitInternalPerHour = 0 + #RecipientLimitPerDay = 0 Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId From 3d8642db17313a7cb579c0ce2bee4dfc05a865ee Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:03:49 +0000 Subject: [PATCH 196/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 546277a2e8..43582ff5b9 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -8623,17 +8623,17 @@ "Option": "Write" }, { - "CIMType": "String", + "CIMType": "UInt32", "Name": "RecipientLimitInternalPerHour", "Option": "Write" }, { - "CIMType": "String", + "CIMType": "UInt32", "Name": "RecipientLimitPerDay", "Option": "Write" }, { - "CIMType": "String", + "CIMType": "UInt32", "Name": "RecipientLimitExternalPerHour", "Option": "Write" }, From 01a0b67ad81f85a19b619e1eaf1d8770c713997e Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:03:56 +0000 Subject: [PATCH 197/273] Updated {Update} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 index 5b3240b4cb..8b71b53fc9 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 @@ -465,9 +465,9 @@ BccSuspiciousOutboundMail = $False NotifyOutboundSpam = $False NotifyOutboundSpamRecipients = @() - RecipientLimitExternalPerHour = 0 - RecipientLimitInternalPerHour = 1 # Updated Property - RecipientLimitPerDay = 0 + #RecipientLimitExternalPerHour = 0 + #RecipientLimitInternalPerHour = 1 # Updated Property + #RecipientLimitPerDay = 0 Ensure = "Present" ApplicationId = $ApplicationId TenantId = $TenantId From 2231c83cdd74609a333840e65adb0ef545b78d15 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Tue, 16 Jul 2024 14:24:27 -0400 Subject: [PATCH 198/273] Fixing EXO tests --- .../Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 | 2 +- .../Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 index 8495866148..9111f3ae5c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/1-Create.ps1 @@ -27,7 +27,7 @@ Configuration Example IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $True - MailTipsLargeAudienceThreshold = 100 + #MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" diff --git a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 index 7236cea8c1..77b38d9db2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/EXOMailTips/2-Update.ps1 @@ -27,7 +27,7 @@ Configuration Example IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $False # Updated Property - MailTipsLargeAudienceThreshold = 100 + #MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" From 469c6f2179c3c33f9c5039f1974d1c7d7bf7a9a4 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:25:33 +0000 Subject: [PATCH 199/273] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/exchange/EXOMailTips.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/resources/exchange/EXOMailTips.md b/docs/docs/resources/exchange/EXOMailTips.md index c7980b4ba8..166ea4f104 100644 --- a/docs/docs/resources/exchange/EXOMailTips.md +++ b/docs/docs/resources/exchange/EXOMailTips.md @@ -70,7 +70,7 @@ Configuration Example IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $True - MailTipsLargeAudienceThreshold = 100 + #MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" @@ -112,7 +112,7 @@ Configuration Example IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $False # Updated Property - MailTipsLargeAudienceThreshold = 100 + #MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" From b42e94f1695edc76f9742929a9ac870d6326658e Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:27:29 +0000 Subject: [PATCH 200/273] Updated {Create} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 index ed059503f4..4c95d77baf 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Create.Tests.ps1 @@ -411,7 +411,7 @@ IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $True - MailTipsLargeAudienceThreshold = 100 + #MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" From fb86df4bf02faea088ce14cbabcf23477b0c84a7 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 18:27:52 +0000 Subject: [PATCH 201/273] Updated {Update} EXO Integration Tests --- .../Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 index 8b71b53fc9..01140822ab 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.EXO.Update.Tests.ps1 @@ -641,7 +641,7 @@ IsSingleInstance = 'Yes' MailTipsAllTipsEnabled = $True MailTipsGroupMetricsEnabled = $False # Updated Property - MailTipsLargeAudienceThreshold = 100 + #MailTipsLargeAudienceThreshold = 100 MailTipsMailboxSourcedTipsEnabled = $True MailTipsExternalRecipientsTipsEnabled = $True Ensure = "Present" From e2b8edce96c81dd5ad5ed35c48dce20297addba3 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 20:46:30 +0000 Subject: [PATCH 202/273] Updated Resources and Cmdlet documentation pages --- .../intune/IntuneDiskEncryptionWindows10.md | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md diff --git a/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md b/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md new file mode 100644 index 0000000000..1cf2a01ab2 --- /dev/null +++ b/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md @@ -0,0 +1,221 @@ +# IntuneDiskEncryptionWindows10 + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **Description** | Write | String | Policy description | | +| **DisplayName** | Key | String | Policy name | | +| **RoleScopeTagIds** | Write | StringArray[] | List of Scope Tags for this Entity instance. | | +| **Id** | Write | String | The unique identifier for an entity. Read-only. | | +| **RequireDeviceEncryption** | Write | String | Require Device Encryption (0: Disabled, 1: Enabled) | `0`, `1` | +| **EncryptionMethodWithXts_Name** | Write | String | Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later) (0: Disabled, 1: Enabled) | `0`, `1` | +| **EncryptionMethodWithXtsOsDropDown_Name** | Write | String | Select the encryption method for operating system drives: (3: AES-CBC 128-bit, 4: AES-CBC 256-bit, 6: XTS-AES 128-bit (default), 7: XTS-AES 256-bit) | `3`, `4`, `6`, `7` | +| **EncryptionMethodWithXtsFdvDropDown_Name** | Write | String | Select the encryption method for fixed data drives: (3: AES-CBC 128-bit, 4: AES-CBC 256-bit, 6: XTS-AES 128-bit (default), 7: XTS-AES 256-bit) | `3`, `4`, `6`, `7` | +| **EncryptionMethodWithXtsRdvDropDown_Name** | Write | String | Select the encryption method for removable data drives: (3: AES-CBC 128-bit (default), 4: AES-CBC 256-bit, 6: XTS-AES 128-bit, 7: XTS-AES 256-bit) | `3`, `4`, `6`, `7` | +| **IdentificationField_Name** | Write | String | Provide the unique identifiers for your organization (0: Disabled, 1: Enabled) | `0`, `1` | +| **IdentificationField** | Write | String | BitLocker identification field: (Device) | | +| **SecIdentificationField** | Write | String | Allowed BitLocker identification field: (Device) | | +| **AllowWarningForOtherDiskEncryption** | Write | String | Allow Warning For Other Disk Encryption (0: Disabled, 1: Enabled) | `0`, `1` | +| **AllowStandardUserEncryption** | Write | String | Allow Standard User Encryption (0: This is the default, when the policy is not set. If current logged on user is a standard user, 'RequireDeviceEncryption' policy will not try to enable encryption on any drive., 1: 'RequireDeviceEncryption' policy will try to enable encryption on all fixed drives even if a current logged in user is standard user.) | `0`, `1` | +| **ConfigureRecoveryPasswordRotation** | Write | String | Configure Recovery Password Rotation (0: Refresh off (default), 1: Refresh on for Azure AD-joined devices, 2: Refresh on for both Azure AD-joined and hybrid-joined devices) | `0`, `1`, `2` | +| **OSEncryptionType_Name** | Write | String | Enforce drive encryption type on operating system drives (0: Disabled, 1: Enabled) | `0`, `1` | +| **OSEncryptionTypeDropDown_Name** | Write | String | Select the encryption type: (Device) (0: Allow user to choose (default), 1: Full encryption, 2: Used Space Only encryption) | `0`, `1`, `2` | +| **ConfigureAdvancedStartup_Name** | Write | String | Require additional authentication at startup (0: Disabled, 1: Enabled) | `0`, `1` | +| **ConfigureTPMStartupKeyUsageDropDown_Name** | Write | String | Configure TPM startup key: (2: Allow startup key with TPM, 1: Require startup key with TPM, 0: Do not allow startup key with TPM) | `2`, `1`, `0` | +| **ConfigureTPMPINKeyUsageDropDown_Name** | Write | String | Configure TPM startup key and PIN: (2: Allow startup key and PIN with TPM, 1: Require startup key and PIN with TPM, 0: Do not allow startup key and PIN with TPM) | `2`, `1`, `0` | +| **ConfigureTPMUsageDropDown_Name** | Write | String | Configure TPM startup: (2: Allow TPM, 1: Require TPM, 0: Do not allow TPM) | `2`, `1`, `0` | +| **ConfigureNonTPMStartupKeyUsage_Name** | Write | String | Allow BitLocker without a compatible TPM (requires a password or a startup key on a USB flash drive) (0: False, 1: True) | `0`, `1` | +| **ConfigurePINUsageDropDown_Name** | Write | String | Configure TPM startup PIN: (2: Allow startup PIN with TPM, 1: Require startup PIN with TPM, 0: Do not allow startup PIN with TPM) | `2`, `1`, `0` | +| **MinimumPINLength_Name** | Write | String | Configure minimum PIN length for startup (0: Disabled, 1: Enabled) | `0`, `1` | +| **MinPINLength** | Write | SInt32 | Minimum characters: | | +| **EnhancedPIN_Name** | Write | String | Allow enhanced PINs for startup (0: Disabled, 1: Enabled) | `0`, `1` | +| **DisallowStandardUsersCanChangePIN_Name** | Write | String | Disallow standard users from changing the PIN or password (0: Disabled, 1: Enabled) | `0`, `1` | +| **EnablePreBootPinExceptionOnDECapableDevice_Name** | Write | String | Allow devices compliant with InstantGo or HSTI to opt out of pre-boot PIN. (0: Disabled, 1: Enabled) | `0`, `1` | +| **EnablePrebootInputProtectorsOnSlates_Name** | Write | String | Enable use of BitLocker authentication requiring preboot keyboard input on slates (0: Disabled, 1: Enabled) | `0`, `1` | +| **OSRecoveryUsage_Name** | Write | String | Choose how BitLocker-protected operating system drives can be recovered (0: Disabled, 1: Enabled) | `0`, `1` | +| **OSRequireActiveDirectoryBackup_Name** | Write | String | Do not enable BitLocker until recovery information is stored to AD DS for operating system drives (0: False, 1: True) | `0`, `1` | +| **OSActiveDirectoryBackup_Name** | Write | String | Save BitLocker recovery information to AD DS for operating system drives (0: False, 1: True) | `0`, `1` | +| **OSRecoveryPasswordUsageDropDown_Name** | Write | String | Configure user storage of BitLocker recovery information: (2: Allow 48-digit recovery password, 1: Require 48-digit recovery password, 0: Do not allow 48-digit recovery password) | `2`, `1`, `0` | +| **OSHideRecoveryPage_Name** | Write | String | Omit recovery options from the BitLocker setup wizard (0: False, 1: True) | `0`, `1` | +| **OSAllowDRA_Name** | Write | String | Allow data recovery agent (0: False, 1: True) | `0`, `1` | +| **OSRecoveryKeyUsageDropDown_Name** | Write | String | Configure OS recovery key usage: (2: Allow 256-bit recovery key, 1: Require 256-bit recovery key, 0: Do not allow 256-bit recovery key) | `2`, `1`, `0` | +| **OSActiveDirectoryBackupDropDown_Name** | Write | String | Configure storage of BitLocker recovery information to AD DS: (1: Store recovery passwords and key packages, 2: Store recovery passwords only) | `1`, `2` | +| **PrebootRecoveryInfo_Name** | Write | String | Configure pre-boot recovery message and URL (0: Disabled, 1: Enabled) | `0`, `1` | +| **PrebootRecoveryInfoDropDown_Name** | Write | String | Select an option for the pre-boot recovery message: (0: , 1: Use default recovery message and URL, 2: Use custom recovery message, 3: Use custom recovery URL) | `0`, `1`, `2`, `3` | +| **RecoveryUrl_Input** | Write | String | Custom recovery URL option: | | +| **RecoveryMessage_Input** | Write | String | Custom recovery message option: | | +| **FDVEncryptionType_Name** | Write | String | Enforce drive encryption type on fixed data drives (0: Disabled, 1: Enabled) | `0`, `1` | +| **FDVEncryptionTypeDropDown_Name** | Write | String | Select the encryption type: (Device) (0: Allow user to choose (default), 1: Full encryption, 2: Used Space Only encryption) | `0`, `1`, `2` | +| **FDVRecoveryUsage_Name** | Write | String | Choose how BitLocker-protected fixed drives can be recovered (0: Disabled, 1: Enabled) | `0`, `1` | +| **FDVActiveDirectoryBackup_Name** | Write | String | Save BitLocker recovery information to AD DS for fixed data drives (0: False, 1: True) | `0`, `1` | +| **FDVHideRecoveryPage_Name** | Write | String | Omit recovery options from the BitLocker setup wizard (0: False, 1: True) | `0`, `1` | +| **FDVRecoveryPasswordUsageDropDown_Name** | Write | String | Configure user storage of BitLocker recovery information: (2: Allow 48-digit recovery password, 1: Require 48-digit recovery password, 0: Do not allow 48-digit recovery password) | `2`, `1`, `0` | +| **FDVRequireActiveDirectoryBackup_Name** | Write | String | Do not enable BitLocker until recovery information is stored to AD DS for fixed data drives (0: False, 1: True) | `0`, `1` | +| **FDVAllowDRA_Name** | Write | String | Allow data recovery agent (0: False, 1: True) | `0`, `1` | +| **FDVActiveDirectoryBackupDropDown_Name** | Write | String | Configure storage of BitLocker recovery information to AD DS: (1: Backup recovery passwords and key packages, 2: Backup recovery passwords only) | `1`, `2` | +| **FDVRecoveryKeyUsageDropDown_Name** | Write | String | Select the fixed drive recovery key usage: (2: Allow 256-bit recovery key, 1: Require 256-bit recovery key, 0: Do not allow 256-bit recovery key) | `2`, `1`, `0` | +| **FDVDenyWriteAccess_Name** | Write | String | Deny write access to fixed drives not protected by BitLocker (0: Disabled, 1: Enabled) | `0`, `1` | +| **RDVConfigureBDE** | Write | String | Control use of BitLocker on removable drives (0: Disabled, 1: Enabled) | `0`, `1` | +| **RDVAllowBDE_Name** | Write | String | Allow users to apply BitLocker protection on removable data drives (Device) (0: False, 1: True) | `0`, `1` | +| **RDVEncryptionType_Name** | Write | String | Enforce drive encryption type on removable data drives (0: Disabled, 1: Enabled) | `0`, `1` | +| **RDVEncryptionTypeDropDown_Name** | Write | String | Select the encryption type: (Device) (0: Allow user to choose (default), 1: Full encryption, 2: Used Space Only encryption) | `0`, `1`, `2` | +| **RDVDisableBDE_Name** | Write | String | Allow users to suspend and decrypt BitLocker protection on removable data drives (Device) (0: False, 1: True) | `0`, `1` | +| **RDVDenyWriteAccess_Name** | Write | String | Deny write access to removable drives not protected by BitLocker (0: Disabled, 1: Enabled) | `0`, `1` | +| **RDVCrossOrg** | Write | String | Do not allow write access to devices configured in another organization (0: False, 1: True) | `0`, `1` | +| **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | 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) | | + + +## Description + +Intune Disk Encryption for Windows10 + +## Permissions + +### Microsoft Graph + +To authenticate with the Microsoft Graph API, this resource required the following permissions: + +#### Delegated permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +#### Application permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + Node localhost + { + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments { + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.allDevicesAssignmentTarget' + }) + Description = '' + IdentificationField_Name = '1' + IdentificationField = 'IdentificationField' + SecIdentificationField = 'SecIdentificationField' + Ensure = 'Present' + Credential = $Credscredential + } + } +} +``` + +### Example 2 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + Node localhost + { + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments { + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.allDevicesAssignmentTarget' + }) + Description = '' + IdentificationField_Name = '1' + IdentificationField = 'IdentificationField' + SecIdentificationField = 'UpdatedSecIdentificationField' # Updated property + Ensure = 'Present' + Credential = $Credscredential + } + } +} +``` + +### Example 3 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + Node localhost + { + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Description = '' + Ensure = 'Absent' + Credential = $Credscredential + } + } +} +``` + From 82e73349757512842d94fe24efc8e74093a66e8b Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 20:47:57 +0000 Subject: [PATCH 203/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 345 ++++++++++++++++++ 1 file changed, 345 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 43582ff5b9..6625c55248 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -29799,6 +29799,351 @@ } ] }, + { + "ClassName": "MSFT_IntuneDiskEncryptionWindows10", + "Parameters": [ + { + "CIMType": "String", + "Name": "Description", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "DisplayName", + "Option": "Key" + }, + { + "CIMType": "String[]", + "Name": "RoleScopeTagIds", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Id", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RequireDeviceEncryption", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EncryptionMethodWithXts_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EncryptionMethodWithXtsOsDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EncryptionMethodWithXtsFdvDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EncryptionMethodWithXtsRdvDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "IdentificationField_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "IdentificationField", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "SecIdentificationField", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "AllowWarningForOtherDiskEncryption", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "AllowStandardUserEncryption", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigureRecoveryPasswordRotation", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSEncryptionType_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSEncryptionTypeDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigureAdvancedStartup_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigureTPMStartupKeyUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigureTPMPINKeyUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigureTPMUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigureNonTPMStartupKeyUsage_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ConfigurePINUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "MinimumPINLength_Name", + "Option": "Write" + }, + { + "CIMType": "SInt32", + "Name": "MinPINLength", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EnhancedPIN_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "DisallowStandardUsersCanChangePIN_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EnablePreBootPinExceptionOnDECapableDevice_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "EnablePrebootInputProtectorsOnSlates_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSRecoveryUsage_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSRequireActiveDirectoryBackup_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSActiveDirectoryBackup_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSRecoveryPasswordUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSHideRecoveryPage_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSAllowDRA_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSRecoveryKeyUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "OSActiveDirectoryBackupDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "PrebootRecoveryInfo_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "PrebootRecoveryInfoDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RecoveryUrl_Input", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RecoveryMessage_Input", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVEncryptionType_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVEncryptionTypeDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVRecoveryUsage_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVActiveDirectoryBackup_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVHideRecoveryPage_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVRecoveryPasswordUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVRequireActiveDirectoryBackup_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVAllowDRA_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVActiveDirectoryBackupDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVRecoveryKeyUsageDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "FDVDenyWriteAccess_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVConfigureBDE", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVAllowBDE_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVEncryptionType_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVEncryptionTypeDropDown_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVDisableBDE_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVDenyWriteAccess_Name", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "RDVCrossOrg", + "Option": "Write" + }, + { + "CIMType": "MSFT_DeviceManagementConfigurationPolicyAssignments[]", + "Name": "Assignments", + "Option": "Write" + }, + { + "CIMType": "string", + "Name": "Ensure", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "ManagedIdentity", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AccessTokens", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10", "Parameters": [ From 07c11a874a6a254ac0a57ed69c560e320dde4dcb Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 16 Jul 2024 20:48:40 +0000 Subject: [PATCH 204/273] Updated {Create} Intune Integration Tests --- .../M365DSCIntegration.INTUNE.Create.Tests.ps1 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index 4650b4880f..f412b4e951 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -2089,6 +2089,21 @@ SelectedRecoveryKeyTypes = @("personalRecoveryKey"); Credential = $Credscredential } + IntuneDiskEncryptionWindows10 'myDiskEncryption' + { + DisplayName = 'Disk Encryption' + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments { + deviceAndAppManagementAssignmentFilterType = 'none' + dataType = '#microsoft.graph.allDevicesAssignmentTarget' + }) + Description = '' + IdentificationField_Name = '1' + IdentificationField = 'IdentificationField' + SecIdentificationField = 'SecIdentificationField' + Ensure = 'Present' + Credential = $Credscredential + } IntuneEndpointDetectionAndResponsePolicyWindows10 'myEDRPolicy' { DisplayName = 'Edr Policy' From d7b083757a57500f5f4793d958581a3893805e6e Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 17 Jul 2024 09:46:30 +0100 Subject: [PATCH 205/273] Fix export --- CHANGELOG.md | 9 ++++++--- ...ceConfigurationEmailProfilePolicyWindows10.psm1 | 14 +++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6bc0bff91..6bef69a38c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,16 +5,19 @@ * EXOHostedOutboundSpamFilterPolicy * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and RecipientLimitExternalPerHour parameters to UInt32. +* IntuneDeviceConfigurationEmailProfilePolicyWindows10 + * Fix export by fixing some typos and from where values are extracted + FIXES [#3960](https://github.com/microsoft/Microsoft365DSC/issues/3960) * IntuneDiskEncryptionWindows10 - * Initial Release + * Initial Release FIXES [#4050](https://github.com/microsoft/Microsoft365DSC/issues/4050) * M365DSCDRGUtil * Fixes an issue with nested and duplicate settings in the settings catalog * M365DSCResourceGenerator * Update Intune resource generation. * M365DSCReport - * Changes behaviour to not throw on empty configuration during report generation. - FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) + * Changes behaviour to not throw on empty configuration during report generation. + FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) FIXES [#4505](https://github.com/microsoft/Microsoft365DSC/issues/4505) * Fixes an issue where the comparison treats empty arrays as an empty string. FIXES [#4796](https://github.com/microsoft/Microsoft365DSC/issues/4796) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 index 42e74512bb..f80396316e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 @@ -187,21 +187,21 @@ function Get-TargetResource } $enumUserDomainNameSource = $null - if ($null -ne $getValue.UserDomainNameSource) + if ($null -ne $getValue.AdditionalProperties.userDomainNameSource) { - $enumUserDomainNameSource = $getValue.UserDomainNameSource.ToString() + $enumUserDomainNameSource = $getValue.AdditionalProperties.userDomainNameSource.ToString() } $enumUsernameAADSource = $null - if ($null -ne $getValue.UsernameAADSource) + if ($null -ne $getValue.AdditionalProperties.usernameAADSource) { - $enumUsernameAADSource = $getValue.UsernameAADSource.ToString() + $enumUsernameAADSource = $getValue.AdditionalProperties.usernameAADSource.ToString() } $enumUsernameSource = $null - if ($null -ne $getValue.UsernameSource) + if ($null -ne $getValue.AdditionalProperties.usernameSource) { - $enumUsernameSource = $getValue.UsernameSource.ToString() + $enumUsernameSource = $getValue.AdditionalProperties.usernameSource.ToString() } #endregion @@ -216,7 +216,7 @@ function Get-TargetResource SyncCalendar = $getValue.AdditionalProperties.syncCalendar SyncContacts = $getValue.AdditionalProperties.syncContacts SyncTasks = $getValue.AdditionalProperties.syncTasks - CustomDomainName = $getValue.CustomDomainName + CustomDomainName = $getValue.AdditionalProperties.customDomainName UserDomainNameSource = $enumUserDomainNameSource UsernameAADSource = $enumUsernameAADSource UsernameSource = $enumUsernameSource From 15e741f4c7428567ab2f89a9a57b6574008bb1e1 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 17 Jul 2024 10:05:44 +0100 Subject: [PATCH 206/273] Fix Unit Tests --- ...ationEmailProfilePolicyWindows10.Tests.ps1 | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceConfigurationEmailProfilePolicyWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceConfigurationEmailProfilePolicyWindows10.Tests.ps1 index 2b699602e9..390bac5e29 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceConfigurationEmailProfilePolicyWindows10.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneDeviceConfigurationEmailProfilePolicyWindows10.Tests.ps1 @@ -127,15 +127,14 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { emailAddressSource = "userPrincipalName" durationOfEmailToSync = "userDefined" syncCalendar = $True + customDomainName = "FakeStringValue" + userDomainNameSource = "fullDomainName" + usernameAADSource = "userPrincipalName" + usernameSource = "userPrincipalName" } - CustomDomainName = "FakeStringValue" Description = "FakeStringValue" DisplayName = "FakeStringValue" Id = "FakeStringValue" - UserDomainNameSource = "fullDomainName" - UsernameAADSource = "userPrincipalName" - UsernameSource = "userPrincipalName" - } } } @@ -189,15 +188,14 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { emailAddressSource = "userPrincipalName" durationOfEmailToSync = "userDefined" syncCalendar = $True + customDomainName = "FakeStringValue" + userDomainNameSource = "fullDomainName" + usernameAADSource = "userPrincipalName" + usernameSource = "userPrincipalName" } - CustomDomainName = "FakeStringValue" Description = "FakeStringValue" DisplayName = "FakeStringValue" Id = "FakeStringValue" - UserDomainNameSource = "fullDomainName" - UsernameAADSource = "userPrincipalName" - UsernameSource = "userPrincipalName" - } } } @@ -240,14 +238,14 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { emailSyncSchedule = "userDefined" emailAddressSource = "userPrincipalName" durationOfEmailToSync = "userDefined" + customDomainName = "FakeStringValue" + userDomainNameSource = "fullDomainName" + usernameAADSource = "userPrincipalName" + usernameSource = "userPrincipalName" } - CustomDomainName = "FakeStringValue" Description = "FakeStringValue" DisplayName = "FakeStringValue" Id = "FakeStringValue" - UserDomainNameSource = "fullDomainName" - UsernameAADSource = "userPrincipalName" - UsernameSource = "userPrincipalName" } } } @@ -287,15 +285,14 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { emailAddressSource = "userPrincipalName" durationOfEmailToSync = "userDefined" syncCalendar = $True + customDomainName = "FakeStringValue" + userDomainNameSource = "fullDomainName" + usernameAADSource = "userPrincipalName" + usernameSource = "userPrincipalName" } - CustomDomainName = "FakeStringValue" Description = "FakeStringValue" DisplayName = "FakeStringValue" Id = "FakeStringValue" - UserDomainNameSource = "fullDomainName" - UsernameAADSource = "userPrincipalName" - UsernameSource = "userPrincipalName" - } } } From dd6c1ff61de7ffbba336ca6fdea7c6dbf724c2db Mon Sep 17 00:00:00 2001 From: ketumbra <80352736+ketumbra@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:52:20 +0200 Subject: [PATCH 207/273] write failures to error output Change failures from verbose to error output --- .../MSFT_AADConditionalAccessPolicy.psm1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 index d7d6ba740b..22b0269d5a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 @@ -1666,7 +1666,7 @@ function Set-TargetResource -TenantId $TenantId ` -Credential $Credential - Write-Verbose -Message "Set-Targetresource: Failed change policy $DisplayName" + Write-Error -Message "Set-Targetresource: Failed change policy $DisplayName" } } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') @@ -1689,7 +1689,7 @@ function Set-TargetResource -TenantId $TenantId ` -Credential $Credential - Write-Verbose -Message 'Set-Targetresource: Failed creating new policy' + Write-Error -Message 'Set-Targetresource: Failed creating new policy' } } else @@ -1699,7 +1699,7 @@ function Set-TargetResource -TenantId $TenantId ` -Credential $Credential - Write-Verbose -Message 'Set-Targetresource: Failed creating new policy. At least a user rule, application rule and grant or session control is required' + Write-Error -Message 'Set-Targetresource: Failed creating new policy. At least a user rule, application rule and grant or session control is required' } } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') @@ -1717,7 +1717,7 @@ function Set-TargetResource -TenantId $TenantId ` -Credential $Credential - Write-Verbose -Message "Set-Targetresource: Failed deleting policy $DisplayName" + Write-Error -Message "Set-Targetresource: Failed deleting policy $DisplayName" } } Write-Verbose -Message "Set-Targetresource: Finished processing Policy $Displayname" From 44fbbf7f5cc9bfd2a251e7daa66b2d1f9aa4869f Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 17 Jul 2024 14:11:28 +0000 Subject: [PATCH 208/273] Updated Resources and Cmdlet documentation pages --- ...orBusinessQualityUpdateProfileWindows10.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md diff --git a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md new file mode 100644 index 0000000000..4384cdfcec --- /dev/null +++ b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md @@ -0,0 +1,185 @@ +# IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **DisplayName** | Key | String | The display name for the profile. | | +| **Description** | Write | String | The description of the profile. | | +| **ExpeditedUpdateSettings** | Write | MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings | Expedited update settings. | | +| **RoleScopeTagIds** | Write | StringArray[] | List of Scope Tags for this Quality Update entity. | | +| **Id** | Write | String | The unique identifier for an entity. Read-only. | | +| **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | 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_MicrosoftGraphExpeditedWindowsQualityUpdateSettings + +#### Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **DaysUntilForcedReboot** | Write | UInt32 | The number of days after installation that forced reboot will happen. Must be in range from 0 to 2. | | +| **QualityUpdateRelease** | Write | String | The release date to identify a quality update. Format is yyyy-MM-ddT00:00:00Z. | | + + +## Description + +Intune Windows Update For Business Quality Update Profile for Windows10 + +## Permissions + +### Microsoft Graph + +To authenticate with the Microsoft Graph API, this resource required the following permissions: + +#### Delegated permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +#### Application permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments{ + deviceAndAppManagementAssignmentFilterType = 'none' + groupDisplayName = 'Exclude' + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '258a1749-8408-4dd0-8028-fab6208a28d7' + } + ); + DisplayName = 'Windows Quality Update' + Description = '' + ExpeditedUpdateSettings = MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings{ + QualityUpdateRelease = '2024-06-11T00:00:00Z' + DaysUntilForcedReboot = 0 + } + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credscredential + } + } +} +``` + +### Example 2 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments{ + deviceAndAppManagementAssignmentFilterType = 'none' + groupDisplayName = 'Exclude' + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '258a1749-8408-4dd0-8028-fab6208a28d7' + } + ); + DisplayName = 'Windows Quality Update' + Description = '' + ExpeditedUpdateSettings = MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings{ + QualityUpdateRelease = '2024-06-11T00:00:00Z' + DaysUntilForcedReboot = 1 # Updated property + } + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credscredential + } + } +} +``` + +### Example 3 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + DisplayName = 'Windows Quality Update' + Ensure = 'Absent' + Credential = $Credscredential + } + } +} +``` + From 227c67b4db704314ed7d9f1da6aee179b8f662be Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 17 Jul 2024 14:13:03 +0000 Subject: [PATCH 209/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 6625c55248..ee276441d1 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -32904,6 +32904,96 @@ } ] }, + { + "ClassName": "MSFT_MicrosoftGraphExpeditedWindowsQualityUpdateSettings", + "Parameters": [ + { + "CIMType": "UInt32", + "Name": "DaysUntilForcedReboot", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "QualityUpdateRelease", + "Option": "Write" + } + ] + }, + { + "ClassName": "MSFT_IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10", + "Parameters": [ + { + "CIMType": "String", + "Name": "DisplayName", + "Option": "Key" + }, + { + "CIMType": "String", + "Name": "Description", + "Option": "Write" + }, + { + "CIMType": "MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings", + "Name": "ExpeditedUpdateSettings", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "RoleScopeTagIds", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Id", + "Option": "Write" + }, + { + "CIMType": "MSFT_DeviceManagementConfigurationPolicyAssignments[]", + "Name": "Assignments", + "Option": "Write" + }, + { + "CIMType": "string", + "Name": "Ensure", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "ManagedIdentity", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AccessTokens", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_MicrosoftGraphWindowsUpdateInstallScheduleType", "Parameters": [ From 50aeed0cf0f36d096196482fe560d5c00f133381 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 17 Jul 2024 14:13:25 +0000 Subject: [PATCH 210/273] Updated {Create} Intune Integration Tests --- ...M365DSCIntegration.INTUNE.Create.Tests.ps1 | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index f412b4e951..56ebc9d99e 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -2674,6 +2674,26 @@ Ensure = 'Present' Credential = $Credscredential } + IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' + { + Assignments = @( + MSFT_DeviceManagementConfigurationPolicyAssignments{ + deviceAndAppManagementAssignmentFilterType = 'none' + groupDisplayName = 'Exclude' + dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '258a1749-8408-4dd0-8028-fab6208a28d7' + } + ); + DisplayName = 'Windows Quality Update' + Description = '' + ExpeditedUpdateSettings = MSFT_MicrosoftGraphexpeditedWindowsQualityUpdateSettings{ + QualityUpdateRelease = '2024-06-11T00:00:00Z' + DaysUntilForcedReboot = 0 + } + RoleScopeTagIds = @("0") + Ensure = 'Present' + Credential = $Credscredential + } IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10 'Example' { DisplayName = 'WUfB Ring' From 2b017e26b49b47bbf05b5969264568f52fecd3e2 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 17 Jul 2024 10:25:13 -0400 Subject: [PATCH 211/273] Improved performance of SPOSharingSettings --- CHANGELOG.md | 6 ++++-- .../MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb6f3159d0..70f2603a47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,11 @@ * EXOHostedOutboundSpamFilterPolicy * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and RecipientLimitExternalPerHour parameters to UInt32. +* SPOSharingSettings + * Improved performance by using -Filter on Get-PnPTenantSite calls. * M365DSCReport - * Changes behaviour to not throw on empty configuration during report generation. - FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) + * Changes behaviour to not throw on empty configuration during report generation. + FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) FIXES [#4505](https://github.com/microsoft/Microsoft365DSC/issues/4505) # 1.24.710.3 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 index 5aaa8340ba..f412d6b79f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 @@ -173,7 +173,7 @@ function Get-TargetResource try { $SPOSharingSettings = Get-PnPTenant -ErrorAction Stop - $MySite = Get-PnPTenantSite | Where-Object { $_.Url -match '-my.sharepoint.' -and $_.Template -notmatch '^RedirectSite#' } + $MySite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.' -and Template -notlike '^RedirectSite#'" if ($null -ne $MySite) { @@ -532,7 +532,7 @@ function Set-TargetResource Set-PnPTenant @CurrentParameters | Out-Null if ($SetMySharingCapability) { - $mysite = Get-PnPTenantSite | Where-Object { $_.Url -match '-my.sharepoint.com/' -and $_.Template -notmatch '^RedirectSite#' } + $mysite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.' -and Template -notlike '^RedirectSite#'" Set-PnPTenantSite -Identity $mysite.Url -SharingCapability $MySiteSharingCapability } } From 1c9f4505e5b7aaa6551b918529efd11369a23ff8 Mon Sep 17 00:00:00 2001 From: ketumbra <80352736+ketumbra@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:35:41 +0200 Subject: [PATCH 212/273] Update CHANGELOG.md add description of changes to error output --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a6bc0bff91..37d7252fa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ # UNRELEASED +* MSFT_AADConditionalAccessPolicy + * Made failures write to the error output instead of just verbose * EXOHostedOutboundSpamFilterPolicy * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and RecipientLimitExternalPerHour parameters to UInt32. From e133e3c1057f6f45b387e861deb3d36902aaf163 Mon Sep 17 00:00:00 2001 From: ketumbra <80352736+ketumbra@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:44:01 +0200 Subject: [PATCH 213/273] minor error msg tweak Made failures during chang*ing* a policy use consistent tense as for errors when deleting and creating a policy --- .../MSFT_AADConditionalAccessPolicy.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 index 22b0269d5a..c64c6aba13 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 @@ -1666,7 +1666,7 @@ function Set-TargetResource -TenantId $TenantId ` -Credential $Credential - Write-Error -Message "Set-Targetresource: Failed change policy $DisplayName" + Write-Error -Message "Set-Targetresource: Failed changing policy $DisplayName" } } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') From 3af7773a201887d78abc01a61a07cb479197a0d2 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 17 Jul 2024 20:51:57 +0100 Subject: [PATCH 214/273] Change to SPN auth in Intune tests --- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 19 +++++++++++++----- .../2-Update.ps1 | 19 +++++++++++++----- .../3-Remove.ps1 | 19 +++++++++++++----- .../IntuneAppConfigurationPolicy/1-Create.ps1 | 18 +++++++++++++---- .../IntuneAppConfigurationPolicy/2-Update.ps1 | 18 +++++++++++++---- .../IntuneAppConfigurationPolicy/3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 19 +++++++++++++----- .../2-Update.ps1 | 19 +++++++++++++----- .../3-Remove.ps1 | 19 +++++++++++++----- .../IntuneAppProtectionPolicyiOS/1-Create.ps1 | 18 +++++++++++++---- .../IntuneAppProtectionPolicyiOS/2-Update.ps1 | 18 +++++++++++++---- .../IntuneAppProtectionPolicyiOS/3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../IntuneDeviceCategory/1-Create.ps1 | 18 +++++++++++++---- .../IntuneDeviceCategory/2-Update.ps1 | 18 +++++++++++++---- .../IntuneDeviceCategory/3-Remove.ps1 | 18 +++++++++++++---- .../IntuneDeviceCleanupRule/2-Update.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 19 +++++++++++++----- .../2-Update.ps1 | 19 +++++++++++++----- .../3-Remove.ps1 | 19 +++++++++++++----- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 19 +++++++++++++----- .../2-Update.ps1 | 19 +++++++++++++----- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 19 +++++++++++++----- .../2-Update.ps1 | 19 +++++++++++++----- .../3-Remove.ps1 | 19 +++++++++++++----- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 19 +++++++++++++----- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../IntuneDeviceRemediation/1-Create.ps1 | 19 +++++++++++++----- .../IntuneDeviceRemediation/2-Update.ps1 | 19 +++++++++++++----- .../IntuneDeviceRemediation/3-Remove.ps1 | 18 +++++++++++++---- .../IntuneDiskEncryptionMacOS/1-Create.ps1 | 18 +++++++++++++---- .../IntuneDiskEncryptionMacOS/2-Update.ps1 | 18 +++++++++++++---- .../IntuneDiskEncryptionMacOS/3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../Resources/IntunePolicySets/1-Create.ps1 | 20 +++++++++++++------ .../Resources/IntunePolicySets/2-Update.ps1 | 20 +++++++++++++------ .../Resources/IntunePolicySets/3-Remove.ps1 | 20 +++++++++++++------ .../IntuneRoleAssignment/1-Create.ps1 | 18 +++++++++++++---- .../IntuneRoleAssignment/2-Update.ps1 | 18 +++++++++++++---- .../IntuneRoleAssignment/3-Remove.ps1 | 18 +++++++++++++---- .../IntuneRoleDefinition/1-Create.ps1 | 18 +++++++++++++---- .../IntuneRoleDefinition/2-Update.ps1 | 18 +++++++++++++---- .../IntuneRoleDefinition/3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- .../1-Create.ps1 | 18 +++++++++++++---- .../2-Update.ps1 | 18 +++++++++++++---- .../3-Remove.ps1 | 18 +++++++++++++---- 233 files changed, 3262 insertions(+), 955 deletions(-) diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/1-Create.ps1 index 5016ae60aa..77df24981a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -39,7 +47,9 @@ Configuration Example UntrustedExecutableType = 'block' UntrustedUSBProcessType = 'block' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/2-Update.ps1 index 67a96b5a2d..b2672e9a60 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -39,7 +47,9 @@ Configuration Example UntrustedExecutableType = 'block' UntrustedUSBProcessType = 'block' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/3-Remove.ps1 index 79762a0115..7129877c13 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneASRRulesPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'test' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/1-Create.ps1 index f31995576a..0e1d844cfc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,6 @@ Configuration Example DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -30,6 +37,9 @@ Configuration Example PasswordAgeDays_AAD = 10; AdministratorAccountName = "Administrator"; PasswordAgeDays = 20; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/2-Update.ps1 index 15e2b607fa..08d2c88584 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,6 @@ Configuration Example DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -30,6 +37,9 @@ Configuration Example PasswordAgeDays_AAD = 15; # Updated Property AdministratorAccountName = "Administrator"; PasswordAgeDays = 20; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/3-Remove.ps1 index b9641cf809..b8b92fc2b5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Absent"; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/1-Create.ps1 index d605f3441a..03ace9c122 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,6 @@ Configuration Example DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -34,6 +41,9 @@ Configuration Example UserSelectionType = 'users' } ); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/2-Update.ps1 index e906680eeb..38f5885a24 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,6 @@ Configuration Example DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @(); # Updated Property LocalUserGroupCollection = @( MSFT_IntuneAccountProtectionLocalUserGroupCollection{ @@ -29,6 +36,9 @@ Configuration Example UserSelectionType = 'users' } ); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/3-Remove.ps1 index 6e029e0525..10792722c4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionLocalUserGroupMembershipPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Absent"; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/1-Create.ps1 index cb6919ab1d..b7dba4f998 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example PinMinimumLength = 5 PinSpecialCharactersUsage = 'required' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/2-Update.ps1 index f87d9a4e39..0a0d2c13a6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example PinMinimumLength = 10 # Updated Property PinSpecialCharactersUsage = 'required' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/3-Remove.ps1 index 0a1cbf862a..8bf79c59a7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAccountProtectionPolicy/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'test' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/1-Create.ps1 index cd613829c1..a4daa9a4d3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,7 +36,9 @@ Configuration Example excludedprocesses = @('processes.exe', 'process2.exe') templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/2-Update.ps1 index b5ed0d3091..c8517066ac 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,7 +36,9 @@ Configuration Example excludedprocesses = @('processes.exe', 'process3.exe') # Updated Property templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/3-Remove.ps1 index 7a5f368d52..d6834c0760 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAntivirusPolicyWindows10SettingCatalog/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'av exclusions' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/1-Create.ps1 index 242be648ef..dd2a4f4c38 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new App Configuration Device Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -15,7 +23,6 @@ Configuration Example { IntuneAppConfigurationDevicePolicy "IntuneAppConfigurationDevicePolicy-Example" { - Credential = $Credscredential; Assignments = @(); Description = ""; DisplayName = "Example"; @@ -28,7 +35,9 @@ Configuration Example ProfileApplicability = "default" RoleScopeTagIds = @("0"); TargetedMobileApps = @(""); - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/2-Update.ps1 index cbd15f84df..5eafde868b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/2-Update.ps1 @@ -5,9 +5,17 @@ This example updates an App Configuration Device Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -15,7 +23,6 @@ Configuration Example { IntuneAppConfigurationDevicePolicy "IntuneAppConfigurationDevicePolicy-Example" { - Credential = $Credscredential; Assignments = @(); Description = ""; DisplayName = "Example"; @@ -33,7 +40,9 @@ Configuration Example ProfileApplicability = "default" RoleScopeTagIds = @("0"); TargetedMobileApps = @(""); - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/3-Remove.ps1 index 5708b7ccaa..4823b2fba9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationDevicePolicy/3-Remove.ps1 @@ -5,9 +5,17 @@ This example deletes a new App Configuration Device Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -15,12 +23,13 @@ Configuration Example { IntuneAppConfigurationDevicePolicy "IntuneAppConfigurationDevicePolicy-Example" { - Credential = $Credscredential; Description = ""; DisplayName = "Example"; Ensure = "Present"; Id = "0000000-0000-0000-0000-000000000000"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/1-Create.ps1 index 7c8fee9252..ecf567a613 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new App Configuration Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,6 @@ Configuration Example { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; CustomSettings = @( MSFT_IntuneAppConfigurationPolicyCustomSetting { name = 'com.microsoft.intune.mam.managedbrowser.BlockListURLs' @@ -32,6 +39,9 @@ Configuration Example value = 'TestValue' }); Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/2-Update.ps1 index 507f2bf9e6..29e2368f3f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new App Configuration Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,6 @@ Configuration Example { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; CustomSettings = @( MSFT_IntuneAppConfigurationPolicyCustomSetting { name = 'com.microsoft.intune.mam.managedbrowser.BlockListURLs' @@ -32,6 +39,9 @@ Configuration Example value = 'TestValue2' }); Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/3-Remove.ps1 index 8aa3e4a095..8edabb57e8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppConfigurationPolicy/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new App Configuration Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,8 +25,10 @@ Configuration Example { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/1-Create.ps1 index 4f7c3a599e..e0d31586a6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/1-Create.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -38,8 +46,9 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } - diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/2-Update.ps1 index 5dc2dc577e..0049ed0dc4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/2-Update.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -38,8 +46,9 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } - diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/3-Remove.ps1 index 3fe178f97e..da421d7845 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyAndroid/3-Remove.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,8 +27,9 @@ Configuration Example { DisplayName = 'My DSC Android App Protection Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } - diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/1-Create.ps1 index 15053df200..ca06406fa0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new App ProtectionPolicy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -40,7 +48,9 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/2-Update.ps1 index 0ef59acb4d..7d75207738 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new App ProtectionPolicy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -40,7 +48,9 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/3-Remove.ps1 index 10acdf5fcc..c824f0d587 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAppProtectionPolicyiOS/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new App ProtectionPolicy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'My DSC iOS App Protection Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/1-Create.ps1 index 4a504be881..dd2cd24682 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/1-Create.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example SmartScreenBlockOverrideForFiles = $True SmartScreenEnableInShell = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/2-Update.ps1 index ad867e1f8e..cf7bc67969 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/2-Update.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,9 @@ Configuration Example SmartScreenBlockOverrideForFiles = $False # Updated Property SmartScreenEnableInShell = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/3-Remove.ps1 index 5626780281..9d1f24d995 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneApplicationControlPolicyWindows10/3-Remove.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example DisplayName = 'Windows 10 Desktops' Description = 'All windows 10 Desktops' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/1-Create.ps1 index a64d1cfb86..7f7d173c2f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example blockadobereaderfromcreatingchildprocesses = "block"; Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/2-Update.ps1 index f11d5e17b6..2a5f84b0d1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example blockadobereaderfromcreatingchildprocesses = "audit"; # Updated Property Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/3-Remove.ps1 index bbe506c085..52a1e66949 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'asr ConfigMgr' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/1-Create.ps1 index f516d49d5a..0b9cb7c788 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device and App Management Assignment Filter. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $intuneAdmin + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Platform = 'windows10AndLater' Rule = "(device.manufacturer -ne `"Microsoft Corporation`")" Ensure = 'Present' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/2-Update.ps1 index 7be28ee342..3fad2059c4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device and App Management Assignment Filter. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $intuneAdmin + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Platform = 'windows10AndLater' Rule = "(device.manufacturer -ne `"Apple`")" # Updated Property Ensure = 'Present' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/3-Remove.ps1 index 5612fd7a89..55cc25c980 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceAndAppManagementAssignmentFilter/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device and App Management Assignment Filter. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $intuneAdmin + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'Test Device Filter' Ensure = 'Absent' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/1-Create.ps1 index 2391ba3dbb..844247dc1c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Category. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example DisplayName = 'Contoso' Description = 'Contoso Category' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/2-Update.ps1 index aa53f77ea0..82837af478 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Category. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example DisplayName = 'Contoso' Description = 'Contoso Category - Updated' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/3-Remove.ps1 index 3e865eee3d..05ff70c359 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCategory/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Category. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'Contoso' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCleanupRule/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCleanupRule/2-Update.ps1 index 7c6d1efcab..ab047ef706 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCleanupRule/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCleanupRule/2-Update.ps1 @@ -5,9 +5,17 @@ This example sets the device cleanup rule. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example IsSingleInstance = 'Yes' DeviceInactivityBeforeRetirementInDays = 25 # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/1-Create.ps1 index edcbd51b34..b80c15280e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for Android devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/2-Update.ps1 index f4d3747b63..d847a28b59 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for Android devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/3-Remove.ps1 index 61b4cc1c6c..472667c057 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroid/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for Android devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'Test Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/1-Create.ps1 index 11979ab4cc..d6e684b87a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/1-Create.ps1 @@ -6,9 +6,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -34,7 +42,9 @@ Configuration Example PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/2-Update.ps1 index 2f64930499..e68a0d474b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/2-Update.ps1 @@ -6,9 +6,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -34,7 +42,9 @@ Configuration Example PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/3-Remove.ps1 index 2f64930499..e68a0d474b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidDeviceOwner/3-Remove.ps1 @@ -6,9 +6,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -34,7 +42,9 @@ Configuration Example PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/1-Create.ps1 index 721bf09c18..1dfba52a5f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -35,7 +43,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/2-Update.ps1 index 8983fda0ae..4f79454cc1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -35,7 +43,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/3-Remove.ps1 index 45ef8ccd64..2084845d6a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyAndroidWorkProfile/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'Test Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/1-Create.ps1 index cc9361ae1e..98e6353fef 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Comliance Policy for MacOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -35,7 +43,9 @@ Configuration Example FirewallBlockAllIncoming = $False FirewallEnableStealthMode = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/2-Update.ps1 index 7786b78f0d..e5cea3ce3a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Comliance Policy for MacOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -35,7 +43,9 @@ Configuration Example FirewallBlockAllIncoming = $False FirewallEnableStealthMode = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/3-Remove.ps1 index bbe0504255..a1562eaa09 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyMacOS/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Comliance Policy for MacOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'MacOS DSC Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/1-Create.ps1 index 501eaa58a8..344e052090 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Comliance Policy for Windows. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -50,7 +58,9 @@ Configuration Example deviceCompliancePolicyScript = $null ValidOperatingSystemBuildRanges = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/2-Update.ps1 index abce742bfa..30d096f81b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Comliance Policy for Windows. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -50,7 +58,9 @@ Configuration Example deviceCompliancePolicyScript = $null ValidOperatingSystemBuildRanges = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/3-Remove.ps1 index c6c84570a1..990b8591a9 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyWindows10/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Comliance Policy for Windows. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'Windows 10 DSC Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/1-Create.ps1 index 85f3c3138a..2133fc7a5b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,8 +40,9 @@ Configuration Example DeviceThreatProtectionRequiredSecurityLevel = 'medium' ManagedEmailProfileRequired = $True Ensure = 'Present' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/2-Update.ps1 index 8333ab35fd..94d276f04a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,8 +40,9 @@ Configuration Example DeviceThreatProtectionRequiredSecurityLevel = 'medium' ManagedEmailProfileRequired = $True Ensure = 'Present' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/3-Remove.ps1 index f7be9cf102..8081fbd87c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceCompliancePolicyiOs/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,8 +25,9 @@ Configuration Example { DisplayName = 'Test iOS Device Compliance Policy' Ensure = 'Absent' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/1-Create.ps1 index 787552def1..ebfd8924b7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,6 @@ Configuration Example { IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments { @@ -138,6 +145,9 @@ Configuration Example DisplayName = 'admin template' Ensure = 'Present' PolicyConfigurationIngestionType = 'unknown' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/2-Update.ps1 index cc9e0d0351..95516649f5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,6 @@ Configuration Example { IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments { @@ -138,6 +145,9 @@ Configuration Example DisplayName = 'admin template' Ensure = 'Present' PolicyConfigurationIngestionType = 'builtIn' # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/3-Remove.ps1 index 1ff95ebdc0..7122d08033 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential DisplayName = 'admin template' Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/1-Create.ps1 index 2d6f33b948..d8f011747e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; OmaSettings = @( @@ -46,6 +53,9 @@ Configuration Example } ); SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/2-Update.ps1 index 17cdb1f91a..945f22f9be 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; OmaSettings = @( @@ -46,6 +53,9 @@ Configuration Example } ); SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/3-Remove.ps1 index 5107baec1a..f0a20c0853 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationCustomPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationCustomPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/1-Create.ps1 index 100f2e2314..a924a24b2d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -26,10 +34,12 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; EnableExpeditedTelemetryReporting = $True; Ensure = "Present"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/2-Update.ps1 index 22fbce100e..2d3996726b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,10 +33,12 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; EnableExpeditedTelemetryReporting = $True; Ensure = "Present"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/3-Remove.ps1 index 056a65caad..5276884dc6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/1-Create.ps1 index ac9c07730a..fd1fc21f94 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +39,6 @@ Configuration Example CacheServerBackgroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerForegroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerHostNames = @("domain.com"); - Credential = $Credscredential; DeliveryOptimizationMode = "httpWithPeeringPrivateGroup"; DisplayName = "delivery optimisation"; Ensure = "Present"; @@ -53,6 +60,9 @@ Configuration Example RestrictPeerSelectionBy = "subnetMask"; SupportsScopeTags = $True; VpnPeerCaching = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/2-Update.ps1 index c8c69c7148..3d9c8a6d9c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +39,6 @@ Configuration Example CacheServerBackgroundDownloadFallbackToHttpDelayInSeconds = 5; # Updated Property CacheServerForegroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerHostNames = @("domain.com"); - Credential = $Credscredential; DeliveryOptimizationMode = "httpWithPeeringPrivateGroup"; DisplayName = "delivery optimisation"; Ensure = "Present"; @@ -53,6 +60,9 @@ Configuration Example RestrictPeerSelectionBy = "subnetMask"; SupportsScopeTags = $True; VpnPeerCaching = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/3-Remove.ps1 index d277c6761d..7ba96d2ccc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "delivery optimisation"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/1-Create.ps1 index 4b49df8514..30695840ec 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,11 +33,13 @@ Configuration Example ); ComputerNameStaticPrefix = "WK-"; ComputerNameSuffixRandomCharCount = 12; - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Present"; OrganizationalUnit = "OU=workstation,CN=domain,CN=com"; SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/2-Update.ps1 index 26a5dea8fd..13cee6a023 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,11 +33,13 @@ Configuration Example ); ComputerNameStaticPrefix = "WK-"; ComputerNameSuffixRandomCharCount = 12; - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Present"; OrganizationalUnit = "OU=workstation,CN=domain,CN=com"; SupportsScopeTags = $False; # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/3-Remove.ps1 index 822310ada5..4a731c678d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationDomainJoinPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationDomainJoinPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/1-Create.ps1 index efa6cec816..573b0e5874 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "email"; DurationOfEmailToSync = "unlimited"; EmailAddressSource = "primarySmtpAddress"; @@ -34,6 +41,9 @@ Configuration Example SyncCalendar = $True; SyncContacts = $True; SyncTasks = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/2-Update.ps1 index 950e073302..61fcb29fe0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,7 +31,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "email"; DurationOfEmailToSync = "unlimited"; EmailAddressSource = "primarySmtpAddress"; @@ -34,6 +41,9 @@ Configuration Example SyncCalendar = $True; SyncContacts = $True; SyncTasks = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/3-Remove.ps1 index 139573027a..a870b91ad3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEmailProfilePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationEmailProfilePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "email"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/1-Create.ps1 index 54d23472ea..917e26ab44 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -79,7 +87,6 @@ Configuration Example StartupAuthenticationTpmKeyUsage = 'allowed' StartupAuthenticationBlockWithoutTpmChip = $False }; - Credential = $Credscredential; DefenderAdditionalGuardedFolders = @(); DefenderAdobeReaderLaunchChildProcess = "notConfigured"; DefenderAdvancedRansomewareProtectionType = "notConfigured"; @@ -241,6 +248,9 @@ Configuration Example XboxServicesLiveAuthManagerServiceStartupMode = "manual"; XboxServicesLiveGameSaveServiceStartupMode = "manual"; XboxServicesLiveNetworkingServiceStartupMode = "manual"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/2-Update.ps1 index c1974f6b26..27f4d9db02 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -79,7 +87,6 @@ Configuration Example StartupAuthenticationTpmKeyUsage = 'allowed' StartupAuthenticationBlockWithoutTpmChip = $False }; - Credential = $Credscredential; DefenderAdditionalGuardedFolders = @(); DefenderAdobeReaderLaunchChildProcess = "notConfigured"; DefenderAdvancedRansomewareProtectionType = "notConfigured"; @@ -241,6 +248,9 @@ Configuration Example XboxServicesLiveAuthManagerServiceStartupMode = "manual"; XboxServicesLiveGameSaveServiceStartupMode = "manual"; XboxServicesLiveNetworkingServiceStartupMode = "manual"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/3-Remove.ps1 index 2bd05a7edd..7910d8c682 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,8 +25,10 @@ Configuration Example IntuneDeviceConfigurationEndpointProtectionPolicyWindows10 'Example' { DisplayName = "endpoint protection legacy - dsc v2.0"; - Credential = $Credscredential; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/1-Create.ps1 index 3752103cac..d771035f63 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,6 @@ Configuration Example BootFromExternalMedia = "notConfigured"; Cameras = "enabled"; ChangeUefiSettingsPermission = "notConfiguredOnly"; - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Present"; FrontCamera = "enabled"; @@ -47,6 +54,9 @@ Configuration Example WiFi = "notConfigured"; WindowsPlatformBinaryTable = "enabled"; WirelessWideAreaNetwork = "notConfigured"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/2-Update.ps1 index 8cd74170a9..d74cbce780 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,6 @@ Configuration Example BootFromExternalMedia = "notConfigured"; Cameras = "enabled"; # Updated Property ChangeUefiSettingsPermission = "notConfiguredOnly"; - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Present"; FrontCamera = "enabled"; @@ -47,6 +54,9 @@ Configuration Example WiFi = "notConfigured"; WindowsPlatformBinaryTable = "enabled"; WirelessWideAreaNetwork = "notConfigured"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/3-Remove.ps1 index add44ac809..2393e41d5a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/1-Create.ps1 index 4c03d36315..8b7685ebab 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,10 +32,12 @@ Configuration Example } ); ConfigDeviceHealthMonitoringScope = @("bootPerformance","windowsUpdates"); - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Present"; SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/2-Update.ps1 index bb30703c2c..56db5bb57e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,10 +32,12 @@ Configuration Example } ); ConfigDeviceHealthMonitoringScope = @("bootPerformance","windowsUpdates"); - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Present"; SupportsScopeTags = $False; # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/3-Remove.ps1 index 16c309c95b..acf7c8df82 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/1-Create.ps1 index c46b71ab56..53710e648b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "identity protection"; EnhancedAntiSpoofingForFacialFeaturesEnabled = $True; Ensure = "Present"; @@ -40,6 +47,9 @@ Configuration Example UseCertificatesForOnPremisesAuthEnabled = $True; UseSecurityKeyForSignin = $True; WindowsHelloForBusinessBlocked = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/2-Update.ps1 index 63fc645723..ce8fe9037f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "identity protection"; EnhancedAntiSpoofingForFacialFeaturesEnabled = $True; Ensure = "Present"; @@ -40,6 +47,9 @@ Configuration Example UseCertificatesForOnPremisesAuthEnabled = $True; UseSecurityKeyForSignin = $True; WindowsHelloForBusinessBlocked = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/3-Remove.ps1 index a888e787f9..426d4cc30c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationIdentityProtectionPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "identity protection"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/1-Create.ps1 index 29b160b437..72500c3878 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +32,6 @@ Configuration Example ); CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 1; - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Present"; IntendedPurpose = "unassigned"; @@ -32,6 +39,9 @@ Configuration Example RenewalThresholdPercentage = 50; SubjectAlternativeNameType = "emailAddress"; SubjectNameFormat = "commonName"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/2-Update.ps1 index 6c1ec6759e..012f09759f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +32,6 @@ Configuration Example ); CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 1; - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Present"; IntendedPurpose = "unassigned"; @@ -32,6 +39,9 @@ Configuration Example RenewalThresholdPercentage = 60; # Updated Property SubjectAlternativeNameType = "emailAddress"; SubjectNameFormat = "commonName"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/3-Remove.ps1 index 77bb7e16ae..2a932fccdc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/1-Create.ps1 index 0de1951bf4..bbe1a6a835 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "kiosk"; EdgeKioskEnablePublicBrowsing = $False; Ensure = "Present"; @@ -62,6 +69,9 @@ Configuration Example Recurrence = 'daily' DayofWeek = 'sunday' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/2-Update.ps1 index 6806ed767b..941e54fdf1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "kiosk"; EdgeKioskEnablePublicBrowsing = $False; # Updated Property Ensure = "Present"; @@ -62,6 +69,9 @@ Configuration Example Recurrence = 'daily' DayofWeek = 'sunday' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/3-Remove.ps1 index 80a6d10ec1..7302ec0274 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationKioskPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationKioskPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "kiosk"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/1-Create.ps1 index 50f6bc80dc..f788c8187f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Present"; SupportsScopeTags = $True; @@ -41,6 +48,9 @@ Configuration Example ) NeutralDomainResources = @() }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/2-Update.ps1 index caa6db6a07..11c361adeb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Present"; SupportsScopeTags = $False; # Updated Property @@ -41,6 +48,9 @@ Configuration Example ) NeutralDomainResources = @() }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/3-Remove.ps1 index 4629ee0d8e..b0d796b637 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/1-Create.ps1 index 122e22534c..7c84bdae93 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,7 +36,6 @@ Configuration Example CertificateValidityPeriodValue = 1; CertificationAuthority = "CA=Name"; CertificationAuthorityName = "Test"; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -42,6 +49,9 @@ Configuration Example SubjectAlternativeNameType = "none"; SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/2-Update.ps1 index 408d3012ff..7a2e8c07d0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,7 +36,6 @@ Configuration Example CertificateValidityPeriodValue = 1; CertificationAuthority = "CA=Name"; CertificationAuthorityName = "Test"; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -42,6 +49,9 @@ Configuration Example SubjectAlternativeNameType = "none"; SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/3-Remove.ps1 index 2c442218c4..08e2fb36e8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationPkcsCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "PKCS"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/1-Create.ps1 index 76b273ad8c..164362b435 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; BlockExecutionNotifications = $False; @@ -34,7 +41,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAsAccount = "user"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/2-Update.ps1 index f3708d3311..b1b9e2c421 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; BlockExecutionNotifications = $False; @@ -34,7 +41,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAsAccount = "user"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/3-Remove.ps1 index 4b210f57a4..5ca16398b7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptMacOS/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,10 +24,12 @@ Configuration Example { IntuneDeviceConfigurationPlatformScriptMacOS 'Example' { - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Absent"; Id = "00000000-0000-0000-0000-000000000000"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/1-Create.ps1 index b5775736dd..3aefc20441 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; EnforceSignatureCheck = $False; @@ -31,7 +38,9 @@ Configuration Example RunAs32Bit = $True; RunAsAccount = "system"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/2-Update.ps1 index 6498d54c6e..df23106133 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; EnforceSignatureCheck = $False; @@ -31,7 +38,9 @@ Configuration Example RunAs32Bit = $False; # Updated property RunAsAccount = "system"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/3-Remove.ps1 index d3933101bc..aa9af00cfc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPlatformScriptWindows/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,11 +24,12 @@ Configuration Example { IntuneDeviceConfigurationPlatformScriptWindows 'Example' { - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Absent"; Id = "00000000-0000-0000-0000-000000000000"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 index 046eae0b0f..6941737462 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -72,7 +80,9 @@ Configuration Example WebBrowserCookieSettings = 'allowAlways' WiFiBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 index 6ada58e52e..601c917715 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -72,7 +80,9 @@ Configuration Example WebBrowserCookieSettings = 'allowAlways' WiFiBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 index 441167a739..3f0ec44dd3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'Android device admin' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/1-Create.ps1 index b75191c8fb..49dcc36d58 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -58,7 +66,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfilePasswordRequireUnlock = 'deviceDefault' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/2-Update.ps1 index 854e05e7d9..d02e2f0311 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -58,7 +66,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfilePasswordRequireUnlock = 'deviceDefault' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/3-Remove.ps1 index 3c1e951844..8caded1819 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidDeviceOwner/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'general confi - AndroidDeviceOwner' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 index e18d649060..3ce8a77ee0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,9 @@ Configuration Example ScreenCaptureBlocked = $True StorageBlockExternalMedia = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 index 184ed1705e..f7494f93b0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,9 @@ Configuration Example ScreenCaptureBlocked = $True StorageBlockExternalMedia = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 index 5c16fc6b49..69be23ea8a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'aosp' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/1-Create.ps1 index 561b2a1196..5d837fe217 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new General Device Configuration Policy for Android WorkP Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfileRequirePassword = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/2-Update.ps1 index cf2bbd792e..c9b6d85215 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new General Device Configuration Policy for Android WorkP Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfileRequirePassword = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/3-Remove.ps1 index b019a1a657..91a5b0ed71 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyAndroidWorkProfile/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new General Device Configuration Policy for Android WorkP Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'Android Work Profile - Device Restrictions - Standard' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/1-Create.ps1 index b6234b3b22..eb2695e635 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +117,9 @@ Configuration Example UpdateDelayPolicy = @('delayOSUpdateVisibility', 'delayAppUpdateVisibility', 'delayMajorOsUpdateVisibility') WallpaperModificationBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/2-Update.ps1 index d52aa87392..60fab32746 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +117,9 @@ Configuration Example UpdateDelayPolicy = @('delayOSUpdateVisibility', 'delayAppUpdateVisibility', 'delayMajorOsUpdateVisibility') WallpaperModificationBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/3-Remove.ps1 index b2e3b21362..46daa4d5b2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyMacOS/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'MacOS device restriction' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/1-Create.ps1 index 940cc63a3f..c8e9be6cc7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -47,7 +55,6 @@ Configuration Example ConnectedDevicesServiceBlocked = $False; CopyPasteBlocked = $False; CortanaBlocked = $False; - Credential = $Credscredential; CryptographyAllowFipsAlgorithmPolicy = $False; DefenderBlockEndUserAccess = $False; DefenderBlockOnAccessProtection = $False; @@ -267,6 +274,9 @@ Configuration Example WirelessDisplayBlockProjectionToThisDevice = $False; WirelessDisplayBlockUserInputFromReceiver = $False; WirelessDisplayRequirePinForPairing = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/2-Update.ps1 index e9f0b4b8b2..e31803d2db 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -47,7 +55,6 @@ Configuration Example ConnectedDevicesServiceBlocked = $False; CopyPasteBlocked = $False; CortanaBlocked = $False; - Credential = $Credscredential; CryptographyAllowFipsAlgorithmPolicy = $False; DefenderBlockEndUserAccess = $False; DefenderBlockOnAccessProtection = $False; @@ -267,6 +274,9 @@ Configuration Example WirelessDisplayBlockProjectionToThisDevice = $False; WirelessDisplayBlockUserInputFromReceiver = $False; WirelessDisplayRequirePinForPairing = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/3-Remove.ps1 index 1d793d1f51..2e4255c5c6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "device config"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/1-Create.ps1 index 0ae05c68c6..6a418b2d10 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Configuration Policy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -124,7 +132,9 @@ Configuration Example VoiceDialingBlocked = $False WallpaperBlockModification = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/2-Update.ps1 index 4b06a5591f..e381f1a619 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Configuration Policy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -124,7 +132,9 @@ Configuration Example VoiceDialingBlocked = $False WallpaperBlockModification = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/3-Remove.ps1 index 99663148fb..a2870509c6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationPolicyiOS/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Configuration Policy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'iOS DSC Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/1-Create.ps1 index ea3febcd48..5cfb8a300d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,6 @@ Configuration Example CertificateStore = "user"; CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 5; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -50,6 +57,9 @@ Configuration Example SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; RootCertificateId = "169bf4fc-5914-40f4-ad33-48c225396183"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/2-Update.ps1 index 93e40032e6..6118051422 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,6 @@ Configuration Example CertificateStore = "user"; CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 5; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -50,6 +57,9 @@ Configuration Example SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; RootCertificateId = "169bf4fc-5914-40f4-ad33-48c225396183"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/3-Remove.ps1 index 721d61cff3..2f11dacb38 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationScepCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "SCEP"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/1-Create.ps1 index 8f0c070dfb..4f1a94ea55 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,11 +36,13 @@ Configuration Example ); ConfigurationAccount = "user@domain.com"; ConfigurationAccountType = "azureADAccount"; - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Present"; LaunchUri = "https://assessment.domain.com"; LocalGuestAccountName = ""; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/2-Update.ps1 index 59132497d7..7b380c8847 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,11 +36,13 @@ Configuration Example ); ConfigurationAccount = "user@domain.com"; ConfigurationAccountType = "azureADAccount"; - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Present"; LaunchUri = "https://assessment.domain.com"; LocalGuestAccountName = ""; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/3-Remove.ps1 index 3c86881b4c..5d7b079159 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationSecureAssessmentPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/1-Create.ps1 index 61caf9f43e..dad601fefb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisableAccountManager = $False; DisableEduPolicies = $False; DisablePowerPolicies = $False; @@ -45,6 +52,9 @@ Configuration Example SetEduPolicies = "enabled"; SetPowerPolicies = "enabled"; SignInOnResume = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/2-Update.ps1 index c92efad921..0a67b952e5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisableAccountManager = $False; DisableEduPolicies = $False; DisablePowerPolicies = $False; @@ -45,6 +52,9 @@ Configuration Example SetEduPolicies = "enabled"; SetPowerPolicies = "enabled"; SignInOnResume = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/3-Remove.ps1 index bf6778fad4..7c37541796 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Shared Multi device"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/1-Create.ps1 index f074cf9c75..5ad9d1de72 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,11 +31,13 @@ Configuration Example } ); CertFileName = "RootCA.cer"; - Credential = $Credscredential; DestinationStore = "computerCertStoreRoot"; DisplayName = "Trusted Cert"; Ensure = "Present"; TrustedRootCertificate = "MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFowcDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA="; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/2-Update.ps1 index 9572a0909d..e35ae2acd5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -23,11 +31,13 @@ Configuration Example } ); CertFileName = "RootNew.cer"; # Updated Property - Credential = $Credscredential; DestinationStore = "computerCertStoreRoot"; DisplayName = "Trusted Cert"; Ensure = "Present"; TrustedRootCertificate = "MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFowcDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA="; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/3-Remove.ps1 index f1c6596534..0ac59c1a99 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationTrustedCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Trusted Cert"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/1-Create.ps1 index 1fa1b7d51c..f8f277b958 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,6 @@ Configuration Example AuthenticationMethod = "usernameAndPassword"; ConnectionName = "Cisco VPN"; ConnectionType = "ciscoAnyConnect"; - Credential = $Credscredential; CustomXml = ""; DisplayName = "VPN"; DnsRules = @( @@ -73,6 +80,9 @@ Configuration Example } ); TrustedNetworkDomains = @(); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/2-Update.ps1 index 69242ff63c..f6eeed0a1a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,6 @@ Configuration Example AuthenticationMethod = "usernameAndPassword"; ConnectionName = "Cisco VPN"; ConnectionType = "ciscoAnyConnect"; - Credential = $Credscredential; CustomXml = ""; DisplayName = "VPN"; DnsRules = @( @@ -73,6 +80,9 @@ Configuration Example } ); TrustedNetworkDomains = @(); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/3-Remove.ps1 index 1274c03e79..7e6bb0ea45 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationVpnPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationVpnPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "VPN"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/1-Create.ps1 index e525045cf5..daa9eae1b6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +32,6 @@ Configuration Example ); AzureOperationalInsightsBlockTelemetry = $True; ConnectAppBlockAutoLaunch = $True; - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Present"; MaintenanceWindowBlocked = $False; @@ -39,6 +46,9 @@ Configuration Example SupportsScopeTags = $True; WelcomeScreenBlockAutomaticWakeUp = $True; WelcomeScreenMeetingInformation = "showOrganizerAndTimeOnly"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/2-Update.ps1 index f2c95f9c48..d362300d56 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +32,6 @@ Configuration Example ); AzureOperationalInsightsBlockTelemetry = $False; # Updated Property ConnectAppBlockAutoLaunch = $True; - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Present"; MaintenanceWindowBlocked = $False; @@ -39,6 +46,9 @@ Configuration Example SupportsScopeTags = $True; WelcomeScreenBlockAutomaticWakeUp = $True; WelcomeScreenMeetingInformation = "showOrganizerAndTimeOnly"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/3-Remove.ps1 index 99c307e64d..e9a18c6b39 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWindowsTeamPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationWindowsTeamPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/1-Create.ps1 index fbbcf032f7..817e0b5627 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,6 @@ Configuration Example AuthenticationRetryDelayPeriodInSeconds = 5 AuthenticationType = 'machine' CacheCredentials = $True - Credential = $Credscredential DisplayName = 'Wired Network' EapolStartPeriodInSeconds = 5 EapType = 'teap' @@ -41,6 +48,9 @@ Configuration Example TrustedServerCertificateNames = @('srv.domain.com') RootCertificatesForServerValidationIds = @('a485d322-13cd-43ef-beda-733f656f48ea', '169bf4fc-5914-40f4-ad33-48c225396183') SecondaryIdentityCertificateForClientAuthenticationId = '0b9aef2f-1671-4260-8eb9-3ab3138e176a' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/2-Update.ps1 index c7aa68885a..c134ecbe5e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,6 @@ Configuration Example AuthenticationRetryDelayPeriodInSeconds = 5 AuthenticationType = 'machine' CacheCredentials = $True - Credential = $Credscredential DisplayName = 'Wired Network' EapolStartPeriodInSeconds = 5 EapType = 'teap' @@ -41,6 +48,9 @@ Configuration Example TrustedServerCertificateNames = @('srv.domain.com') RootCertificatesForServerValidationIds = @('a485d322-13cd-43ef-beda-733f656f48ea', '169bf4fc-5914-40f4-ad33-48c225396183') SecondaryIdentityCertificateForClientAuthenticationId = '0b9aef2f-1671-4260-8eb9-3ab3138e176a' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/3-Remove.ps1 index bbf5bf4d73..8e1c70d1ec 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceConfigurationWiredNetworkPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneDeviceConfigurationWiredNetworkPolicyWindows10 'Example' { - Credential = $Credscredential DisplayName = 'Wired Network' Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/1-Create.ps1 index 2c995f15f6..ec54b07d17 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Limit Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example Description = 'My Restriction' Limit = 12 Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/2-Update.ps1 index a36fb9f5bc..5454d76046 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Limit Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example Description = 'My Restriction' Limit = 11 # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/3-Remove.ps1 index fb00aa8e9b..2ecec7b4b7 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentLimitRestriction/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Limit Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'My DSC Limit' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/1-Create.ps1 index 59d2180462..0552b4e3d4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Platform Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,7 +36,6 @@ Configuration Example deviceAndAppManagementAssignmentFilterType = 'none' dataType = '#microsoft.graph.allDevicesAssignmentTarget' }); - Credential = $Credscredential Description = "This is the default Device Type Restriction applied with the lowest priority to all users regardless of group membership."; DeviceEnrollmentConfigurationType = "platformRestrictions"; DisplayName = "All users and all devices"; @@ -58,6 +65,9 @@ Configuration Example platformBlocked = $False personalDeviceEnrollmentBlocked = $False }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/2-Update.ps1 index 24eecb9143..321192cbc1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Platform Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -28,7 +36,6 @@ Configuration Example deviceAndAppManagementAssignmentFilterType = 'none' dataType = '#microsoft.graph.allDevicesAssignmentTarget' }); - Credential = $Credscredential Description = "This is the default Device Type Restriction applied with the lowest priority to all users regardless of group membership."; DeviceEnrollmentConfigurationType = "platformRestrictions"; DisplayName = "All users and all devices"; @@ -58,6 +65,9 @@ Configuration Example platformBlocked = $False personalDeviceEnrollmentBlocked = $False }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/3-Remove.ps1 index 5727bbb579..73d3ce57ad 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentPlatformRestriction/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Platform Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -15,7 +23,6 @@ Configuration Example { IntuneDeviceEnrollmentPlatformRestriction 'DeviceEnrollmentPlatformRestriction' { - Credential = $Credscredential DisplayName = "Removed Policy"; Ensure = "Absent"; Assignments = @(); @@ -27,7 +34,9 @@ Configuration Example PersonalDeviceEnrollmentBlocked = $False }; Priority = 1; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/1-Create.ps1 index 23ecb3cb28..b4d60261d2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Status Page. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example SelectedMobileAppIds = @(); ShowInstallationProgress = $True; TrackInstallProgressForAutopilotOnly = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/2-Update.ps1 index 524d3a5343..55c2412c4d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Status Page. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -37,7 +45,9 @@ Configuration Example SelectedMobileAppIds = @(); ShowInstallationProgress = $True; TrackInstallProgressForAutopilotOnly = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/3-Remove.ps1 index b9a40e93bd..e79cc8a38d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceEnrollmentStatusPageWindows10/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Enrollment Status Page. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = "All users and all devices"; Ensure = "Absent"; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 index 8466ff6b8a..802402dbff 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceManagementComplianceSettings/2-Update.ps1 @@ -5,9 +5,17 @@ This example updates the Device Management Compliance Settings Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -15,10 +23,12 @@ Configuration Example { IntuneDeviceManagementComplianceSettings 'DeviceManagementComplianceSettings' { - Credential = $Credscredential DeviceComplianceCheckinThresholdDays = 22; IsSingleInstance = "Yes"; SecureByDefault = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 index 0910babcef..bedb3af636 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Device Remediation. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,6 @@ Configuration Example } } ); - Credential = $Credscredential Description = 'Description' DetectionScriptContent = "Base64 encoded script content"; DeviceHealthScriptType = "deviceHealthScript"; @@ -45,7 +52,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAs32Bit = $True; RunAsAccount = "system"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 index 116faa673a..a8477140d6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/2-Update.ps1 @@ -5,9 +5,17 @@ This example updates a new Device Remediation. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,6 @@ Configuration Example } } ); - Credential = $Credscredential Description = 'Description' DetectionScriptContent = "Base64 encoded script content 2"; # Updated property DeviceHealthScriptType = "deviceHealthScript"; @@ -45,7 +52,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAs32Bit = $True; RunAsAccount = "system"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/3-Remove.ps1 index 85b0b6a6a0..f67cc58688 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDeviceRemediation/3-Remove.ps1 @@ -5,9 +5,17 @@ This example removes a Device Remediation. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example Id = '00000000-0000-0000-0000-000000000000' DisplayName = 'Device remediation' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/1-Create.ps1 index a8ca59f806..6cd082f0f5 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,9 @@ Configuration Example PersonalRecoveryKeyRotationInMonths = 2; RoleScopeTagIds = @("0"); SelectedRecoveryKeyTypes = @("personalRecoveryKey"); - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/2-Update.ps1 index c68a663795..a703124b75 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,9 @@ Configuration Example PersonalRecoveryKeyRotationInMonths = 3; # Updated property RoleScopeTagIds = @("0"); SelectedRecoveryKeyTypes = @("personalRecoveryKey"); - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/3-Remove.ps1 index b7196a085f..ccb9cabb51 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionMacOS/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'test' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 index 6b4fec3bcb..9427be30cb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,9 @@ Configuration Example IdentificationField = 'IdentificationField' SecIdentificationField = 'SecIdentificationField' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 index c67330aaef..cc3181e17d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,9 @@ Configuration Example IdentificationField = 'IdentificationField' SecIdentificationField = 'UpdatedSecIdentificationField' # Updated property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 index 6941fe6603..4163a8ebd0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneDiskEncryptionWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example DisplayName = 'Disk Encryption' Description = '' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/1-Create.ps1 index b26ac43199..2cf142bdf2 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Assignments = @() Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/2-Update.ps1 index 2a8a3a5984..21679df4b0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -20,7 +28,9 @@ Configuration Example Assignments = @() Description = 'My updated description' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/3-Remove.ps1 index 2d2315e244..f7bbf42292 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'Edr Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/1-Create.ps1 index 8ffa5395d4..b4ef01fd90 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -171,7 +179,9 @@ Configuration Example " Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/2-Update.ps1 index c9752c06b4..830e57af8c 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -171,7 +179,9 @@ Configuration Example " # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/3-Remove.ps1 index c9a0cb3563..e7182e5756 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneExploitProtectionPolicyWindows10SettingCatalog/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'exploit Protection policy with assignments' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/1-Create.ps1 index 2877b370fd..aeffcea6c0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/1-Create.ps1 @@ -6,16 +6,23 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName 'Microsoft365DSC' Node localhost { IntunePolicySets "Example" { - Credential = $Credscredential; Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -42,8 +49,9 @@ Configuration Example } ); RoleScopeTags = @("0","1"); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } - } - } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/2-Update.ps1 index e7c62ea87b..6301827b35 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/2-Update.ps1 @@ -6,16 +6,23 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName 'Microsoft365DSC' Node localhost { IntunePolicySets "Example" { - Credential = $Credscredential; Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -42,8 +49,9 @@ Configuration Example } ); RoleScopeTags = @("0","1","2"); # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } - } - } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/3-Remove.ps1 index 9203613c8b..a1d152f253 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntunePolicySets/3-Remove.ps1 @@ -6,20 +6,28 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName 'Microsoft365DSC' Node localhost { IntunePolicySets "Example" { - Credential = $Credscredential; DisplayName = "Example"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } - } - } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/1-Create.ps1 index 90aa706053..cd8b5aa222 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Intune Role Assigment. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,9 @@ Configuration Example RoleDefinition = '2d00d0fd-45e9-4166-904f-b76ac5eed2c7' RoleDefinitionDisplayName = 'This is my role' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/2-Update.ps1 index b0868deef1..85d8bef025 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Intune Role Assigment. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -25,7 +33,9 @@ Configuration Example RoleDefinition = '2d00d0fd-45e9-4166-904f-b76ac5eed2c7' RoleDefinitionDisplayName = 'This is my role' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/3-Remove.ps1 index b59e29c20b..435a84c5ea 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleAssignment/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Intune Role Assigment. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'test2' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/1-Create.ps1 index 3085cacc62..428331bd93 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/1-Create.ps1 @@ -5,9 +5,17 @@ This example creates a new Intune Role Definition. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example notallowedResourceActions = @() roleScopeTagIds = @('0', '1') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/2-Update.ps1 index c36d49b3c2..0a906add91 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/2-Update.ps1 @@ -5,9 +5,17 @@ This example creates a new Intune Role Definition. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,9 @@ Configuration Example notallowedResourceActions = @() roleScopeTagIds = @('0', '1') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/3-Remove.ps1 index aab7c83949..148d22b8b0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneRoleDefinition/3-Remove.ps1 @@ -5,9 +5,17 @@ This example creates a new Intune Role Definition. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,9 @@ Configuration Example { DisplayName = 'This is my role' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/1-Create.ps1 index 6661304509..f091d871b0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,9 @@ Configuration Example blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion = 'audit' Description = 'Post' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/2-Update.ps1 index e01b744a61..cfe81b8646 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -27,7 +35,9 @@ Configuration Example blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion = 'audit' Description = 'Post' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/3-Remove.ps1 index 94991c08ba..f81cd81644 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogASRRulesPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'asr 2' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/1-Create.ps1 index bca184106a..e95b1549ea 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,6 @@ Configuration Example { IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -85,6 +92,9 @@ Configuration Example } ); Technologies = "mdm"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/2-Update.ps1 index 09e976a362..7f967169e6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,7 +24,6 @@ Configuration Example { IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -85,6 +92,9 @@ Configuration Example } ); Technologies = "mdm"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/3-Remove.ps1 index c4289f4356..15c37f198a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneSettingCatalogCustomPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Ensure = "Absent"; Name = "Setting Catalog Raw - DSC"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 index 0877dfa3f7..68379a26ff 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,9 @@ Configuration Example Ssid = 'sf' WiFiSecurityType = 'wpaEnterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 index 60d20b13ba..61488fc4be 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -29,7 +37,9 @@ Configuration Example Ssid = 'sf' WiFiSecurityType = 'wpaEnterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 index c1d2c7bf8b..f72c764053 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'Wifi Configuration Androind Device' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/1-Create.ps1 index 7d4f7c06dc..42088afb09 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/1-Create.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,9 @@ Configuration Example ProxySettings = 'none' Ssid = 'MySSID - 3' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/2-Update.ps1 index 1c73cfae8b..19b90870a1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/2-Update.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,9 @@ Configuration Example ProxySettings = 'none' Ssid = 'MySSID - 3' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/3-Remove.ps1 index b398d434af..02cc87ad1f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/3-Remove.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example { DisplayName = 'Wifi - androidForWork' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/1-Create.ps1 index b5277ccc35..872caf044e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/1-Create.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +39,9 @@ Configuration Example Ssid = 'MySSID' WiFiSecurityType = 'open' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/2-Update.ps1 index d4a11464b2..7b84ecfa53 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/2-Update.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +39,9 @@ Configuration Example Ssid = 'MySSID' WiFiSecurityType = 'open' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/3-Remove.ps1 index a4fae55f0f..6eb8559ae8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/3-Remove.ps1 @@ -7,9 +7,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example { DisplayName = 'wifi - android BYOD' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/1-Create.ps1 index 6dc5eb92cf..51c5968963 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -33,7 +41,9 @@ Configuration Example Ssid = 'WiFi' WiFiSecurityType = 'wpa2Enterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/2-Update.ps1 index cf010c716e..21fee623dc 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -33,7 +41,9 @@ Configuration Example Ssid = 'WiFi' WiFiSecurityType = 'wpa2Enterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/3-Remove.ps1 index 72e2d84c20..e4b71c7ebd 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidForWork/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'AndroindForWork' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 index 603d28a065..7bf3b64df6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 index 9422aa2b40..52354137fb 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -30,7 +38,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 index 2ed5a3d069..363fd2438a 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyAndroidOpenSourceProject/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'wifi aosp' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/1-Create.ps1 index 6fec3854e9..98b8242414 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/2-Update.ps1 index ab3b58d347..94ac38ac7b 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/3-Remove.ps1 index e6056c55c1..2c328e3243 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyIOS/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'ios wifi' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/1-Create.ps1 index 037bf0fae7..9e8cfdc1b6 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +39,9 @@ Configuration Example Ssid = 'aaaaaaaaaaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/2-Update.ps1 index 05a5c2e3cf..bb15e2e707 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -31,7 +39,9 @@ Configuration Example Ssid = 'aaaaaaaaaaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/3-Remove.ps1 index 4034a8c8cb..4693093d04 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyMacOS/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'macos wifi' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/1-Create.ps1 index 4d23fef70a..9247c56522 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -34,7 +42,9 @@ Configuration Example Ssid = 'ssid' WifiSecurityType = 'wpa2Personal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/2-Update.ps1 index 5c6fca22a6..778e72fa36 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -34,7 +42,9 @@ Configuration Example Ssid = 'ssid' WifiSecurityType = 'wpa2Personal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/3-Remove.ps1 index e5b8d15dce..1eba552a56 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWifiConfigurationPolicyWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'win10 wifi - revised' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/1-Create.ps1 index 27d64d06bc..b9fa5ee53d 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,6 @@ Configuration Example IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { Assignments = @(); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = ""; DeviceType = "windowsPc"; @@ -35,6 +42,9 @@ Configuration Example SkipKeyboardSelectionPage = $False UserType = 'standard' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/2-Update.ps1 index 4671894531..199162b0e1 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -17,7 +25,6 @@ Configuration Example IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { Assignments = @(); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = ""; DeviceType = "windowsPc"; @@ -35,6 +42,9 @@ Configuration Example SkipKeyboardSelectionPage = $False UserType = 'standard' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/3-Remove.ps1 index 46253c4281..5d6f8aaa5e 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { - Credential = $Credscredential; DisplayName = "hybrid"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/1-Create.ps1 index a3c50bf3d7..e0377a5d49 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = "test"; DeviceType = "windowsPc"; @@ -39,6 +46,9 @@ Configuration Example SkipKeyboardSelectionPage = $True UserType = 'administrator' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/2-Update.ps1 index a57c990e65..6d662750cf 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -22,7 +30,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = "test"; DeviceType = "windowsPc"; @@ -39,6 +46,9 @@ Configuration Example SkipKeyboardSelectionPage = $True UserType = 'administrator' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/3-Remove.ps1 index 436ac5c650..e3315f9451 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsAutopilotDeploymentProfileAzureADJoined/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -16,9 +24,11 @@ Configuration Example { IntuneWindowsAutopilotDeploymentProfileAzureADJoined 'Example' { - Credential = $Credscredential; DisplayName = "AAD"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/1-Create.ps1 index dd3eb15de7..a68c6c2010 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -50,7 +58,9 @@ Configuration Example ProtectionUnderLockConfigRequired = $False RevokeOnUnenrollDisabled = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/2-Update.ps1 index 4c921dd3d9..8a4f78f2d4 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -50,7 +58,9 @@ Configuration Example ProtectionUnderLockConfigRequired = $False RevokeOnUnenrollDisabled = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/3-Remove.ps1 index 3739185cd6..ef4632a3ab 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'WIP' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/1-Create.ps1 index bb31ab852c..54cafb9028 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example Description = 'test 2' approvalType = 'manual' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/2-Update.ps1 index efe6c0eaa5..db00ad80f8 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -21,7 +29,9 @@ Configuration Example Description = 'test 3' # Updated property approvalType = 'manual' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/3-Remove.ps1 index 25a5c12adb..712321c6cf 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -19,7 +27,9 @@ Configuration Example DisplayName = 'Driver Update Example' Description = 'test 2' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/1-Create.ps1 index bda5ac792b..fe1472dc9f 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +32,9 @@ Configuration Example OfferStartDateTimeInUTC = '2023-02-03T16:00:00.0000000+00:00' } Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/2-Update.ps1 index 80dd2d592d..639acc47c0 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -24,7 +32,9 @@ Configuration Example OfferStartDateTimeInUTC = '2023-02-05T16:00:00.0000000+00:00' # Updated Property } Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/3-Remove.ps1 index 3eeeb73752..4ac9c39918 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'WUfB Feature -dsc' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 index 98a73d832a..f152fb7232 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,9 @@ Configuration Example } RoleScopeTagIds = @("0") Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 index 918b91d56c..77b1e4f8ff 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -32,7 +40,9 @@ Configuration Example } RoleScopeTagIds = @("0") Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 index 53b880993a..ac14be6e03 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'Windows Quality Update' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/1-Create.ps1 index e93eba2279..abce1a1cc3 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/1-Create.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/1-Create.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -56,7 +64,9 @@ Configuration Example UserPauseAccess = 'enabled' UserWindowsUpdateScanAccess = 'enabled' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/2-Update.ps1 index 3cb0ebeb9d..95c1903a05 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/2-Update.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/2-Update.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -56,7 +64,9 @@ Configuration Example UserPauseAccess = 'enabled' UserWindowsUpdateScanAccess = 'enabled' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/3-Remove.ps1 index 4ebc935536..a4e5286984 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/3-Remove.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/3-Remove.ps1 @@ -6,9 +6,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -18,7 +26,9 @@ Configuration Example { DisplayName = 'WUfB Ring' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } From ca0f0860f5266a5fb178f57e92d03b01746ba939 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 17 Jul 2024 20:20:55 +0000 Subject: [PATCH 215/273] Updated Resources and Cmdlet documentation pages --- .../intune/IntuneASRRulesPolicyWindows10.md | 54 +++++++++++++---- ...ocalAdministratorPasswordSolutionPolicy.md | 54 +++++++++++++---- ...rotectionLocalUserGroupMembershipPolicy.md | 54 +++++++++++++---- .../intune/IntuneAccountProtectionPolicy.md | 54 +++++++++++++---- ...eAntivirusPolicyWindows10SettingCatalog.md | 54 +++++++++++++---- .../IntuneAppConfigurationDevicePolicy.md | 57 +++++++++++++----- .../intune/IntuneAppConfigurationPolicy.md | 54 +++++++++++++---- .../IntuneAppProtectionPolicyAndroid.md | 57 +++++++++++++----- .../intune/IntuneAppProtectionPolicyiOS.md | 54 +++++++++++++---- ...IntuneApplicationControlPolicyWindows10.md | 54 +++++++++++++---- ...uctionRulesPolicyWindows10ConfigManager.md | 54 +++++++++++++---- ...eDeviceAndAppManagementAssignmentFilter.md | 54 +++++++++++++---- .../resources/intune/IntuneDeviceCategory.md | 54 +++++++++++++---- .../intune/IntuneDeviceCleanupRule.md | 18 ++++-- .../IntuneDeviceCompliancePolicyAndroid.md | 54 +++++++++++++---- ...eviceCompliancePolicyAndroidDeviceOwner.md | 54 +++++++++++++---- ...eviceCompliancePolicyAndroidWorkProfile.md | 54 +++++++++++++---- .../IntuneDeviceCompliancePolicyMacOS.md | 54 +++++++++++++---- .../IntuneDeviceCompliancePolicyWindows10.md | 54 +++++++++++++---- .../intune/IntuneDeviceCompliancePolicyiOs.md | 57 +++++++++++++----- ...onAdministrativeTemplatePolicyWindows10.md | 54 +++++++++++++---- ...eviceConfigurationCustomPolicyWindows10.md | 54 +++++++++++++---- ...derForEndpointOnboardingPolicyWindows10.md | 54 +++++++++++++---- ...tionDeliveryOptimizationPolicyWindows10.md | 54 +++++++++++++---- ...eConfigurationDomainJoinPolicyWindows10.md | 54 +++++++++++++---- ...onfigurationEmailProfilePolicyWindows10.md | 54 +++++++++++++---- ...rationEndpointProtectionPolicyWindows10.md | 54 +++++++++++++---- ...urationFirmwareInterfacePolicyWindows10.md | 54 +++++++++++++---- ...hMonitoringConfigurationPolicyWindows10.md | 54 +++++++++++++---- ...rationIdentityProtectionPolicyWindows10.md | 54 +++++++++++++---- ...onImportedPfxCertificatePolicyWindows10.md | 54 +++++++++++++---- ...DeviceConfigurationKioskPolicyWindows10.md | 54 +++++++++++++---- ...igurationNetworkBoundaryPolicyWindows10.md | 54 +++++++++++++---- ...igurationPkcsCertificatePolicyWindows10.md | 54 +++++++++++++---- ...eDeviceConfigurationPlatformScriptMacOS.md | 56 ++++++++++++----- ...eviceConfigurationPlatformScriptWindows.md | 57 +++++++++++++----- ...urationPolicyAndroidDeviceAdministrator.md | 54 +++++++++++++---- ...ceConfigurationPolicyAndroidDeviceOwner.md | 54 +++++++++++++---- ...igurationPolicyAndroidOpenSourceProject.md | 54 +++++++++++++---- ...ceConfigurationPolicyAndroidWorkProfile.md | 54 +++++++++++++---- .../IntuneDeviceConfigurationPolicyMacOS.md | 54 +++++++++++++---- ...ntuneDeviceConfigurationPolicyWindows10.md | 54 +++++++++++++---- .../IntuneDeviceConfigurationPolicyiOS.md | 54 +++++++++++++---- ...igurationScepCertificatePolicyWindows10.md | 54 +++++++++++++---- ...gurationSecureAssessmentPolicyWindows10.md | 54 +++++++++++++---- ...urationSharedMultiDevicePolicyWindows10.md | 54 +++++++++++++---- ...rationTrustedCertificatePolicyWindows10.md | 54 +++++++++++++---- ...neDeviceConfigurationVpnPolicyWindows10.md | 54 +++++++++++++---- ...ConfigurationWindowsTeamPolicyWindows10.md | 54 +++++++++++++---- ...onfigurationWiredNetworkPolicyWindows10.md | 54 +++++++++++++---- .../IntuneDeviceEnrollmentLimitRestriction.md | 54 +++++++++++++---- ...tuneDeviceEnrollmentPlatformRestriction.md | 55 +++++++++++++---- ...tuneDeviceEnrollmentStatusPageWindows10.md | 54 +++++++++++++---- ...ntuneDeviceManagementComplianceSettings.md | 18 ++++-- .../intune/IntuneDeviceRemediation.md | 56 ++++++++++++----- .../intune/IntuneDiskEncryptionMacOS.md | 54 +++++++++++++---- .../intune/IntuneDiskEncryptionWindows10.md | 54 +++++++++++++---- ...ointDetectionAndResponsePolicyWindows10.md | 54 +++++++++++++---- ...ProtectionPolicyWindows10SettingCatalog.md | 54 +++++++++++++---- .../docs/resources/intune/IntunePolicySets.md | 60 +++++++++++++------ .../resources/intune/IntuneRoleAssignment.md | 54 +++++++++++++---- .../resources/intune/IntuneRoleDefinition.md | 54 +++++++++++++---- ...neSettingCatalogASRRulesPolicyWindows10.md | 54 +++++++++++++---- ...tuneSettingCatalogCustomPolicyWindows10.md | 54 +++++++++++++---- ...urationPolicyAndroidDeviceAdministrator.md | 54 +++++++++++++---- ...ationPolicyAndroidEnterpriseDeviceOwner.md | 54 +++++++++++++---- ...ationPolicyAndroidEnterpriseWorkProfile.md | 54 +++++++++++++---- ...neWifiConfigurationPolicyAndroidForWork.md | 54 +++++++++++++---- ...igurationPolicyAndroidOpenSourceProject.md | 54 +++++++++++++---- .../IntuneWifiConfigurationPolicyIOS.md | 54 +++++++++++++---- .../IntuneWifiConfigurationPolicyMacOS.md | 54 +++++++++++++---- .../IntuneWifiConfigurationPolicyWindows10.md | 54 +++++++++++++---- ...lotDeploymentProfileAzureADHybridJoined.md | 54 +++++++++++++---- ...AutopilotDeploymentProfileAzureADJoined.md | 54 +++++++++++++---- ...ionProtectionPolicyWindows10MdmEnrolled.md | 54 +++++++++++++---- ...ForBusinessDriverUpdateProfileWindows10.md | 54 +++++++++++++---- ...orBusinessFeatureUpdateProfileWindows10.md | 54 +++++++++++++---- ...orBusinessQualityUpdateProfileWindows10.md | 54 +++++++++++++---- ...teForBusinessRingUpdateProfileWindows10.md | 54 +++++++++++++---- 79 files changed, 3262 insertions(+), 955 deletions(-) diff --git a/docs/docs/resources/intune/IntuneASRRulesPolicyWindows10.md b/docs/docs/resources/intune/IntuneASRRulesPolicyWindows10.md index a43861f37e..0134626168 100644 --- a/docs/docs/resources/intune/IntuneASRRulesPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneASRRulesPolicyWindows10.md @@ -93,9 +93,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -126,7 +134,9 @@ Configuration Example UntrustedExecutableType = 'block' UntrustedUSBProcessType = 'block' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -141,9 +151,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -174,7 +192,9 @@ Configuration Example UntrustedExecutableType = 'block' UntrustedUSBProcessType = 'block' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -189,9 +209,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -201,7 +229,9 @@ Configuration Example { DisplayName = 'test' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md b/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md index f83473b8d7..e19cc33b08 100644 --- a/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md +++ b/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md @@ -84,9 +84,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -97,7 +105,6 @@ Configuration Example DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -108,6 +115,9 @@ Configuration Example PasswordAgeDays_AAD = 10; AdministratorAccountName = "Administrator"; PasswordAgeDays = 20; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -122,9 +132,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -135,7 +153,6 @@ Configuration Example DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -146,6 +163,9 @@ Configuration Example PasswordAgeDays_AAD = 15; # Updated Property AdministratorAccountName = "Administrator"; PasswordAgeDays = 20; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -160,9 +180,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -173,7 +201,9 @@ Configuration Example DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Absent"; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAccountProtectionLocalUserGroupMembershipPolicy.md b/docs/docs/resources/intune/IntuneAccountProtectionLocalUserGroupMembershipPolicy.md index d48318c77a..25709f754b 100644 --- a/docs/docs/resources/intune/IntuneAccountProtectionLocalUserGroupMembershipPolicy.md +++ b/docs/docs/resources/intune/IntuneAccountProtectionLocalUserGroupMembershipPolicy.md @@ -85,9 +85,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -98,7 +106,6 @@ Configuration Example DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -113,6 +120,9 @@ Configuration Example UserSelectionType = 'users' } ); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -127,9 +137,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -140,7 +158,6 @@ Configuration Example DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @(); # Updated Property LocalUserGroupCollection = @( MSFT_IntuneAccountProtectionLocalUserGroupCollection{ @@ -150,6 +167,9 @@ Configuration Example UserSelectionType = 'users' } ); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -164,9 +184,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -177,7 +205,9 @@ Configuration Example DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Absent"; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAccountProtectionPolicy.md b/docs/docs/resources/intune/IntuneAccountProtectionPolicy.md index 58e3210822..2da74fb4a8 100644 --- a/docs/docs/resources/intune/IntuneAccountProtectionPolicy.md +++ b/docs/docs/resources/intune/IntuneAccountProtectionPolicy.md @@ -88,9 +88,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -104,7 +112,9 @@ Configuration Example PinMinimumLength = 5 PinSpecialCharactersUsage = 'required' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -119,9 +129,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -135,7 +153,9 @@ Configuration Example PinMinimumLength = 10 # Updated Property PinSpecialCharactersUsage = 'required' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -150,9 +170,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -162,7 +190,9 @@ Configuration Example { DisplayName = 'test' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md b/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md index f06177ddeb..535b6c4d86 100644 --- a/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md +++ b/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md @@ -145,9 +145,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -167,7 +175,9 @@ Configuration Example excludedprocesses = @('processes.exe', 'process2.exe') templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -182,9 +192,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -204,7 +222,9 @@ Configuration Example excludedprocesses = @('processes.exe', 'process3.exe') # Updated Property templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -219,9 +239,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -231,7 +259,9 @@ Configuration Example { DisplayName = 'av exclusions' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAppConfigurationDevicePolicy.md b/docs/docs/resources/intune/IntuneAppConfigurationDevicePolicy.md index 1b5e27d2d3..319165e8e6 100644 --- a/docs/docs/resources/intune/IntuneAppConfigurationDevicePolicy.md +++ b/docs/docs/resources/intune/IntuneAppConfigurationDevicePolicy.md @@ -101,9 +101,17 @@ This example creates a new App Configuration Device Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -111,7 +119,6 @@ Configuration Example { IntuneAppConfigurationDevicePolicy "IntuneAppConfigurationDevicePolicy-Example" { - Credential = $Credscredential; Assignments = @(); Description = ""; DisplayName = "Example"; @@ -124,7 +131,9 @@ Configuration Example ProfileApplicability = "default" RoleScopeTagIds = @("0"); TargetedMobileApps = @(""); - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -138,9 +147,17 @@ This example updates an App Configuration Device Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -148,7 +165,6 @@ Configuration Example { IntuneAppConfigurationDevicePolicy "IntuneAppConfigurationDevicePolicy-Example" { - Credential = $Credscredential; Assignments = @(); Description = ""; DisplayName = "Example"; @@ -166,7 +182,9 @@ Configuration Example ProfileApplicability = "default" RoleScopeTagIds = @("0"); TargetedMobileApps = @(""); - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -180,9 +198,17 @@ This example deletes a new App Configuration Device Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -190,12 +216,13 @@ Configuration Example { IntuneAppConfigurationDevicePolicy "IntuneAppConfigurationDevicePolicy-Example" { - Credential = $Credscredential; Description = ""; DisplayName = "Example"; Ensure = "Present"; Id = "0000000-0000-0000-0000-000000000000"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAppConfigurationPolicy.md b/docs/docs/resources/intune/IntuneAppConfigurationPolicy.md index aab0389510..c82c22102d 100644 --- a/docs/docs/resources/intune/IntuneAppConfigurationPolicy.md +++ b/docs/docs/resources/intune/IntuneAppConfigurationPolicy.md @@ -81,9 +81,17 @@ This example creates a new App Configuration Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -93,7 +101,6 @@ Configuration Example { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; CustomSettings = @( MSFT_IntuneAppConfigurationPolicyCustomSetting { name = 'com.microsoft.intune.mam.managedbrowser.BlockListURLs' @@ -108,6 +115,9 @@ Configuration Example value = 'TestValue' }); Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -121,9 +131,17 @@ This example creates a new App Configuration Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -133,7 +151,6 @@ Configuration Example { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; CustomSettings = @( MSFT_IntuneAppConfigurationPolicyCustomSetting { name = 'com.microsoft.intune.mam.managedbrowser.BlockListURLs' @@ -148,6 +165,9 @@ Configuration Example value = 'TestValue2' }); Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -161,9 +181,17 @@ This example creates a new App Configuration Policy. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -173,8 +201,10 @@ Configuration Example { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAppProtectionPolicyAndroid.md b/docs/docs/resources/intune/IntuneAppProtectionPolicyAndroid.md index 3479c429bf..d3a1ef135e 100644 --- a/docs/docs/resources/intune/IntuneAppProtectionPolicyAndroid.md +++ b/docs/docs/resources/intune/IntuneAppProtectionPolicyAndroid.md @@ -100,9 +100,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -131,11 +139,12 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } - ``` ### Example 2 @@ -148,9 +157,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -179,11 +196,12 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } - ``` ### Example 3 @@ -196,9 +214,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -208,10 +234,11 @@ Configuration Example { DisplayName = 'My DSC Android App Protection Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } - ``` diff --git a/docs/docs/resources/intune/IntuneAppProtectionPolicyiOS.md b/docs/docs/resources/intune/IntuneAppProtectionPolicyiOS.md index cb1bcc00fb..742ce453d8 100644 --- a/docs/docs/resources/intune/IntuneAppProtectionPolicyiOS.md +++ b/docs/docs/resources/intune/IntuneAppProtectionPolicyiOS.md @@ -106,9 +106,17 @@ This example creates a new App ProtectionPolicy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -141,7 +149,9 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -155,9 +165,17 @@ This example creates a new App ProtectionPolicy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -190,7 +208,9 @@ Configuration Example SaveAsBlocked = $True SimplePinBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -204,9 +224,17 @@ This example creates a new App ProtectionPolicy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -216,7 +244,9 @@ Configuration Example { DisplayName = 'My DSC iOS App Protection Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneApplicationControlPolicyWindows10.md b/docs/docs/resources/intune/IntuneApplicationControlPolicyWindows10.md index ea295e4c90..a45a81497f 100644 --- a/docs/docs/resources/intune/IntuneApplicationControlPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneApplicationControlPolicyWindows10.md @@ -75,9 +75,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -91,7 +99,9 @@ Configuration Example SmartScreenBlockOverrideForFiles = $True SmartScreenEnableInShell = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -107,9 +117,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -123,7 +141,9 @@ Configuration Example SmartScreenBlockOverrideForFiles = $False # Updated Property SmartScreenEnableInShell = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -139,9 +159,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -152,7 +180,9 @@ Configuration Example DisplayName = 'Windows 10 Desktops' Description = 'All windows 10 Desktops' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md b/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md index 38b4e579d7..4c2dbf4fd5 100644 --- a/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md +++ b/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md @@ -95,9 +95,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +117,9 @@ Configuration Example blockadobereaderfromcreatingchildprocesses = "block"; Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -124,9 +134,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -138,7 +156,9 @@ Configuration Example blockadobereaderfromcreatingchildprocesses = "audit"; # Updated Property Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -153,9 +173,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -165,7 +193,9 @@ Configuration Example { DisplayName = 'asr ConfigMgr' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceAndAppManagementAssignmentFilter.md b/docs/docs/resources/intune/IntuneDeviceAndAppManagementAssignmentFilter.md index da57e49e56..869765baaa 100644 --- a/docs/docs/resources/intune/IntuneDeviceAndAppManagementAssignmentFilter.md +++ b/docs/docs/resources/intune/IntuneDeviceAndAppManagementAssignmentFilter.md @@ -61,9 +61,17 @@ This example creates a new Device and App Management Assignment Filter. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $intuneAdmin + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -76,7 +84,9 @@ Configuration Example Platform = 'windows10AndLater' Rule = "(device.manufacturer -ne `"Microsoft Corporation`")" Ensure = 'Present' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -90,9 +100,17 @@ This example creates a new Device and App Management Assignment Filter. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $intuneAdmin + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -105,7 +123,9 @@ Configuration Example Platform = 'windows10AndLater' Rule = "(device.manufacturer -ne `"Apple`")" # Updated Property Ensure = 'Present' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -119,9 +139,17 @@ This example creates a new Device and App Management Assignment Filter. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $intuneAdmin + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -131,7 +159,9 @@ Configuration Example { DisplayName = 'Test Device Filter' Ensure = 'Absent' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCategory.md b/docs/docs/resources/intune/IntuneDeviceCategory.md index 6bd5ea1b4e..ef79691a7d 100644 --- a/docs/docs/resources/intune/IntuneDeviceCategory.md +++ b/docs/docs/resources/intune/IntuneDeviceCategory.md @@ -56,9 +56,17 @@ This example creates a new Device Category. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -69,7 +77,9 @@ Configuration Example DisplayName = 'Contoso' Description = 'Contoso Category' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -83,9 +93,17 @@ This example creates a new Device Category. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -96,7 +114,9 @@ Configuration Example DisplayName = 'Contoso' Description = 'Contoso Category - Updated' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -110,9 +130,17 @@ This example creates a new Device Category. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -122,7 +150,9 @@ Configuration Example { DisplayName = 'Contoso' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCleanupRule.md b/docs/docs/resources/intune/IntuneDeviceCleanupRule.md index e6a1755a3d..525c6351cc 100644 --- a/docs/docs/resources/intune/IntuneDeviceCleanupRule.md +++ b/docs/docs/resources/intune/IntuneDeviceCleanupRule.md @@ -57,9 +57,17 @@ This example sets the device cleanup rule. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +79,9 @@ Configuration Example IsSingleInstance = 'Yes' DeviceInactivityBeforeRetirementInDays = 25 # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroid.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroid.md index b6ba7e74d0..f80985d6ae 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroid.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroid.md @@ -262,9 +262,17 @@ This example creates a new Device Compliance Policy for Android devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -294,7 +302,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -308,9 +318,17 @@ This example creates a new Device Compliance Policy for Android devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -340,7 +358,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -354,9 +374,17 @@ This example creates a new Device Compliance Policy for Android devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -366,7 +394,9 @@ Configuration Example { DisplayName = 'Test Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidDeviceOwner.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidDeviceOwner.md index e82ef37850..5077132b8a 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidDeviceOwner.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidDeviceOwner.md @@ -206,9 +206,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -234,7 +242,9 @@ Configuration Example PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -249,9 +259,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -277,7 +295,9 @@ Configuration Example PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -292,9 +312,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -320,7 +348,9 @@ Configuration Example PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidWorkProfile.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidWorkProfile.md index 3ad55ebaba..0ac8a37438 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidWorkProfile.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyAndroidWorkProfile.md @@ -214,9 +214,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -244,7 +252,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -258,9 +268,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -288,7 +306,9 @@ Configuration Example SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -302,9 +322,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -314,7 +342,9 @@ Configuration Example { DisplayName = 'Test Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyMacOS.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyMacOS.md index 537b3b1a93..1dbafd1602 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyMacOS.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyMacOS.md @@ -171,9 +171,17 @@ This example creates a new Device Comliance Policy for MacOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -201,7 +209,9 @@ Configuration Example FirewallBlockAllIncoming = $False FirewallEnableStealthMode = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -215,9 +225,17 @@ This example creates a new Device Comliance Policy for MacOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -245,7 +263,9 @@ Configuration Example FirewallBlockAllIncoming = $False FirewallEnableStealthMode = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -259,9 +279,17 @@ This example creates a new Device Comliance Policy for MacOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -271,7 +299,9 @@ Configuration Example { DisplayName = 'MacOS DSC Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md index 0f91d8a81d..f9249a42a4 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md @@ -287,9 +287,17 @@ This example creates a new Device Comliance Policy for Windows. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -332,7 +340,9 @@ Configuration Example deviceCompliancePolicyScript = $null ValidOperatingSystemBuildRanges = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -346,9 +356,17 @@ This example creates a new Device Comliance Policy for Windows. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -391,7 +409,9 @@ Configuration Example deviceCompliancePolicyScript = $null ValidOperatingSystemBuildRanges = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -405,9 +425,17 @@ This example creates a new Device Comliance Policy for Windows. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -417,7 +445,9 @@ Configuration Example { DisplayName = 'Windows 10 DSC Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyiOs.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyiOs.md index cfbcb3c725..b52a7bcd11 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyiOs.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyiOs.md @@ -100,9 +100,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -127,8 +135,9 @@ Configuration Example DeviceThreatProtectionRequiredSecurityLevel = 'medium' ManagedEmailProfileRequired = $True Ensure = 'Present' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -142,9 +151,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -169,8 +186,9 @@ Configuration Example DeviceThreatProtectionRequiredSecurityLevel = 'medium' ManagedEmailProfileRequired = $True Ensure = 'Present' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -184,9 +202,17 @@ This example creates a new Device Compliance Policy for iOs devices Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -196,8 +222,9 @@ Configuration Example { DisplayName = 'Test iOS Device Compliance Policy' Ensure = 'Absent' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.md index 7073741793..b40d25a38c 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.md @@ -129,9 +129,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -139,7 +147,6 @@ Configuration Example { IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments { @@ -261,6 +268,9 @@ Configuration Example DisplayName = 'admin template' Ensure = 'Present' PolicyConfigurationIngestionType = 'unknown' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -275,9 +285,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -285,7 +303,6 @@ Configuration Example { IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments { @@ -407,6 +424,9 @@ Configuration Example DisplayName = 'admin template' Ensure = 'Present' PolicyConfigurationIngestionType = 'builtIn' # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -421,9 +441,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -431,9 +459,11 @@ Configuration Example { IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential DisplayName = 'admin template' Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md index 8dc5f537a4..1cab65c261 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md @@ -90,9 +90,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -106,7 +114,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; OmaSettings = @( @@ -130,6 +137,9 @@ Configuration Example } ); SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -144,9 +154,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -160,7 +178,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; OmaSettings = @( @@ -184,6 +201,9 @@ Configuration Example } ); SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -198,9 +218,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -208,9 +236,11 @@ Configuration Example { IntuneDeviceConfigurationCustomPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.md index 442a3a4a95..4cb1a2d2a3 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.md @@ -79,9 +79,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -99,10 +107,12 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; EnableExpeditedTelemetryReporting = $True; Ensure = "Present"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -117,9 +127,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -136,10 +154,12 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; EnableExpeditedTelemetryReporting = $True; Ensure = "Present"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -154,9 +174,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -164,9 +192,11 @@ Configuration Example { IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.md index 0a8ddae0ed..0bf2db5749 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.md @@ -135,9 +135,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -160,7 +168,6 @@ Configuration Example CacheServerBackgroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerForegroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerHostNames = @("domain.com"); - Credential = $Credscredential; DeliveryOptimizationMode = "httpWithPeeringPrivateGroup"; DisplayName = "delivery optimisation"; Ensure = "Present"; @@ -182,6 +189,9 @@ Configuration Example RestrictPeerSelectionBy = "subnetMask"; SupportsScopeTags = $True; VpnPeerCaching = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -196,9 +206,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -221,7 +239,6 @@ Configuration Example CacheServerBackgroundDownloadFallbackToHttpDelayInSeconds = 5; # Updated Property CacheServerForegroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerHostNames = @("domain.com"); - Credential = $Credscredential; DeliveryOptimizationMode = "httpWithPeeringPrivateGroup"; DisplayName = "delivery optimisation"; Ensure = "Present"; @@ -243,6 +260,9 @@ Configuration Example RestrictPeerSelectionBy = "subnetMask"; SupportsScopeTags = $True; VpnPeerCaching = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -257,9 +277,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -267,9 +295,11 @@ Configuration Example { IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "delivery optimisation"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationDomainJoinPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationDomainJoinPolicyWindows10.md index 5683f64725..a705947392 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationDomainJoinPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationDomainJoinPolicyWindows10.md @@ -77,9 +77,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -96,11 +104,13 @@ Configuration Example ); ComputerNameStaticPrefix = "WK-"; ComputerNameSuffixRandomCharCount = 12; - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Present"; OrganizationalUnit = "OU=workstation,CN=domain,CN=com"; SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -115,9 +125,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -134,11 +152,13 @@ Configuration Example ); ComputerNameStaticPrefix = "WK-"; ComputerNameSuffixRandomCharCount = 12; - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Present"; OrganizationalUnit = "OU=workstation,CN=domain,CN=com"; SupportsScopeTags = $False; # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -153,9 +173,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -163,9 +191,11 @@ Configuration Example { IntuneDeviceConfigurationDomainJoinPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationEmailProfilePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationEmailProfilePolicyWindows10.md index abe3499923..d798e86d27 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationEmailProfilePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationEmailProfilePolicyWindows10.md @@ -85,9 +85,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -102,7 +110,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "email"; DurationOfEmailToSync = "unlimited"; EmailAddressSource = "primarySmtpAddress"; @@ -113,6 +120,9 @@ Configuration Example SyncCalendar = $True; SyncContacts = $True; SyncTasks = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -127,9 +137,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -144,7 +162,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "email"; DurationOfEmailToSync = "unlimited"; EmailAddressSource = "primarySmtpAddress"; @@ -155,6 +172,9 @@ Configuration Example SyncCalendar = $True; SyncContacts = $True; SyncTasks = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -169,9 +189,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -179,9 +207,11 @@ Configuration Example { IntuneDeviceConfigurationEmailProfilePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "email"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md index c1c6bddc91..86f72ab269 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md @@ -435,9 +435,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -508,7 +516,6 @@ Configuration Example StartupAuthenticationTpmKeyUsage = 'allowed' StartupAuthenticationBlockWithoutTpmChip = $False }; - Credential = $Credscredential; DefenderAdditionalGuardedFolders = @(); DefenderAdobeReaderLaunchChildProcess = "notConfigured"; DefenderAdvancedRansomewareProtectionType = "notConfigured"; @@ -670,6 +677,9 @@ Configuration Example XboxServicesLiveAuthManagerServiceStartupMode = "manual"; XboxServicesLiveGameSaveServiceStartupMode = "manual"; XboxServicesLiveNetworkingServiceStartupMode = "manual"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -684,9 +694,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -757,7 +775,6 @@ Configuration Example StartupAuthenticationTpmKeyUsage = 'allowed' StartupAuthenticationBlockWithoutTpmChip = $False }; - Credential = $Credscredential; DefenderAdditionalGuardedFolders = @(); DefenderAdobeReaderLaunchChildProcess = "notConfigured"; DefenderAdvancedRansomewareProtectionType = "notConfigured"; @@ -919,6 +936,9 @@ Configuration Example XboxServicesLiveAuthManagerServiceStartupMode = "manual"; XboxServicesLiveGameSaveServiceStartupMode = "manual"; XboxServicesLiveNetworkingServiceStartupMode = "manual"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -933,9 +953,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -944,8 +972,10 @@ Configuration Example IntuneDeviceConfigurationEndpointProtectionPolicyWindows10 'Example' { DisplayName = "endpoint protection legacy - dsc v2.0"; - Credential = $Credscredential; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.md index 3f44c28cd7..6ec96ea63a 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.md @@ -94,9 +94,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -115,7 +123,6 @@ Configuration Example BootFromExternalMedia = "notConfigured"; Cameras = "enabled"; ChangeUefiSettingsPermission = "notConfiguredOnly"; - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Present"; FrontCamera = "enabled"; @@ -135,6 +142,9 @@ Configuration Example WiFi = "notConfigured"; WindowsPlatformBinaryTable = "enabled"; WirelessWideAreaNetwork = "notConfigured"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -149,9 +159,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -170,7 +188,6 @@ Configuration Example BootFromExternalMedia = "notConfigured"; Cameras = "enabled"; # Updated Property ChangeUefiSettingsPermission = "notConfiguredOnly"; - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Present"; FrontCamera = "enabled"; @@ -190,6 +207,9 @@ Configuration Example WiFi = "notConfigured"; WindowsPlatformBinaryTable = "enabled"; WirelessWideAreaNetwork = "notConfigured"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -204,9 +224,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -214,9 +242,11 @@ Configuration Example { IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.md index ac8d7b57a4..b22ae76162 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.md @@ -76,9 +76,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -94,10 +102,12 @@ Configuration Example } ); ConfigDeviceHealthMonitoringScope = @("bootPerformance","windowsUpdates"); - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Present"; SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -112,9 +122,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -130,10 +148,12 @@ Configuration Example } ); ConfigDeviceHealthMonitoringScope = @("bootPerformance","windowsUpdates"); - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Present"; SupportsScopeTags = $False; # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -148,9 +168,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -158,9 +186,11 @@ Configuration Example { IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.md index 295b97f7ec..2d9c1e50bd 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.md @@ -87,9 +87,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -103,7 +111,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "identity protection"; EnhancedAntiSpoofingForFacialFeaturesEnabled = $True; Ensure = "Present"; @@ -121,6 +128,9 @@ Configuration Example UseCertificatesForOnPremisesAuthEnabled = $True; UseSecurityKeyForSignin = $True; WindowsHelloForBusinessBlocked = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -135,9 +145,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -151,7 +169,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "identity protection"; EnhancedAntiSpoofingForFacialFeaturesEnabled = $True; Ensure = "Present"; @@ -169,6 +186,9 @@ Configuration Example UseCertificatesForOnPremisesAuthEnabled = $True; UseSecurityKeyForSignin = $True; WindowsHelloForBusinessBlocked = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -183,9 +203,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -193,9 +221,11 @@ Configuration Example { IntuneDeviceConfigurationIdentityProtectionPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "identity protection"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.md index 8162f3d521..cb9e49e688 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.md @@ -79,9 +79,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -97,7 +105,6 @@ Configuration Example ); CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 1; - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Present"; IntendedPurpose = "unassigned"; @@ -105,6 +112,9 @@ Configuration Example RenewalThresholdPercentage = 50; SubjectAlternativeNameType = "emailAddress"; SubjectNameFormat = "commonName"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -119,9 +129,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -137,7 +155,6 @@ Configuration Example ); CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 1; - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Present"; IntendedPurpose = "unassigned"; @@ -145,6 +162,9 @@ Configuration Example RenewalThresholdPercentage = 60; # Updated Property SubjectAlternativeNameType = "emailAddress"; SubjectNameFormat = "commonName"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -159,9 +179,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -169,9 +197,11 @@ Configuration Example { IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationKioskPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationKioskPolicyWindows10.md index 276d034e81..998029d885 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationKioskPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationKioskPolicyWindows10.md @@ -203,9 +203,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -219,7 +227,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "kiosk"; EdgeKioskEnablePublicBrowsing = $False; Ensure = "Present"; @@ -259,6 +266,9 @@ Configuration Example Recurrence = 'daily' DayofWeek = 'sunday' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -273,9 +283,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -289,7 +307,6 @@ Configuration Example dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "kiosk"; EdgeKioskEnablePublicBrowsing = $False; # Updated Property Ensure = "Present"; @@ -329,6 +346,9 @@ Configuration Example Recurrence = 'daily' DayofWeek = 'sunday' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -343,9 +363,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -353,9 +381,11 @@ Configuration Example { IntuneDeviceConfigurationKioskPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "kiosk"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.md index 6223fcad87..756039e8b5 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.md @@ -109,9 +109,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +133,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Present"; SupportsScopeTags = $True; @@ -144,6 +151,9 @@ Configuration Example ) NeutralDomainResources = @() }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -158,9 +168,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -174,7 +192,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Present"; SupportsScopeTags = $False; # Updated Property @@ -193,6 +210,9 @@ Configuration Example ) NeutralDomainResources = @() }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -207,9 +227,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -217,9 +245,11 @@ Configuration Example { IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.md index 6007fbc0c6..150c6e599a 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.md @@ -104,9 +104,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -126,7 +134,6 @@ Configuration Example CertificateValidityPeriodValue = 1; CertificationAuthority = "CA=Name"; CertificationAuthorityName = "Test"; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -140,6 +147,9 @@ Configuration Example SubjectAlternativeNameType = "none"; SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -154,9 +164,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -176,7 +194,6 @@ Configuration Example CertificateValidityPeriodValue = 1; CertificationAuthority = "CA=Name"; CertificationAuthorityName = "Test"; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -190,6 +207,9 @@ Configuration Example SubjectAlternativeNameType = "none"; SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -204,9 +224,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -214,9 +242,11 @@ Configuration Example { IntuneDeviceConfigurationPkcsCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "PKCS"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptMacOS.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptMacOS.md index 022d2c4211..00ee60fb40 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptMacOS.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptMacOS.md @@ -79,9 +79,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -95,7 +103,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; BlockExecutionNotifications = $False; @@ -107,7 +114,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAsAccount = "user"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -122,9 +131,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -138,7 +155,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; BlockExecutionNotifications = $False; @@ -150,7 +166,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAsAccount = "user"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -165,9 +183,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -175,10 +201,12 @@ Configuration Example { IntuneDeviceConfigurationPlatformScriptMacOS 'Example' { - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Absent"; Id = "00000000-0000-0000-0000-000000000000"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptWindows.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptWindows.md index 961259c9f9..8daa7a321e 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptWindows.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPlatformScriptWindows.md @@ -78,9 +78,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -94,7 +102,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; EnforceSignatureCheck = $False; @@ -103,7 +110,9 @@ Configuration Example RunAs32Bit = $True; RunAsAccount = "system"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -118,9 +127,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -134,7 +151,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; EnforceSignatureCheck = $False; @@ -143,7 +159,9 @@ Configuration Example RunAs32Bit = $False; # Updated property RunAsAccount = "system"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -158,9 +176,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -168,11 +194,12 @@ Configuration Example { IntuneDeviceConfigurationPlatformScriptWindows 'Example' { - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Absent"; Id = "00000000-0000-0000-0000-000000000000"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.md index 6d3d0ffe97..0c8d6a404f 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.md @@ -134,9 +134,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -200,7 +208,9 @@ Configuration Example WebBrowserCookieSettings = 'allowAlways' WiFiBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -215,9 +225,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -281,7 +299,9 @@ Configuration Example WebBrowserCookieSettings = 'allowAlways' WiFiBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -296,9 +316,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -308,7 +336,9 @@ Configuration Example { DisplayName = 'Android device admin' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceOwner.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceOwner.md index d1b4efc9fa..599a916218 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceOwner.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidDeviceOwner.md @@ -305,9 +305,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -357,7 +365,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfilePasswordRequireUnlock = 'deviceDefault' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -372,9 +382,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -424,7 +442,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfilePasswordRequireUnlock = 'deviceDefault' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -439,9 +459,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -451,7 +479,9 @@ Configuration Example { DisplayName = 'general confi - AndroidDeviceOwner' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.md index dc7a0be1ec..4052c23262 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.md @@ -85,9 +85,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -108,7 +116,9 @@ Configuration Example ScreenCaptureBlocked = $True StorageBlockExternalMedia = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -123,9 +133,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -146,7 +164,9 @@ Configuration Example ScreenCaptureBlocked = $True StorageBlockExternalMedia = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -161,9 +181,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -173,7 +201,9 @@ Configuration Example { DisplayName = 'aosp' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidWorkProfile.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidWorkProfile.md index fe00ed6616..830ea4f2f4 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidWorkProfile.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyAndroidWorkProfile.md @@ -114,9 +114,17 @@ This example creates a new General Device Configuration Policy for Android WorkP Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -146,7 +154,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfileRequirePassword = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -160,9 +170,17 @@ This example creates a new General Device Configuration Policy for Android WorkP Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -192,7 +210,9 @@ Configuration Example WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfileRequirePassword = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -206,9 +226,17 @@ This example creates a new General Device Configuration Policy for Android WorkP Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -218,7 +246,9 @@ Configuration Example { DisplayName = 'Android Work Profile - Device Restrictions - Standard' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyMacOS.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyMacOS.md index 80d452577d..44ac6ea8b4 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyMacOS.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyMacOS.md @@ -187,9 +187,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -290,7 +298,9 @@ Configuration Example UpdateDelayPolicy = @('delayOSUpdateVisibility', 'delayAppUpdateVisibility', 'delayMajorOsUpdateVisibility') WallpaperModificationBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -305,9 +315,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -408,7 +426,9 @@ Configuration Example UpdateDelayPolicy = @('delayOSUpdateVisibility', 'delayAppUpdateVisibility', 'delayMajorOsUpdateVisibility') WallpaperModificationBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -423,9 +443,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -435,7 +463,9 @@ Configuration Example { DisplayName = 'MacOS device restriction' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyWindows10.md index 2a5101f5bf..076052931f 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyWindows10.md @@ -405,9 +405,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -446,7 +454,6 @@ Configuration Example ConnectedDevicesServiceBlocked = $False; CopyPasteBlocked = $False; CortanaBlocked = $False; - Credential = $Credscredential; CryptographyAllowFipsAlgorithmPolicy = $False; DefenderBlockEndUserAccess = $False; DefenderBlockOnAccessProtection = $False; @@ -666,6 +673,9 @@ Configuration Example WirelessDisplayBlockProjectionToThisDevice = $False; WirelessDisplayBlockUserInputFromReceiver = $False; WirelessDisplayRequirePinForPairing = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -680,9 +690,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -721,7 +739,6 @@ Configuration Example ConnectedDevicesServiceBlocked = $False; CopyPasteBlocked = $False; CortanaBlocked = $False; - Credential = $Credscredential; CryptographyAllowFipsAlgorithmPolicy = $False; DefenderBlockEndUserAccess = $False; DefenderBlockOnAccessProtection = $False; @@ -941,6 +958,9 @@ Configuration Example WirelessDisplayBlockProjectionToThisDevice = $False; WirelessDisplayBlockUserInputFromReceiver = $False; WirelessDisplayRequirePinForPairing = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -955,9 +975,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -965,9 +993,11 @@ Configuration Example { IntuneDeviceConfigurationPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "device config"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyiOS.md b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyiOS.md index bb2ed9c19a..56ff63330b 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyiOS.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationPolicyiOS.md @@ -361,9 +361,17 @@ This example creates a new Device Configuration Policy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -480,7 +488,9 @@ Configuration Example VoiceDialingBlocked = $False WallpaperBlockModification = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -494,9 +504,17 @@ This example creates a new Device Configuration Policy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -613,7 +631,9 @@ Configuration Example VoiceDialingBlocked = $False WallpaperBlockModification = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -627,9 +647,17 @@ This example creates a new Device Configuration Policy for iOS. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -639,7 +667,9 @@ Configuration Example { DisplayName = 'iOS DSC Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationScepCertificatePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationScepCertificatePolicyWindows10.md index da2f130324..9f84dbc720 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationScepCertificatePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationScepCertificatePolicyWindows10.md @@ -107,9 +107,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -126,7 +134,6 @@ Configuration Example CertificateStore = "user"; CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 5; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -151,6 +158,9 @@ Configuration Example SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; RootCertificateId = "169bf4fc-5914-40f4-ad33-48c225396183"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -165,9 +175,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -184,7 +202,6 @@ Configuration Example CertificateStore = "user"; CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 5; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -209,6 +226,9 @@ Configuration Example SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; RootCertificateId = "169bf4fc-5914-40f4-ad33-48c225396183"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -223,9 +243,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -233,9 +261,11 @@ Configuration Example { IntuneDeviceConfigurationScepCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "SCEP"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.md index 68d50ba62a..f864dc4e88 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.md @@ -80,9 +80,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -102,11 +110,13 @@ Configuration Example ); ConfigurationAccount = "user@domain.com"; ConfigurationAccountType = "azureADAccount"; - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Present"; LaunchUri = "https://assessment.domain.com"; LocalGuestAccountName = ""; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -121,9 +131,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -143,11 +161,13 @@ Configuration Example ); ConfigurationAccount = "user@domain.com"; ConfigurationAccountType = "azureADAccount"; - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Present"; LaunchUri = "https://assessment.domain.com"; LocalGuestAccountName = ""; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -162,9 +182,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -172,9 +200,11 @@ Configuration Example { IntuneDeviceConfigurationSecureAssessmentPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.md index 16dcf8a7da..443fb8dac9 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.md @@ -101,9 +101,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -124,7 +132,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisableAccountManager = $False; DisableEduPolicies = $False; DisablePowerPolicies = $False; @@ -140,6 +147,9 @@ Configuration Example SetEduPolicies = "enabled"; SetPowerPolicies = "enabled"; SignInOnResume = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -154,9 +164,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -177,7 +195,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisableAccountManager = $False; DisableEduPolicies = $False; DisablePowerPolicies = $False; @@ -193,6 +210,9 @@ Configuration Example SetEduPolicies = "enabled"; SetPowerPolicies = "enabled"; SignInOnResume = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -207,9 +227,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -217,9 +245,11 @@ Configuration Example { IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Shared Multi device"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.md index 2aac250211..90261573a7 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.md @@ -75,9 +75,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -92,11 +100,13 @@ Configuration Example } ); CertFileName = "RootCA.cer"; - Credential = $Credscredential; DestinationStore = "computerCertStoreRoot"; DisplayName = "Trusted Cert"; Ensure = "Present"; TrustedRootCertificate = "MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFowcDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA="; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -111,9 +121,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -128,11 +146,13 @@ Configuration Example } ); CertFileName = "RootNew.cer"; # Updated Property - Credential = $Credscredential; DestinationStore = "computerCertStoreRoot"; DisplayName = "Trusted Cert"; Ensure = "Present"; TrustedRootCertificate = "MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFowcDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA="; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -147,9 +167,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -157,9 +185,11 @@ Configuration Example { IntuneDeviceConfigurationTrustedCertificatePolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Trusted Cert"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationVpnPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationVpnPolicyWindows10.md index bade0d24d3..f677318176 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationVpnPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationVpnPolicyWindows10.md @@ -212,9 +212,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -231,7 +239,6 @@ Configuration Example AuthenticationMethod = "usernameAndPassword"; ConnectionName = "Cisco VPN"; ConnectionType = "ciscoAnyConnect"; - Credential = $Credscredential; CustomXml = ""; DisplayName = "VPN"; DnsRules = @( @@ -279,6 +286,9 @@ Configuration Example } ); TrustedNetworkDomains = @(); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -293,9 +303,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -312,7 +330,6 @@ Configuration Example AuthenticationMethod = "usernameAndPassword"; ConnectionName = "Cisco VPN"; ConnectionType = "ciscoAnyConnect"; - Credential = $Credscredential; CustomXml = ""; DisplayName = "VPN"; DnsRules = @( @@ -360,6 +377,9 @@ Configuration Example } ); TrustedNetworkDomains = @(); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -374,9 +394,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -384,9 +412,11 @@ Configuration Example { IntuneDeviceConfigurationVpnPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "VPN"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationWindowsTeamPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationWindowsTeamPolicyWindows10.md index 3efa4dff87..93cceec8d8 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationWindowsTeamPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationWindowsTeamPolicyWindows10.md @@ -93,9 +93,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -111,7 +119,6 @@ Configuration Example ); AzureOperationalInsightsBlockTelemetry = $True; ConnectAppBlockAutoLaunch = $True; - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Present"; MaintenanceWindowBlocked = $False; @@ -126,6 +133,9 @@ Configuration Example SupportsScopeTags = $True; WelcomeScreenBlockAutomaticWakeUp = $True; WelcomeScreenMeetingInformation = "showOrganizerAndTimeOnly"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -140,9 +150,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -158,7 +176,6 @@ Configuration Example ); AzureOperationalInsightsBlockTelemetry = $False; # Updated Property ConnectAppBlockAutoLaunch = $True; - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Present"; MaintenanceWindowBlocked = $False; @@ -173,6 +190,9 @@ Configuration Example SupportsScopeTags = $True; WelcomeScreenBlockAutomaticWakeUp = $True; WelcomeScreenMeetingInformation = "showOrganizerAndTimeOnly"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -187,9 +207,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -197,9 +225,11 @@ Configuration Example { IntuneDeviceConfigurationWindowsTeamPolicyWindows10 'Example' { - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationWiredNetworkPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationWiredNetworkPolicyWindows10.md index c296f6dc23..ab63011a7a 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationWiredNetworkPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationWiredNetworkPolicyWindows10.md @@ -101,9 +101,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -124,7 +132,6 @@ Configuration Example AuthenticationRetryDelayPeriodInSeconds = 5 AuthenticationType = 'machine' CacheCredentials = $True - Credential = $Credscredential DisplayName = 'Wired Network' EapolStartPeriodInSeconds = 5 EapType = 'teap' @@ -136,6 +143,9 @@ Configuration Example TrustedServerCertificateNames = @('srv.domain.com') RootCertificatesForServerValidationIds = @('a485d322-13cd-43ef-beda-733f656f48ea', '169bf4fc-5914-40f4-ad33-48c225396183') SecondaryIdentityCertificateForClientAuthenticationId = '0b9aef2f-1671-4260-8eb9-3ab3138e176a' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -150,9 +160,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -173,7 +191,6 @@ Configuration Example AuthenticationRetryDelayPeriodInSeconds = 5 AuthenticationType = 'machine' CacheCredentials = $True - Credential = $Credscredential DisplayName = 'Wired Network' EapolStartPeriodInSeconds = 5 EapType = 'teap' @@ -185,6 +202,9 @@ Configuration Example TrustedServerCertificateNames = @('srv.domain.com') RootCertificatesForServerValidationIds = @('a485d322-13cd-43ef-beda-733f656f48ea', '169bf4fc-5914-40f4-ad33-48c225396183') SecondaryIdentityCertificateForClientAuthenticationId = '0b9aef2f-1671-4260-8eb9-3ab3138e176a' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -199,9 +219,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -209,9 +237,11 @@ Configuration Example { IntuneDeviceConfigurationWiredNetworkPolicyWindows10 'Example' { - Credential = $Credscredential DisplayName = 'Wired Network' Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceEnrollmentLimitRestriction.md b/docs/docs/resources/intune/IntuneDeviceEnrollmentLimitRestriction.md index 6380f1c06e..8c2973162c 100644 --- a/docs/docs/resources/intune/IntuneDeviceEnrollmentLimitRestriction.md +++ b/docs/docs/resources/intune/IntuneDeviceEnrollmentLimitRestriction.md @@ -57,9 +57,17 @@ This example creates a new Device Enrollment Limit Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -71,7 +79,9 @@ Configuration Example Description = 'My Restriction' Limit = 12 Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -85,9 +95,17 @@ This example creates a new Device Enrollment Limit Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -99,7 +117,9 @@ Configuration Example Description = 'My Restriction' Limit = 11 # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -113,9 +133,17 @@ This example creates a new Device Enrollment Limit Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -125,7 +153,9 @@ Configuration Example { DisplayName = 'My DSC Limit' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceEnrollmentPlatformRestriction.md b/docs/docs/resources/intune/IntuneDeviceEnrollmentPlatformRestriction.md index cc0062d561..30dcaf901c 100644 --- a/docs/docs/resources/intune/IntuneDeviceEnrollmentPlatformRestriction.md +++ b/docs/docs/resources/intune/IntuneDeviceEnrollmentPlatformRestriction.md @@ -99,9 +99,17 @@ This example creates a new Device Enrollment Platform Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -122,7 +130,6 @@ Configuration Example deviceAndAppManagementAssignmentFilterType = 'none' dataType = '#microsoft.graph.allDevicesAssignmentTarget' }); - Credential = $Credscredential Description = "This is the default Device Type Restriction applied with the lowest priority to all users regardless of group membership."; DeviceEnrollmentConfigurationType = "platformRestrictions"; DisplayName = "All users and all devices"; @@ -152,6 +159,9 @@ Configuration Example platformBlocked = $False personalDeviceEnrollmentBlocked = $False }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -165,9 +175,17 @@ This example creates a new Device Enrollment Platform Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -188,7 +206,6 @@ Configuration Example deviceAndAppManagementAssignmentFilterType = 'none' dataType = '#microsoft.graph.allDevicesAssignmentTarget' }); - Credential = $Credscredential Description = "This is the default Device Type Restriction applied with the lowest priority to all users regardless of group membership."; DeviceEnrollmentConfigurationType = "platformRestrictions"; DisplayName = "All users and all devices"; @@ -218,6 +235,9 @@ Configuration Example platformBlocked = $False personalDeviceEnrollmentBlocked = $False }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -231,9 +251,17 @@ This example creates a new Device Enrollment Platform Restriction. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -241,7 +269,6 @@ Configuration Example { IntuneDeviceEnrollmentPlatformRestriction 'DeviceEnrollmentPlatformRestriction' { - Credential = $Credscredential DisplayName = "Removed Policy"; Ensure = "Absent"; Assignments = @(); @@ -253,7 +280,9 @@ Configuration Example PersonalDeviceEnrollmentBlocked = $False }; Priority = 1; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceEnrollmentStatusPageWindows10.md b/docs/docs/resources/intune/IntuneDeviceEnrollmentStatusPageWindows10.md index 187f1779de..231aff3635 100644 --- a/docs/docs/resources/intune/IntuneDeviceEnrollmentStatusPageWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceEnrollmentStatusPageWindows10.md @@ -85,9 +85,17 @@ This example creates a new Device Enrollment Status Page. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -117,7 +125,9 @@ Configuration Example SelectedMobileAppIds = @(); ShowInstallationProgress = $True; TrackInstallProgressForAutopilotOnly = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -131,9 +141,17 @@ This example creates a new Device Enrollment Status Page. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -163,7 +181,9 @@ Configuration Example SelectedMobileAppIds = @(); ShowInstallationProgress = $True; TrackInstallProgressForAutopilotOnly = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -177,9 +197,17 @@ This example creates a new Device Enrollment Status Page. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -189,7 +217,9 @@ Configuration Example { DisplayName = "All users and all devices"; Ensure = "Absent"; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md b/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md index d373490263..41217dc41e 100644 --- a/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md +++ b/docs/docs/resources/intune/IntuneDeviceManagementComplianceSettings.md @@ -57,9 +57,17 @@ This example updates the Device Management Compliance Settings Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -67,10 +75,12 @@ Configuration Example { IntuneDeviceManagementComplianceSettings 'DeviceManagementComplianceSettings' { - Credential = $Credscredential DeviceComplianceCheckinThresholdDays = 22; IsSingleInstance = "Yes"; SecureByDefault = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDeviceRemediation.md b/docs/docs/resources/intune/IntuneDeviceRemediation.md index d4d43ac6c0..acfe62a44f 100644 --- a/docs/docs/resources/intune/IntuneDeviceRemediation.md +++ b/docs/docs/resources/intune/IntuneDeviceRemediation.md @@ -116,9 +116,17 @@ This example creates a new Device Remediation. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -143,7 +151,6 @@ Configuration Example } } ); - Credential = $Credscredential Description = 'Description' DetectionScriptContent = "Base64 encoded script content"; DeviceHealthScriptType = "deviceHealthScript"; @@ -156,7 +163,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAs32Bit = $True; RunAsAccount = "system"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -170,9 +179,17 @@ This example updates a new Device Remediation. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -197,7 +214,6 @@ Configuration Example } } ); - Credential = $Credscredential Description = 'Description' DetectionScriptContent = "Base64 encoded script content 2"; # Updated property DeviceHealthScriptType = "deviceHealthScript"; @@ -210,7 +226,9 @@ Configuration Example RoleScopeTagIds = @("0"); RunAs32Bit = $True; RunAsAccount = "system"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -224,9 +242,17 @@ This example removes a Device Remediation. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -237,7 +263,9 @@ Configuration Example Id = '00000000-0000-0000-0000-000000000000' DisplayName = 'Device remediation' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDiskEncryptionMacOS.md b/docs/docs/resources/intune/IntuneDiskEncryptionMacOS.md index 112953a0c4..f4289f16e9 100644 --- a/docs/docs/resources/intune/IntuneDiskEncryptionMacOS.md +++ b/docs/docs/resources/intune/IntuneDiskEncryptionMacOS.md @@ -83,9 +83,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -104,7 +112,9 @@ Configuration Example PersonalRecoveryKeyRotationInMonths = 2; RoleScopeTagIds = @("0"); SelectedRecoveryKeyTypes = @("personalRecoveryKey"); - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -119,9 +129,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -140,7 +158,9 @@ Configuration Example PersonalRecoveryKeyRotationInMonths = 3; # Updated property RoleScopeTagIds = @("0"); SelectedRecoveryKeyTypes = @("personalRecoveryKey"); - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -155,9 +175,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -167,7 +195,9 @@ Configuration Example { DisplayName = 'test' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md b/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md index 1cf2a01ab2..b359738f21 100644 --- a/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md +++ b/docs/docs/resources/intune/IntuneDiskEncryptionWindows10.md @@ -128,9 +128,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -149,7 +157,9 @@ Configuration Example IdentificationField = 'IdentificationField' SecIdentificationField = 'SecIdentificationField' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -164,9 +174,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -185,7 +203,9 @@ Configuration Example IdentificationField = 'IdentificationField' SecIdentificationField = 'UpdatedSecIdentificationField' # Updated property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -200,9 +220,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -213,7 +241,9 @@ Configuration Example DisplayName = 'Disk Encryption' Description = '' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyWindows10.md b/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyWindows10.md index 4aa3c793ab..9893c32f98 100644 --- a/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyWindows10.md @@ -75,9 +75,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -89,7 +97,9 @@ Configuration Example Assignments = @() Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -104,9 +114,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -118,7 +136,9 @@ Configuration Example Assignments = @() Description = 'My updated description' # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -133,9 +153,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -145,7 +173,9 @@ Configuration Example { DisplayName = 'Edr Policy' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md b/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md index 05e7646068..17b0440a3d 100644 --- a/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md +++ b/docs/docs/resources/intune/IntuneExploitProtectionPolicyWindows10SettingCatalog.md @@ -79,9 +79,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -244,7 +252,9 @@ Configuration Example " Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -259,9 +269,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -424,7 +442,9 @@ Configuration Example " # Updated Property Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -439,9 +459,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -451,7 +479,9 @@ Configuration Example { DisplayName = 'exploit Protection policy with assignments' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntunePolicySets.md b/docs/docs/resources/intune/IntunePolicySets.md index 2659656ed8..d1bb683e0a 100644 --- a/docs/docs/resources/intune/IntunePolicySets.md +++ b/docs/docs/resources/intune/IntunePolicySets.md @@ -87,16 +87,23 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName 'Microsoft365DSC' Node localhost { IntunePolicySets "Example" { - Credential = $Credscredential; Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -123,10 +130,11 @@ Configuration Example } ); RoleScopeTags = @("0","1"); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } - } - } ``` @@ -139,16 +147,23 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName 'Microsoft365DSC' Node localhost { IntunePolicySets "Example" { - Credential = $Credscredential; Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -175,10 +190,11 @@ Configuration Example } ); RoleScopeTags = @("0","1","2"); # Updated Property + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } - } - } ``` @@ -191,22 +207,30 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName 'Microsoft365DSC' Node localhost { IntunePolicySets "Example" { - Credential = $Credscredential; DisplayName = "Example"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } - } - } ``` diff --git a/docs/docs/resources/intune/IntuneRoleAssignment.md b/docs/docs/resources/intune/IntuneRoleAssignment.md index 71641ec684..ab0133db1c 100644 --- a/docs/docs/resources/intune/IntuneRoleAssignment.md +++ b/docs/docs/resources/intune/IntuneRoleAssignment.md @@ -64,9 +64,17 @@ This example creates a new Intune Role Assigment. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -84,7 +92,9 @@ Configuration Example RoleDefinition = '2d00d0fd-45e9-4166-904f-b76ac5eed2c7' RoleDefinitionDisplayName = 'This is my role' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -98,9 +108,17 @@ This example creates a new Intune Role Assigment. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -118,7 +136,9 @@ Configuration Example RoleDefinition = '2d00d0fd-45e9-4166-904f-b76ac5eed2c7' RoleDefinitionDisplayName = 'This is my role' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -132,9 +152,17 @@ This example creates a new Intune Role Assigment. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -144,7 +172,9 @@ Configuration Example { DisplayName = 'test2' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneRoleDefinition.md b/docs/docs/resources/intune/IntuneRoleDefinition.md index 035ff9e956..aab8a240cd 100644 --- a/docs/docs/resources/intune/IntuneRoleDefinition.md +++ b/docs/docs/resources/intune/IntuneRoleDefinition.md @@ -61,9 +61,17 @@ This example creates a new Intune Role Definition. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -78,7 +86,9 @@ Configuration Example notallowedResourceActions = @() roleScopeTagIds = @('0', '1') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -92,9 +102,17 @@ This example creates a new Intune Role Definition. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +127,9 @@ Configuration Example notallowedResourceActions = @() roleScopeTagIds = @('0', '1') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -123,9 +143,17 @@ This example creates a new Intune Role Definition. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -135,7 +163,9 @@ Configuration Example { DisplayName = 'This is my role' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md b/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md index 9aa201c36c..b565f3f12c 100644 --- a/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneSettingCatalogASRRulesPolicyWindows10.md @@ -115,9 +115,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -136,7 +144,9 @@ Configuration Example blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion = 'audit' Description = 'Post' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -151,9 +161,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -172,7 +190,9 @@ Configuration Example blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion = 'audit' Description = 'Post' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -187,9 +207,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -199,7 +227,9 @@ Configuration Example { DisplayName = 'asr 2' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneSettingCatalogCustomPolicyWindows10.md b/docs/docs/resources/intune/IntuneSettingCatalogCustomPolicyWindows10.md index 3eb71ca136..fb7b396272 100644 --- a/docs/docs/resources/intune/IntuneSettingCatalogCustomPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneSettingCatalogCustomPolicyWindows10.md @@ -164,9 +164,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -174,7 +182,6 @@ Configuration Example { IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -243,6 +250,9 @@ Configuration Example } ); Technologies = "mdm"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -257,9 +267,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -267,7 +285,6 @@ Configuration Example { IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -336,6 +353,9 @@ Configuration Example } ); Technologies = "mdm"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -350,9 +370,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -360,9 +388,11 @@ Configuration Example { IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Ensure = "Absent"; Name = "Setting Catalog Raw - DSC"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.md index 6eddf28dad..8f3324c65a 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.md @@ -77,9 +77,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -100,7 +108,9 @@ Configuration Example Ssid = 'sf' WiFiSecurityType = 'wpaEnterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -115,9 +125,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -138,7 +156,9 @@ Configuration Example Ssid = 'sf' WiFiSecurityType = 'wpaEnterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -153,9 +173,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -165,7 +193,9 @@ Configuration Example { DisplayName = 'Wifi Configuration Androind Device' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.md index 2a25e7cd2b..a2d42ba204 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.md @@ -85,9 +85,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -110,7 +118,9 @@ Configuration Example ProxySettings = 'none' Ssid = 'MySSID - 3' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -126,9 +136,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -151,7 +169,9 @@ Configuration Example ProxySettings = 'none' Ssid = 'MySSID - 3' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -167,9 +187,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -179,7 +207,9 @@ Configuration Example { DisplayName = 'Wifi - androidForWork' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.md index e287c3661a..3b93f6cb7f 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.md @@ -78,9 +78,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -102,7 +110,9 @@ Configuration Example Ssid = 'MySSID' WiFiSecurityType = 'open' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -118,9 +128,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -142,7 +160,9 @@ Configuration Example Ssid = 'MySSID' WiFiSecurityType = 'open' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -158,9 +178,17 @@ Configuration Example { param ( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -170,7 +198,9 @@ Configuration Example { DisplayName = 'wifi - android BYOD' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidForWork.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidForWork.md index 337418cbb1..01e681328d 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidForWork.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidForWork.md @@ -77,9 +77,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -104,7 +112,9 @@ Configuration Example Ssid = 'WiFi' WiFiSecurityType = 'wpa2Enterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -119,9 +129,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -146,7 +164,9 @@ Configuration Example Ssid = 'WiFi' WiFiSecurityType = 'wpa2Enterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -161,9 +181,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -173,7 +201,9 @@ Configuration Example { DisplayName = 'AndroindForWork' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidOpenSourceProject.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidOpenSourceProject.md index cd1ebe8313..ef98411a57 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidOpenSourceProject.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyAndroidOpenSourceProject.md @@ -79,9 +79,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -103,7 +111,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -118,9 +128,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -142,7 +160,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -157,9 +177,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -169,7 +197,9 @@ Configuration Example { DisplayName = 'wifi aosp' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyIOS.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyIOS.md index 2375bd1d1b..ddcf26325a 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyIOS.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyIOS.md @@ -83,9 +83,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +117,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -124,9 +134,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -150,7 +168,9 @@ Configuration Example Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -165,9 +185,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -177,7 +205,9 @@ Configuration Example { DisplayName = 'ios wifi' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyMacOS.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyMacOS.md index cc22276650..57e8731161 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyMacOS.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyMacOS.md @@ -82,9 +82,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -107,7 +115,9 @@ Configuration Example Ssid = 'aaaaaaaaaaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -122,9 +132,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -147,7 +165,9 @@ Configuration Example Ssid = 'aaaaaaaaaaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -162,9 +182,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -174,7 +202,9 @@ Configuration Example { DisplayName = 'macos wifi' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyWindows10.md b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyWindows10.md index be916f3b6b..23ba85724c 100644 --- a/docs/docs/resources/intune/IntuneWifiConfigurationPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneWifiConfigurationPolicyWindows10.md @@ -85,9 +85,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -113,7 +121,9 @@ Configuration Example Ssid = 'ssid' WifiSecurityType = 'wpa2Personal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -128,9 +138,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -156,7 +174,9 @@ Configuration Example Ssid = 'ssid' WifiSecurityType = 'wpa2Personal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -171,9 +191,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -183,7 +211,9 @@ Configuration Example { DisplayName = 'win10 wifi - revised' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.md b/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.md index b260b7e293..43d2e26d9f 100644 --- a/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.md +++ b/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.md @@ -108,9 +108,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -119,7 +127,6 @@ Configuration Example IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { Assignments = @(); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = ""; DeviceType = "windowsPc"; @@ -137,6 +144,9 @@ Configuration Example SkipKeyboardSelectionPage = $False UserType = 'standard' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -151,9 +161,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -162,7 +180,6 @@ Configuration Example IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { Assignments = @(); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = ""; DeviceType = "windowsPc"; @@ -180,6 +197,9 @@ Configuration Example SkipKeyboardSelectionPage = $False UserType = 'standard' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -194,9 +214,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -204,9 +232,11 @@ Configuration Example { IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { - Credential = $Credscredential; DisplayName = "hybrid"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADJoined.md b/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADJoined.md index 6909ac9fbc..526656617c 100644 --- a/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADJoined.md +++ b/docs/docs/resources/intune/IntuneWindowsAutopilotDeploymentProfileAzureADJoined.md @@ -107,9 +107,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -123,7 +131,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = "test"; DeviceType = "windowsPc"; @@ -140,6 +147,9 @@ Configuration Example SkipKeyboardSelectionPage = $True UserType = 'administrator' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -154,9 +164,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -170,7 +188,6 @@ Configuration Example dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = "test"; DeviceType = "windowsPc"; @@ -187,6 +204,9 @@ Configuration Example SkipKeyboardSelectionPage = $True UserType = 'administrator' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -201,9 +221,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -211,9 +239,11 @@ Configuration Example { IntuneWindowsAutopilotDeploymentProfileAzureADJoined 'Example' { - Credential = $Credscredential; DisplayName = "AAD"; Ensure = "Absent"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.md b/docs/docs/resources/intune/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.md index cd23311e1e..e581a1dcc1 100644 --- a/docs/docs/resources/intune/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.md +++ b/docs/docs/resources/intune/IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.md @@ -167,9 +167,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -211,7 +219,9 @@ Configuration Example ProtectionUnderLockConfigRequired = $False RevokeOnUnenrollDisabled = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -226,9 +236,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -270,7 +288,9 @@ Configuration Example ProtectionUnderLockConfigRequired = $False RevokeOnUnenrollDisabled = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -285,9 +305,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -297,7 +325,9 @@ Configuration Example { DisplayName = 'WIP' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.md b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.md index 9f0ae10108..edb5abbe42 100644 --- a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.md +++ b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.md @@ -77,9 +77,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -92,7 +100,9 @@ Configuration Example Description = 'test 2' approvalType = 'manual' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -107,9 +117,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -122,7 +140,9 @@ Configuration Example Description = 'test 3' # Updated property approvalType = 'manual' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -137,9 +157,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -150,7 +178,9 @@ Configuration Example DisplayName = 'Driver Update Example' Description = 'test 2' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md index 386ba33b3c..6bd3ae2629 100644 --- a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md +++ b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md @@ -84,9 +84,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -102,7 +110,9 @@ Configuration Example OfferStartDateTimeInUTC = '2023-02-03T16:00:00.0000000+00:00' } Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -117,9 +127,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -135,7 +153,9 @@ Configuration Example OfferStartDateTimeInUTC = '2023-02-05T16:00:00.0000000+00:00' # Updated Property } Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -150,9 +170,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -162,7 +190,9 @@ Configuration Example { DisplayName = 'WUfB Feature -dsc' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md index 4384cdfcec..413892c638 100644 --- a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md +++ b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10.md @@ -83,9 +83,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -109,7 +117,9 @@ Configuration Example } RoleScopeTagIds = @("0") Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -124,9 +134,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -150,7 +168,9 @@ Configuration Example } RoleScopeTagIds = @("0") Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -165,9 +185,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -177,7 +205,9 @@ Configuration Example { DisplayName = 'Windows Quality Update' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } diff --git a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.md b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.md index caf2890e04..46d2e49c70 100644 --- a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.md +++ b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.md @@ -118,9 +118,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -168,7 +176,9 @@ Configuration Example UserPauseAccess = 'enabled' UserWindowsUpdateScanAccess = 'enabled' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -183,9 +193,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -233,7 +251,9 @@ Configuration Example UserPauseAccess = 'enabled' UserWindowsUpdateScanAccess = 'enabled' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } @@ -248,9 +268,17 @@ It is not meant to use as a production baseline. Configuration Example { param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint ) Import-DscResource -ModuleName Microsoft365DSC @@ -260,7 +288,9 @@ Configuration Example { DisplayName = 'WUfB Ring' Ensure = 'Absent' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } From b0bcd2386eb4da8120d193714bf5f9250eb0c6cd Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 17 Jul 2024 20:23:01 +0000 Subject: [PATCH 216/273] Updated {Create} Intune Integration Tests --- ...M365DSCIntegration.INTUNE.Create.Tests.ps1 | 313 +++++++++++++----- 1 file changed, 231 insertions(+), 82 deletions(-) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index 56ebc9d99e..1254e45f14 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -39,7 +39,6 @@ DisplayName = "Account Protection LAPS Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -50,13 +49,15 @@ PasswordAgeDays_AAD = 10; AdministratorAccountName = "Administrator"; PasswordAgeDays = 20; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAccountProtectionLocalUserGroupMembershipPolicy 'My Account Protection Local User Group Membership Policy' { DisplayName = "Account Protection LUGM Policy"; Description = "My revised description"; Ensure = "Present"; - Credential = $Credscredential Assignments = @( MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -71,6 +72,9 @@ UserSelectionType = 'users' } ); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAccountProtectionPolicy 'myAccountProtectionPolicy' { @@ -80,7 +84,9 @@ PinMinimumLength = 5 PinSpecialCharactersUsage = 'required' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAntivirusPolicyWindows10SettingCatalog 'myAVWindows10Policy' { @@ -96,11 +102,12 @@ excludedprocesses = @('processes.exe', 'process2.exe') templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAppConfigurationDevicePolicy 'IntuneAppConfigurationDevicePolicy-Example' { - Credential = $Credscredential; Assignments = @(); Description = ""; DisplayName = "Example"; @@ -113,13 +120,14 @@ ProfileApplicability = "default" RoleScopeTagIds = @("0"); TargetedMobileApps = @(""); - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAppConfigurationPolicy 'AddAppConfigPolicy' { DisplayName = 'ContosoNew' Description = 'New Contoso Policy' - Credential = $Credscredential; CustomSettings = @( MSFT_IntuneAppConfigurationPolicyCustomSetting { name = 'com.microsoft.intune.mam.managedbrowser.BlockListURLs' @@ -134,6 +142,9 @@ value = 'TestValue' }); Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneApplicationControlPolicyWindows10 'ConfigureApplicationControlPolicyWindows10' { @@ -143,7 +154,9 @@ SmartScreenBlockOverrideForFiles = $True SmartScreenEnableInShell = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAppProtectionPolicyAndroid 'ConfigureAppProtectionPolicyAndroid' { @@ -168,7 +181,9 @@ SaveAsBlocked = $True SimplePinBlocked = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAppProtectionPolicyiOS 'MyCustomiOSPolicy' { @@ -197,7 +212,9 @@ SaveAsBlocked = $True SimplePinBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneASRRulesPolicyWindows10 'myASRRulesPolicy' { @@ -224,7 +241,9 @@ UntrustedExecutableType = 'block' UntrustedUSBProcessType = 'block' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager 'myASRReductionRules' { @@ -232,7 +251,9 @@ blockadobereaderfromcreatingchildprocesses = "block"; Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceAndAppManagementAssignmentFilter 'AssignmentFilter' { @@ -241,14 +262,18 @@ Platform = 'windows10AndLater' Rule = "(device.manufacturer -ne `"Microsoft Corporation`")" Ensure = 'Present' - Credential = $intuneAdmin + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCategory 'ConfigureDeviceCategory' { DisplayName = 'Contoso' Description = 'Contoso Category' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCompliancePolicyAndroid 'AddDeviceCompliancePolicy' { @@ -274,7 +299,9 @@ SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCompliancePolicyAndroidDeviceOwner 'ConfigureAndroidDeviceCompliancePolicyOwner' { @@ -295,7 +322,9 @@ PasswordPreviousPasswordCountToBlock = 13 StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCompliancePolicyAndroidWorkProfile 'ConfigureAndroidDeviceCompliancePolicyWorkProfile' { @@ -319,7 +348,9 @@ SecurityRequireVerifyApps = $False StorageRequireEncryption = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCompliancePolicyiOs 'ConfigureDeviceCompliancePolicyiOS' { @@ -340,8 +371,9 @@ DeviceThreatProtectionRequiredSecurityLevel = 'medium' ManagedEmailProfileRequired = $True Ensure = 'Present' - Credential = $Credscredential - + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCompliancePolicyMacOS 'ConfigureDeviceCompliancePolicyMacOS' { @@ -365,7 +397,9 @@ FirewallBlockAllIncoming = $False FirewallEnableStealthMode = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceCompliancePolicyWindows10 'ConfigureDeviceCompliancePolicyWindows10' { @@ -404,11 +438,12 @@ deviceCompliancePolicyScript = $null ValidOperatingSystemBuildRanges = @() Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments { @@ -530,6 +565,9 @@ DisplayName = 'admin template' Ensure = 'Present' PolicyConfigurationIngestionType = 'unknown' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationCustomPolicyWindows10 'Example' { @@ -539,7 +577,6 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; OmaSettings = @( @@ -563,6 +600,9 @@ } ); SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10 'Example' { @@ -576,10 +616,12 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "MDE onboarding Legacy"; EnableExpeditedTelemetryReporting = $True; Ensure = "Present"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10 'Example' { @@ -598,7 +640,6 @@ CacheServerBackgroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerForegroundDownloadFallbackToHttpDelayInSeconds = 3; CacheServerHostNames = @("domain.com"); - Credential = $Credscredential; DeliveryOptimizationMode = "httpWithPeeringPrivateGroup"; DisplayName = "delivery optimisation"; Ensure = "Present"; @@ -620,6 +661,9 @@ RestrictPeerSelectionBy = "subnetMask"; SupportsScopeTags = $True; VpnPeerCaching = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationDomainJoinPolicyWindows10 'Example' { @@ -632,11 +676,13 @@ ); ComputerNameStaticPrefix = "WK-"; ComputerNameSuffixRandomCharCount = 12; - Credential = $Credscredential; DisplayName = "Domain Join"; Ensure = "Present"; OrganizationalUnit = "OU=workstation,CN=domain,CN=com"; SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationEmailProfilePolicyWindows10 'Example' { @@ -647,7 +693,6 @@ dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "email"; DurationOfEmailToSync = "unlimited"; EmailAddressSource = "primarySmtpAddress"; @@ -658,6 +703,9 @@ SyncCalendar = $True; SyncContacts = $True; SyncTasks = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationEndpointProtectionPolicyWindows10 'Example' { @@ -724,7 +772,6 @@ StartupAuthenticationTpmKeyUsage = 'allowed' StartupAuthenticationBlockWithoutTpmChip = $False }; - Credential = $Credscredential; DefenderAdditionalGuardedFolders = @(); DefenderAdobeReaderLaunchChildProcess = "notConfigured"; DefenderAdvancedRansomewareProtectionType = "notConfigured"; @@ -886,6 +933,9 @@ XboxServicesLiveAuthManagerServiceStartupMode = "manual"; XboxServicesLiveGameSaveServiceStartupMode = "manual"; XboxServicesLiveNetworkingServiceStartupMode = "manual"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10 'Example' { @@ -900,7 +950,6 @@ BootFromExternalMedia = "notConfigured"; Cameras = "enabled"; ChangeUefiSettingsPermission = "notConfiguredOnly"; - Credential = $Credscredential; DisplayName = "firmware"; Ensure = "Present"; FrontCamera = "enabled"; @@ -920,6 +969,9 @@ WiFi = "notConfigured"; WindowsPlatformBinaryTable = "enabled"; WirelessWideAreaNetwork = "notConfigured"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10 'Example' { @@ -931,10 +983,12 @@ } ); ConfigDeviceHealthMonitoringScope = @("bootPerformance","windowsUpdates"); - Credential = $Credscredential; DisplayName = "Health Monitoring Configuration"; Ensure = "Present"; SupportsScopeTags = $True; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationIdentityProtectionPolicyWindows10 'Example' { @@ -944,7 +998,6 @@ dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "identity protection"; EnhancedAntiSpoofingForFacialFeaturesEnabled = $True; Ensure = "Present"; @@ -962,6 +1015,9 @@ UseCertificatesForOnPremisesAuthEnabled = $True; UseSecurityKeyForSignin = $True; WindowsHelloForBusinessBlocked = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10 'Example' { @@ -973,7 +1029,6 @@ ); CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 1; - Credential = $Credscredential; DisplayName = "PKCS Imported"; Ensure = "Present"; IntendedPurpose = "unassigned"; @@ -981,6 +1036,9 @@ RenewalThresholdPercentage = 50; SubjectAlternativeNameType = "emailAddress"; SubjectNameFormat = "commonName"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationKioskPolicyWindows10 'Example' { @@ -990,7 +1048,6 @@ dataType = '#microsoft.graph.allLicensedUsersAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "kiosk"; EdgeKioskEnablePublicBrowsing = $False; Ensure = "Present"; @@ -1030,6 +1087,9 @@ Recurrence = 'daily' DayofWeek = 'sunday' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10 'Example' { @@ -1039,7 +1099,6 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "network boundary"; Ensure = "Present"; SupportsScopeTags = $True; @@ -1058,6 +1117,9 @@ ) NeutralDomainResources = @() }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPkcsCertificatePolicyWindows10 'Example' { @@ -1073,7 +1135,6 @@ CertificateValidityPeriodValue = 1; CertificationAuthority = "CA=Name"; CertificationAuthorityName = "Test"; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -1087,6 +1148,9 @@ SubjectAlternativeNameType = "none"; SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPlatformScriptMacOS 'Example' { @@ -1096,7 +1160,6 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; BlockExecutionNotifications = $False; @@ -1108,7 +1171,9 @@ RoleScopeTagIds = @("0"); RunAsAccount = "user"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPlatformScriptWindows 'Example' { @@ -1118,7 +1183,6 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisplayName = "custom"; Ensure = "Present"; EnforceSignatureCheck = $False; @@ -1127,7 +1191,9 @@ RunAs32Bit = $True; RunAsAccount = "system"; ScriptContent = "Base64 encoded script content"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator 'myAndroidDeviceAdmin' { @@ -1187,7 +1253,9 @@ WebBrowserCookieSettings = 'allowAlways' WiFiBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyAndroidDeviceOwner 'myAndroidDeviceOwnerPolicy' { @@ -1233,7 +1301,9 @@ WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfilePasswordRequireUnlock = 'deviceDefault' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyAndroidOpenSourceProject 'myAndroidOpenSourceProjectPolicy' { @@ -1250,7 +1320,9 @@ ScreenCaptureBlocked = $True StorageBlockExternalMedia = $True Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyAndroidWorkProfile '97ed22e9-1429-40dc-ab3c-0055e538383b' { @@ -1276,7 +1348,9 @@ WorkProfilePasswordRequiredType = 'deviceDefault' WorkProfileRequirePassword = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyiOS 'ConfigureDeviceConfigurationPolicyiOS' { @@ -1389,7 +1463,9 @@ VoiceDialingBlocked = $False WallpaperBlockModification = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyMacOS 'myMacOSDevicePolicy' { @@ -1486,7 +1562,9 @@ UpdateDelayPolicy = @('delayOSUpdateVisibility', 'delayAppUpdateVisibility', 'delayMajorOsUpdateVisibility') WallpaperModificationBlocked = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationPolicyWindows10 'Example' { @@ -1521,7 +1599,6 @@ ConnectedDevicesServiceBlocked = $False; CopyPasteBlocked = $False; CortanaBlocked = $False; - Credential = $Credscredential; CryptographyAllowFipsAlgorithmPolicy = $False; DefenderBlockEndUserAccess = $False; DefenderBlockOnAccessProtection = $False; @@ -1741,6 +1818,9 @@ WirelessDisplayBlockProjectionToThisDevice = $False; WirelessDisplayBlockUserInputFromReceiver = $False; WirelessDisplayRequirePinForPairing = $False; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationScepCertificatePolicyWindows10 'Example' { @@ -1753,7 +1833,6 @@ CertificateStore = "user"; CertificateValidityPeriodScale = "years"; CertificateValidityPeriodValue = 5; - Credential = $Credscredential; CustomSubjectAlternativeNames = @( MSFT_MicrosoftGraphcustomSubjectAlternativeName{ SanType = 'domainNameService' @@ -1778,6 +1857,9 @@ SubjectNameFormat = "custom"; SubjectNameFormatString = "CN={{UserName}},E={{EmailAddress}}"; RootCertificateId = "169bf4fc-5914-40f4-ad33-48c225396183"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationSecureAssessmentPolicyWindows10 'Example' { @@ -1793,11 +1875,13 @@ ); ConfigurationAccount = "user@domain.com"; ConfigurationAccountType = "azureADAccount"; - Credential = $Credscredential; DisplayName = "Secure Assessment"; Ensure = "Present"; LaunchUri = "https://assessment.domain.com"; LocalGuestAccountName = ""; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10 'Example' { @@ -1814,7 +1898,6 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; DisableAccountManager = $False; DisableEduPolicies = $False; DisablePowerPolicies = $False; @@ -1830,6 +1913,9 @@ SetEduPolicies = "enabled"; SetPowerPolicies = "enabled"; SignInOnResume = "enabled"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationTrustedCertificatePolicyWindows10 'Example' { @@ -1840,11 +1926,13 @@ } ); CertFileName = "RootCA.cer"; - Credential = $Credscredential; DestinationStore = "computerCertStoreRoot"; DisplayName = "Trusted Cert"; Ensure = "Present"; TrustedRootCertificate = "MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFowcDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA="; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationVpnPolicyWindows10 'Example' { @@ -1857,7 +1945,6 @@ AuthenticationMethod = "usernameAndPassword"; ConnectionName = "Cisco VPN"; ConnectionType = "ciscoAnyConnect"; - Credential = $Credscredential; CustomXml = ""; DisplayName = "VPN"; DnsRules = @( @@ -1905,6 +1992,9 @@ } ); TrustedNetworkDomains = @(); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationWindowsTeamPolicyWindows10 'Example' { @@ -1916,7 +2006,6 @@ ); AzureOperationalInsightsBlockTelemetry = $True; ConnectAppBlockAutoLaunch = $True; - Credential = $Credscredential; DisplayName = "Device restrictions (Windows 10 Team)"; Ensure = "Present"; MaintenanceWindowBlocked = $False; @@ -1931,6 +2020,9 @@ SupportsScopeTags = $True; WelcomeScreenBlockAutomaticWakeUp = $True; WelcomeScreenMeetingInformation = "showOrganizerAndTimeOnly"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceConfigurationWiredNetworkPolicyWindows10 'Example' { @@ -1947,7 +2039,6 @@ AuthenticationRetryDelayPeriodInSeconds = 5 AuthenticationType = 'machine' CacheCredentials = $True - Credential = $Credscredential DisplayName = 'Wired Network' EapolStartPeriodInSeconds = 5 EapType = 'teap' @@ -1959,6 +2050,9 @@ TrustedServerCertificateNames = @('srv.domain.com') RootCertificatesForServerValidationIds = @('a485d322-13cd-43ef-beda-733f656f48ea', '169bf4fc-5914-40f4-ad33-48c225396183') SecondaryIdentityCertificateForClientAuthenticationId = '0b9aef2f-1671-4260-8eb9-3ab3138e176a' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceEnrollmentLimitRestriction 'DeviceEnrollmentLimitRestriction' { @@ -1966,7 +2060,9 @@ Description = 'My Restriction' Limit = 12 Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceEnrollmentPlatformRestriction 'DeviceEnrollmentPlatformRestriction' { @@ -1983,7 +2079,6 @@ deviceAndAppManagementAssignmentFilterType = 'none' dataType = '#microsoft.graph.allDevicesAssignmentTarget' }); - Credential = $Credscredential Description = "This is the default Device Type Restriction applied with the lowest priority to all users regardless of group membership."; DeviceEnrollmentConfigurationType = "platformRestrictions"; DisplayName = "All users and all devices"; @@ -2013,6 +2108,9 @@ platformBlocked = $False personalDeviceEnrollmentBlocked = $False }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceEnrollmentStatusPageWindows10 '6b43c039-c1d0-4a9f-aab9-48c5531acbd6' { @@ -2038,7 +2136,9 @@ SelectedMobileAppIds = @(); ShowInstallationProgress = $True; TrackInstallProgressForAutopilotOnly = $True; - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDeviceRemediation 'ConfigureDeviceRemediation' { @@ -2059,7 +2159,6 @@ } } ); - Credential = $Credscredential Description = 'Description' DetectionScriptContent = "Base64 encoded script content"; DeviceHealthScriptType = "deviceHealthScript"; @@ -2072,7 +2171,9 @@ RoleScopeTagIds = @("0"); RunAs32Bit = $True; RunAsAccount = "system"; - TenantId = $OrganizationName; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDiskEncryptionMacOS 'IntuneDiskEncryptionMacOS' { @@ -2087,7 +2188,9 @@ PersonalRecoveryKeyRotationInMonths = 2; RoleScopeTagIds = @("0"); SelectedRecoveryKeyTypes = @("personalRecoveryKey"); - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneDiskEncryptionWindows10 'myDiskEncryption' { @@ -2102,7 +2205,9 @@ IdentificationField = 'IdentificationField' SecIdentificationField = 'SecIdentificationField' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneEndpointDetectionAndResponsePolicyWindows10 'myEDRPolicy' { @@ -2110,7 +2215,9 @@ Assignments = @() Description = 'My revised description' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneExploitProtectionPolicyWindows10SettingCatalog 'myWindows10ExploitProtectionPolicy' { @@ -2269,11 +2376,12 @@ " Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntunePolicySets 'Example' { - Credential = $Credscredential; Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -2300,6 +2408,9 @@ } ); RoleScopeTags = @("0","1"); + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneRoleAssignment 'IntuneRoleAssignment' { @@ -2313,7 +2424,9 @@ RoleDefinition = '2d00d0fd-45e9-4166-904f-b76ac5eed2c7' RoleDefinitionDisplayName = 'This is my role' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneRoleDefinition 'IntuneRoleDefinition' { @@ -2324,7 +2437,9 @@ notallowedResourceActions = @() roleScopeTagIds = @('0', '1') Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneSettingCatalogASRRulesPolicyWindows10 'myASRRulesPolicy' { @@ -2339,11 +2454,12 @@ blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion = 'audit' Description = 'Post' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneSettingCatalogCustomPolicyWindows10 'Example' { - Credential = $Credscredential Assignments = @( MSFT_DeviceManagementConfigurationPolicyAssignments{ deviceAndAppManagementAssignmentFilterType = 'none' @@ -2412,6 +2528,9 @@ } ); Technologies = "mdm"; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWiFiConfigurationPolicyAndroidDeviceAdministrator 'myWifiConfigAndroidDevicePolicy' { @@ -2428,7 +2547,9 @@ Ssid = 'sf' WiFiSecurityType = 'wpaEnterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner 'myWifiConfigAndroidDeviceOwnerPolicy' { @@ -2447,7 +2568,9 @@ ProxySettings = 'none' Ssid = 'MySSID - 3' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile 'myWifiConfigAndroidWorkProfilePolicy' { @@ -2465,7 +2588,9 @@ Ssid = 'MySSID' WiFiSecurityType = 'open' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyAndroidForWork 'Example' { @@ -2486,7 +2611,9 @@ Ssid = 'WiFi' WiFiSecurityType = 'wpa2Enterprise' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyAndroidOpenSourceProject 'myWifiConfigAndroidOpensourcePolicy' { @@ -2504,7 +2631,9 @@ Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyIOS 'myWifiConfigIOSPolicy' { @@ -2524,7 +2653,9 @@ Ssid = 'aaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyMacOS 'myWifiConfigMacOSPolicy' { @@ -2543,7 +2674,9 @@ Ssid = 'aaaaaaaaaaaaa' WiFiSecurityType = 'wpaPersonal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWifiConfigurationPolicyWindows10 'myWifiConfigWindows10Policy' { @@ -2565,12 +2698,13 @@ Ssid = 'ssid' WifiSecurityType = 'wpa2Personal' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined 'Example' { Assignments = @(); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = ""; DeviceType = "windowsPc"; @@ -2588,6 +2722,9 @@ SkipKeyboardSelectionPage = $False UserType = 'standard' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsAutopilotDeploymentProfileAzureADJoined 'Example' { @@ -2597,7 +2734,6 @@ dataType = '#microsoft.graph.allDevicesAssignmentTarget' } ); - Credential = $Credscredential; Description = ""; DeviceNameTemplate = "test"; DeviceType = "windowsPc"; @@ -2614,6 +2750,9 @@ SkipKeyboardSelectionPage = $True UserType = 'administrator' }; + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled 'Example' { @@ -2651,7 +2790,9 @@ ProtectionUnderLockConfigRequired = $False RevokeOnUnenrollDisabled = $False Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10 'Example' { @@ -2660,7 +2801,9 @@ Description = 'test 2' approvalType = 'manual' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 'Example' { @@ -2672,7 +2815,9 @@ OfferStartDateTimeInUTC = '2023-02-03T16:00:00.0000000+00:00' } Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 'Example' { @@ -2692,7 +2837,9 @@ } RoleScopeTagIds = @("0") Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10 'Example' { @@ -2736,7 +2883,9 @@ UserPauseAccess = 'enabled' UserWindowsUpdateScanAccess = 'enabled' Ensure = 'Present' - Credential = $Credscredential + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; } } } From 97e0ecf3a5dc46374942be7904d47f9bfd42b17f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 17 Jul 2024 16:24:39 -0400 Subject: [PATCH 217/273] Update M365DSCTelemetryEngine.psm1 --- .../Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index 6ac0e57bfb..a62b0907b7 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -81,6 +81,12 @@ function Add-M365DSCTelemetryEvent { $Script:M365DSCCountResourceInstance++ } + if ($null -eq $Script:M365DSCOperationStartTime -or $hostId -ne $Script:M365DSCExecutionContextId) + { + $Script:M365DSCOperationStartTime = [System.DateTime]::Now + } + + $Script:M365DSCOperationTimeTaken = [System.DateTime]::Now.Subtract($Script:M365DSCOperationStartTime) if ($hostId -ne $Script:M365DSCExecutionContextId) { @@ -88,6 +94,7 @@ function Add-M365DSCTelemetryEvent } $Data.Add('ResourceInstancesCount', $Script:M365DSCCountResourceInstance) $Data.Add('M365DSCExecutionContextId', $hostId) + $Data.Add('M365DSCOperationTotalTime', $Script:M365DSCOperationTimeTaken.TotalSeconds) } catch { From 5931768e8827ad7766d4c582438bb8c1bca97a4f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 17 Jul 2024 16:29:41 -0400 Subject: [PATCH 218/273] Release 1.24.717.1 --- CHANGELOG.md | 8 +-- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 55 ++++++++++++-------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2987a1c5f..89d19d2a2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.717.1 * EXOHostedOutboundSpamFilterPolicy * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and @@ -15,13 +15,13 @@ * Initial Release FIXES [#4050](https://github.com/microsoft/Microsoft365DSC/issues/4050) * IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 - * Initial release. + * Initial release. FIXES [#2659](https://github.com/microsoft/Microsoft365DSC/issues/2659) * SPOSharingSettings * Improved performance by using -Filter on Get-PnPTenantSite calls. * M365DSCDRGUtil * Fixes an issue with nested and duplicate settings in the settings catalog - * Add support for converting Intune assignments directly from Graph. + * Add support for converting Intune assignments directly from Graph. FIXES [#4875](https://github.com/microsoft/Microsoft365DSC/issues/4875) * M365DSCResourceGenerator * Update Intune resource generation. @@ -31,6 +31,8 @@ FIXES [#4505](https://github.com/microsoft/Microsoft365DSC/issues/4505) * Fixes an issue where the comparison treats empty arrays as an empty string. FIXES [#4796](https://github.com/microsoft/Microsoft365DSC/issues/4796) +* Telemetry + * Added info about operation total execution time. # 1.24.710.3 diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 56af643474..ef6275d857 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-07-11 +# Generated on: 2024-07-17 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.710.3' + ModuleVersion = '1.24.717.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,28 +142,37 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* AADApplication - * Fixes an error where the duplicate error was being trapped, - which could cause extra instances to be created. -* AADGroup - * Fixes an error where the duplicate error was being trapped, - which could cause extra instances to be created. -* IntuneDeviceConfigurationPlatformScriptMacOS - * Fixes an issue where the assignments are missing if filtered by display name. + ReleaseNotes = '* EXOHostedOutboundSpamFilterPolicy + * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and + RecipientLimitExternalPerHour parameters to UInt32. +* EXOMessageClassification + * Fix issue while creating policy for first time + FIXES [#4877](https://github.com/microsoft/Microsoft365DSC/issues/4877) +* IntuneDeviceConfigurationEmailProfilePolicyWindows10 + * Fix export by fixing some typos and from where values are extracted + FIXES [#3960](https://github.com/microsoft/Microsoft365DSC/issues/3960) +* IntuneDiskEncryptionWindows10 + * Initial Release + FIXES [#4050](https://github.com/microsoft/Microsoft365DSC/issues/4050) +* IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 + * Initial release. + FIXES [#2659](https://github.com/microsoft/Microsoft365DSC/issues/2659) +* SPOSharingSettings + * Improved performance by using -Filter on Get-PnPTenantSite calls. * M365DSCDRGUtil - * Fixes an issue where the return value was changed to a single object - instead of an array. - FIXES [#4844](https://github.com/microsoft/Microsoft365DSC/issues/4844) - * Fixes an issue where Graph models were not treated properly as a complex object. -* TELEMETRY - * Added instance count. - * Added roles scopes info. -* DEPENDENCIES - * Updated DSCParser to version 2.0.0.7. - * Updated Microsoft.Graph to version 2.20.0 - * Updated Microsoft.PowerApps.Administration.PowerShell to version 2.0.191 -* MISC - * Fixes issue with App Secret Authentication flow.' + * Fixes an issue with nested and duplicate settings in the settings catalog + * Add support for converting Intune assignments directly from Graph. + FIXES [#4875](https://github.com/microsoft/Microsoft365DSC/issues/4875) +* M365DSCResourceGenerator + * Update Intune resource generation. +* M365DSCReport + * Changes behaviour to not throw on empty configuration during report generation. + FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) + FIXES [#4505](https://github.com/microsoft/Microsoft365DSC/issues/4505) + * Fixes an issue where the comparison treats empty arrays as an empty string. + FIXES [#4796](https://github.com/microsoft/Microsoft365DSC/issues/4796) +* Telemetry + * Added info about operation total execution time.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From ef976fc203d739e372b00b425813dfd8a0b0ed0c Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 17 Jul 2024 16:47:17 -0400 Subject: [PATCH 219/273] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37d7252fa6..41a4039769 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,8 @@ # UNRELEASED -* MSFT_AADConditionalAccessPolicy - * Made failures write to the error output instead of just verbose +* AADConditionalAccessPolicy + * Made failures write to the error output instead of just verbose. * EXOHostedOutboundSpamFilterPolicy * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and RecipientLimitExternalPerHour parameters to UInt32. From 52c0bd630bddce07f8936e678bb13bc517bd2a78 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Wed, 17 Jul 2024 15:49:01 +0200 Subject: [PATCH 220/273] Migrate Intune Antivirus resource to new settings catalog cmdlets --- CHANGELOG.md | 7 + ...ntivirusPolicyWindows10SettingCatalog.psm1 | 767 ++++-------------- ...usPolicyWindows10SettingCatalog.schema.mof | 5 +- .../Modules/M365DSCDRGUtil.psm1 | 10 +- ...inistratorPasswordSolutionPolicy.Tests.ps1 | 7 - ...rusPolicyWindows10SettingCatalog.Tests.ps1 | 107 ++- 6 files changed, 247 insertions(+), 656 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 455cd4d420..a181bd9f8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneAntivirusPolicyWindows10SettingCatalog + * Migrate to new settings catalog cmdlets. +* M365DSCDRGUtil + * Fixes an issue where only 25 settings catalog templates were fetched with one call. + # 1.24.717.1 * AADConditionalAccessPolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 index c6fd77622d..ee7e18ef29 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 @@ -165,6 +165,11 @@ function Get-TargetResource [System.String] $disablehttpparsing, + [Parameter()] + [ValidateSet('1', '0')] + [System.String] + $DisableSshParsing, + [Parameter()] [ValidateSet('0', '1')] [System.String] @@ -285,6 +290,7 @@ function Get-TargetResource $schedulescanday, [Parameter()] + [ValidateRange(0, 1380)] [System.Int32] $schedulescantime, @@ -312,6 +318,7 @@ function Get-TargetResource $signatureupdatefilesharessources, [Parameter()] + [ValidateRange(0, 24)] [System.Int32] $signatureupdateinterval, @@ -402,108 +409,76 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Checking for the Intune Endpoint Protection Policy {$DisplayName}" + try + { + Write-Verbose -Message "Checking for the Intune Endpoint Protection Policy {$DisplayName}" - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters ` - -ErrorAction Stop + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters ` + -ErrorAction Stop - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies - #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' - $CommandName = $MyInvocation.MyCommand - $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` - -CommandName $CommandName ` - -Parameters $PSBoundParameters - Add-M365DSCTelemetryEvent -Data $data - #endregion + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion - $nullResult = $PSBoundParameters - $nullResult.Ensure = 'Absent' + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + + $templateReferences = "d948ff9b-99cb-4ee0-8012-1fbc09685377_1", "e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1", "45fea5e9-280d-4da1-9792-fb5736da0ca9_1","804339ad-1553-4478-a742-138fb5807418_1" - try - { #Retrieve policy general settings - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ExpandProperty settings -ErrorAction SilentlyContinue + $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction SilentlyContinue if ($null -eq $policy) { - Write-Verbose -Message "No policy with Id {$Identity} was found. Trying to retrieve by name {$DisplayName}." - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -Filter "Name eq '$DisplayName'" + Write-Verbose -Message "Could not find an Intune Antivirus Policy for Windows10 Setting Catalog with Id {$Identity}" - if ($null -eq $policy) + if (-not [System.String]::IsNullOrEmpty($DisplayName)) { - Write-Verbose -Message "No policy with name {$DisplayName} was found." - return $nullResult - } - - if(([array]$policy).count -gt 1) - { - throw "A policy with a duplicated displayName {'$DisplayName'} was found - Ensure displayName is unique" + $policy = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName'" ` + -ErrorAction SilentlyContinue | Where-Object ` + -FilterScript { + $_.TemplateReference.TemplateId -in $templateReferences + } } + } - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $policy.id -ExpandProperty settings -ErrorAction SilentlyContinue - + if ($null -eq $policy) + { + Write-Verbose -Message "Could not find an Intune Antivirus Policy for Windows10 Setting Catalog with Name {$DisplayName}" + return $nullResult } + $Identity = $policy.Id + Write-Verbose -Message "An Intune Antivirus Policy for Windows10 Setting Catalog with Id {$Identity} and Name {$DisplayName} was found." #Retrieve policy specific settings - $Identity = $policy.id - [array]$settings = $policy.settings + [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` + -DeviceManagementConfigurationPolicyId $Identity ` + -ExpandProperty 'settingDefinitions' ` + -ErrorAction Stop + + $policySettings = @{} + $policySettings = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $policySettings $returnHashtable = @{} - $returnHashtable.Add('Identity', $policy.id) + $returnHashtable.Add('Identity', $Identity) $returnHashtable.Add('DisplayName', $policy.name) $returnHashtable.Add('Description', $policy.description) $returnHashtable.Add('templateId', $policy.templateReference.templateId) + $returnHashtable += $policySettings - foreach ($setting in $settings.settingInstance) - { - $addToParameters = $true - $settingName = $setting.settingDefinitionId.Split('_') | Select-Object -Last 1 - if ($settingName -eq 'options') - { - $settingName = 'tamperprotection' - } - - switch ($setting.AdditionalProperties.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.simpleSettingCollectionValue) - { - $values += Get-DeviceManagementConfigurationSettingInstanceValue -Setting $value - } - $settingValue = $values - } - - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.groupSettingCollectionValue.children) - { - $settingName = $value.settingDefinitionId.split('_') | Select-Object -Last 1 - $settingValue = Get-DeviceManagementConfigurationSettingInstanceValue -Setting $value - $returnHashtable.Add($settingName, $settingValue) - $addToParameters = $false - } - } - Default - { - $settingValue = Get-DeviceManagementConfigurationSettingInstanceValue -Setting $setting.AdditionalProperties - } - } - if ($addToParameters) - { - $returnHashtable.Add($settingName, $settingValue) - } - - } $returnAssignments = @() - $graphAssignments = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $policy.Id - if ($graphAssignments.count -gt 0) + $graphAssignments = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Identity + if ($graphAssignments.Count -gt 0) { $returnAssignments += ConvertFrom-IntunePolicyAssignment ` -IncludeDeviceFilter:$true ` @@ -511,8 +486,6 @@ function Get-TargetResource } $returnHashtable.Add('Assignments', $returnAssignments) - Write-Verbose -Message "Found Endpoint Protection Policy {$($policy.name)}" - $returnHashtable.Add('Ensure', 'Present') $returnHashtable.Add('Credential', $Credential) $returnHashtable.Add('ApplicationId', $ApplicationId) @@ -703,6 +676,11 @@ function Set-TargetResource [System.String] $disablehttpparsing, + [Parameter()] + [ValidateSet('1', '0')] + [System.String] + $DisableSshParsing, + [Parameter()] [ValidateSet('0', '1')] [System.String] @@ -823,6 +801,7 @@ function Set-TargetResource $schedulescanday, [Parameter()] + [ValidateRange(0, 1380)] [System.Int32] $schedulescantime, @@ -850,6 +829,7 @@ function Set-TargetResource $signatureupdatefilesharessources, [Parameter()] + [ValidateRange(0, 24)] [System.Int32] $signatureupdateinterval, @@ -956,15 +936,7 @@ function Set-TargetResource #endregion $currentPolicy = Get-TargetResource @PSBoundParameters - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null - $PSBoundParameters.Remove('ManagedIdentity') | Out-Null - $PSBoundParameters.Remove('templateId') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters $templateReferenceId = $templateId $platforms = 'windows10' @@ -973,38 +945,41 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') { Write-Verbose -Message "Creating new Endpoint Protection Policy {$DisplayName}" - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Identity') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null - - $settings = Format-M365DSCIntuneSettingCatalogPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId - - $policy = New-IntuneDeviceConfigurationPolicy ` - -Name $DisplayName ` - -Description $Description ` - -TemplateReferenceId $templateReferenceId ` - -Platforms $platforms ` - -Technologies $technologies ` - -Settings $settings + $BoundParameters.Remove('Identity') | Out-Null + $BoundParameters.Remove('Assignments') | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReferenceId = @{ templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } - $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id -Targets $assignmentsHash + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters + if ($policy.Id) + { + $assignmentsHash = ConvertTo-IntunePolicyAssignment -Assignments $Assignments -IncludeDeviceFilter:$true + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + } } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Present') { Write-Verbose -Message "Updating existing Endpoint Protection Policy {$($currentPolicy.DisplayName)}" - $PSBoundParameters.Remove('DisplayName') | Out-Null - $PSBoundParameters.Remove('Description') | Out-Null - $PSBoundParameters.Remove('Identity') | Out-Null - $PSBoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null + $BoundParameters.Remove('Assignments') | Out-Null - $settings = Format-M365DSCIntuneSettingCatalogPolicySettings ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` - -TemplateReferenceId $templateReferenceId + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId Update-IntuneDeviceConfigurationPolicy ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` @@ -1016,8 +991,10 @@ function Set-TargetResource -Settings $settings $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $currentPolicy.Identity -Targets $assignmentsHash - + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentPolicy.Identity ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') { @@ -1193,6 +1170,11 @@ function Test-TargetResource [System.String] $disablehttpparsing, + [Parameter()] + [ValidateSet('1', '0')] + [System.String] + $DisableSshParsing, + [Parameter()] [ValidateSet('0', '1')] [System.String] @@ -1313,6 +1295,7 @@ function Test-TargetResource $schedulescanday, [Parameter()] + [ValidateRange(0, 1380)] [System.Int32] $schedulescantime, @@ -1340,6 +1323,7 @@ function Test-TargetResource $signatureupdatefilesharessources, [Parameter()] + [ValidateRange(0, 24)] [System.Int32] $signatureupdateinterval, @@ -1450,9 +1434,6 @@ function Test-TargetResource throw "An error occured in Get-TargetResource, the policy {$displayName} will not be processed. Refer to the event viewer logs for more information." } - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - [Hashtable]$ValuesToCheck = @{} $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) @@ -1462,60 +1443,48 @@ function Test-TargetResource $ValuesToCheck.Add($_.Key, $null) if (-not $PSBoundParameters.ContainsKey($_.Key)) { - $value = $null - switch ($CurrentValues[$_.Key].GetType().Name) - { - 'String' - { - $value = '' - } - 'Int32' - { - $value = 0 - } - 'String[]' - { - $value = @() - } - } - $PSBoundParameters.Add($_.Key, $value) + $PSBoundParameters.Add($_.Key, $null) } } } } - $ValuesToCheck.Remove('Identity') | Out-Null - $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck - - $testResult = $true if ($CurrentValues.Ensure -ne $Ensure) { - $testResult = $false + Write-Verbose -Message "Test-TargetResource returned $false" + return $false } + $testResult = $true - #region Assignments - if ($testResult) - { - $source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $PSBoundParameters.Assignments - $target = $CurrentValues.Assignments - $testResult = Compare-M365DSCIntunePolicyAssignment -Source $source -Target $target - $ValuesToCheck.Remove('Assignments') | Out-Null - } - #endregion - - if ($testResult) + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) { - foreach ($key in $PSBoundParameters.keys) + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { - #Removing empty array when not returned from Get-Resource - $value = $PSBoundParameters.$key - if ($null -ne $value -and $value.getType().Name -like '*[[\]]' -and $value.count -eq 0 -and $null -eq $CurrentValues.$key) + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + + if (-not $testResult) { - $ValuesToCheck.remove($key) + break } + + $ValuesToCheck.Remove($key) | Out-Null } + } - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + $ValuesToCheck.Remove('Identity') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + + if ($testResult) + { + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` -ValuesToCheck $ValuesToCheck.Keys @@ -1611,16 +1580,16 @@ function Export-TargetResource Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ - Identity = $policy.id + Identity = $policy.Id DisplayName = $policy.Name - TemplateId = $policy.templateReference.templateId + TemplateId = $policy.TemplateReference.TemplateId Ensure = 'Present' Credential = $Credential ApplicationId = $ApplicationId TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } @@ -1631,47 +1600,39 @@ function Export-TargetResource throw "An error occured in Get-TargetResource, the policy {$($params.displayName)} will not be processed. Refer to the event viewer logs for more information." } - if ($Results.Ensure -eq 'Present') - { - $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` - -Results $Results + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results - if ($Results.Assignments) + if ($Results.Assignments) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) { - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments - if ($complexTypeStringResult) - { - $Results.Assignments = $complexTypeStringResult - } - else - { - $Results.Remove('Assignments') | Out-Null - } + $Results.Assignments = $complexTypeStringResult } - - $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` - -ConnectionMode $ConnectionMode ` - -ModulePath $PSScriptRoot ` - -Results $Results ` - -Credential $Credential -Verbose - - if ($Results.Assignments) + else { - $isCIMArray = $false - if ($Results.Assignments.getType().Fullname -like '*[[\]]') - { - $isCIMArray = $true - } - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$isCIMArray + $Results.Remove('Assignments') | Out-Null } + } - $dscContent += $currentDSCBlock - Save-M365DSCPartialExport -Content $currentDSCBlock ` - -FileName $Global:PartialExportFileName + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential -Verbose - Write-Host $Global:M365DSCEmojiGreenCheckMark - $i++ + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + + Write-Host $Global:M365DSCEmojiGreenCheckMark + $i++ } return $dscContent } @@ -1697,420 +1658,4 @@ function Export-TargetResource } } -function Get-DeviceManagementConfigurationSettingInstanceValue -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $Setting - ) - #write-verbose -Message ($setting|fl|out-string) - #write-verbose -Message ("setting: "+$setting.settingDefinitionId+" type: "+$setting.'@odata.type') - switch ($setting.'@odata.type') - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - { - $settingValue = $setting.choiceSettingValue.value.split('_') | Select-Object -Last 1 - - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' - { - $settingValue = $setting.simpleSettingValue.value - } - Default - { - $settingValue = $setting.value - } - } - return $settingValue -} - -function New-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param ( - - [Parameter(Mandatory = 'true')] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - - ) - try - { - $Uri = 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'technologies' = $Technologies - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #Write-Verbose -Message $body - Invoke-MgGraphRequest -Method POST -Uri $Uri -Body $body -ErrorAction Stop - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - #write-verbose ($_ | out-string) - return $null - } -} -function Update-IntuneDeviceConfigurationPolicy -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param ( - [Parameter(Mandatory = 'true')] - [System.String] - $DeviceConfigurationPolicyId, - - [Parameter()] - [System.String] - $Name, - - [Parameter()] - [System.String] - $Description, - - [Parameter()] - [System.String] - $Platforms, - - [Parameter()] - [System.String] - $Technologies, - - [Parameter()] - [System.String] - $TemplateReferenceId, - - [Parameter()] - [Array] - $Settings - - ) - try - { - $Uri = "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies/$DeviceConfigurationPolicyId" - - $policy = @{ - 'name' = $Name - 'description' = $Description - 'platforms' = $Platforms - 'templateReference' = @{'templateId' = $TemplateReferenceId } - 'technologies' = $Technologies - 'settings' = $Settings - } - $body = $policy | ConvertTo-Json -Depth 20 - #write-verbose -Message $body - Invoke-MgGraphRequest -Method PUT -Uri $Uri -Body $body -ErrorAction Stop 4> $null - - } - catch - { - New-M365DSCLogEntry -Message 'Error updating data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential - - return $null - } -} - -function Format-M365DSCParamsToSettingInstance -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $TemplateSetting, - - [Parameter()] - [System.Boolean] - $IncludeSettingInstanceTemplateId = $true, - - [Parameter()] - [System.Boolean] - $IncludeSettingValueTemplateId = $true - - ) - - $DSCParams.Remove('Verbose') | Out-Null - $results = @() - - foreach ($param in $DSCParams.Keys) - { - $settingInstance = [ordered]@{} - $settingInstance.add('settingDefinitionId', $templateSetting.settingDefinitionId) - if ($IncludeSettingInstanceTemplateId -and -Not [string]::IsNullOrEmpty($templateSetting.settingInstanceTemplateId)) - { - $settingInstance.add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $templateSetting.settingInstanceTemplateId }) - } - - $odataType = $templateSetting.AdditionalProperties.'@odata.type' - if ([string]::IsNullOrEmpty($odataType)) - { - $odataType = $templateSetting.'@odata.type' - } - $settingInstance.add('@odata.type', $odataType.replace('Template', '')) - - switch ($odataType) - { - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstanceTemplate' - { - $choiceSettingValue = [ordered]@{} - $choiceSettingValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue') - $choiceSettingValue.add('children', @()) - $settingValueTemplateId = $templateSetting.AdditionalProperties.choiceSettingValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $choiceSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $choiceSettingValue.add('value', "$($templateSetting.settingDefinitionId)`_$($DSCParams.$param)") - $settingInstance.add('choiceSettingValue', $choiceSettingValue) - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstanceTemplate' - { - $simpleSettingCollectionValues = @() - - foreach ($value in $DSCParams.$param) - { - $simpleSettingCollectionValue = @{} - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.settingValueTemplateId - if ($IncludeSettingValueTemplateId -and -Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - $settingValueDataType = $templateSetting.AdditionalProperties.simpleSettingCollectionValueTemplate.'@odata.type'.replace('Template', '') - $simpleSettingCollectionValue.add('@odata.type', $settingValueDataType) - $simpleSettingCollectionValue.add('value', $value) - $simpleSettingCollectionValues += $simpleSettingCollectionValue - } - $settingInstance.add('simpleSettingCollectionValue', $simpleSettingCollectionValues) - - $results += $settingInstance - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstanceTemplate' - { - $simpleSettingValue = @{} - $SettingValueType = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.'@odata.type' - if (-Not [string]::IsNullOrEmpty($SettingValueType)) - { - $simpleSettingValue.add('@odata.type', $SettingValueType.replace('Template', '')) - } - $simpleSettingValue.add('value', $DSCParams.$param) - - $settingValueTemplateId = $templateSetting.AdditionalProperties.simpleSettingValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $simpleSettingValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) - } - - $settingInstance.add('simpleSettingValue', $simpleSettingValue) - $results += $settingInstance - } - } - } - - if ($results.count -eq 1) - { - return $results[0] - } - return $results -} - -function Format-M365DSCIntuneSettingCatalogPolicySettings -{ - [CmdletBinding()] - [OutputType([System.Array])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter(Mandatory = 'true')] - [System.String] - $templateReferenceId - ) - - $DSCParams.Remove('Identity') | Out-Null - $DSCParams.Remove('DisplayName') | Out-Null - $DSCParams.Remove('Description') | Out-Null - - $settings = @() - - $templateSettings = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $templateReferenceId -All - - #write-verbose -Message ( $DSCParams|out-string) - - $simpleSettings = @() - $simpleSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -ne '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - - $keys = $DSCParams.keys - $keys = $keys -replace 'tamperprotection', 'options' - foreach ($templateSetting in $simpleSettings) - { - $setting = @{} - $settingKey = $keys | Where-Object -FilterScript { $templateSetting.settingDefinitionId -like "*$($_)" } - $originalKey = $settingKey - if ($settingKey -eq 'options') - { - $originalKey = 'tamperprotection' - } - if ((-not [String]::IsNullOrEmpty($settingKey)) -and $null -ne $DSCParams."$originalKey") - { - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - - $includeValueReference = $true - $includeSettingInstanceReference = $true - $doNotIncludesettingInstanceReferenceKeys = @( - 'highseveritythreats' - 'lowseveritythreats' - ) - $noValueReferenceKeys = @( - 'excludedpaths' - 'excludedprocesses' - 'excludedextensions' - ) - if ($originalKey -in $noValueReferenceKeys) - { - $includeValueReference = $false - } - if ($originalKey -in $doNotIncludesettingInstanceReferenceKeys) - { - $includeSettingInstanceReference = $false - } - $myFormattedSetting = Format-M365DSCParamsToSettingInstance -DSCParams @{$settingKey = $DSCParams."$originalKey" } ` - -TemplateSetting $templateSetting ` - -IncludeSettingValueTemplateId $includeValueReference ` - -IncludeSettingInstanceTemplateId $includeSettingInstanceReference - - $setting.add('settingInstance', $myFormattedSetting) - $settings += $setting - $DSCParams.Remove($settingKey) | Out-Null - - } - } - - $groupCollectionTemplateSettings = @() - $groupCollectionTemplateSettings += $templateSettings.SettingInstanceTemplate | Where-Object -FilterScript ` - { $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' } - - foreach ($groupCollectionTemplateSetting in $groupCollectionTemplateSettings) - { - $setting = @{} - $setting.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationSetting') - $settingInstance = [ordered]@{} - $settingInstance.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance') - $settingInstance.add('settingDefinitionId', $groupCollectionTemplateSetting.settingDefinitionId) - $settingInstance.add('settingInstanceTemplateReference', @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference' - 'settingInstanceTemplateId' = $groupCollectionTemplateSetting.settingInstanceTemplateId - }) - $groupSettingCollectionValues = @() - $groupSettingCollectionValueChildren = @() - $groupSettingCollectionValue = @{} - $groupSettingCollectionValue.add('@odata.type', '#microsoft.graph.deviceManagementConfigurationGroupSettingValue') - - $settingValueTemplateId = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.settingValueTemplateId - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $groupSettingCollectionValue.add('settingValueTemplateReference', @{'settingValueTemplateId' = $SettingValueTemplateId }) - } - - foreach ($key in $DSCParams.keys) - { - $templateValue = $groupCollectionTemplateSetting.AdditionalProperties.groupSettingCollectionValueTemplate.children | Where-Object ` - -FilterScript { $_.settingDefinitionId -like "*$key" } - if ($templateValue) - { - $includeValueReference = $true - $includeSettingInstanceReference = $true - $doNotIncludesettingInstanceReferenceKeys = @( - 'highseveritythreats' - 'lowseveritythreats' - 'moderateseveritythreats' - 'severethreats' - ) - $noValueReferenceKeys = @( - 'excludedpaths' - 'excludedprocesses' - 'excludedextensions' - 'highseveritythreats' - 'lowseveritythreats' - 'moderateseveritythreats' - 'severethreats' - ) - if ($key -in $noValueReferenceKeys) - { - $includeValueReference = $false - } - if ($key -in $doNotIncludesettingInstanceReferenceKeys) - { - $includeSettingInstanceReference = $false - } - $groupSettingCollectionValueChild = Format-M365DSCParamsToSettingInstance ` - -DSCParams @{$key = $DSCParams."$key" } ` - -TemplateSetting $templateValue ` - -IncludeSettingValueTemplateId $includeValueReference ` - -IncludeSettingInstanceTemplateId $includeSettingInstanceReference - - $groupSettingCollectionValueChildren += $groupSettingCollectionValueChild - } - } - - $groupSettingCollectionValue.add('children', $groupSettingCollectionValueChildren) - $groupSettingCollectionValues += $groupSettingCollectionValue - $settingInstance.add('groupSettingCollectionValue', $groupSettingCollectionValues) - - $setting.add('settingInstance', $settingInstance) - - if ($setting.settingInstance.groupSettingCollectionValue.children.count -gt 0) - { - $settings += $setting - } - } - - return $settings -} - Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof index 01e5b4d249..f88d71bef5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof @@ -59,6 +59,7 @@ class MSFT_IntuneAntivirusPolicyWindows10SettingCatalog : OMI_BaseResource [Write, Description("This policy setting allows you to configure catch-up scans for scheduled quick scans. (1: disabled, 0: enabled)"), ValueMap{"0","1"}, Values{"0","1"}] String disablecatchupquickscan; [Write, Description("Disables or enables DNS over TCP Parsing for Network Protection. (0: enable feature. 1: disable feature)"), ValueMap{"0","1"}, Values{"0","1"}] String disablednsovertcpparsing; [Write, Description("Disables or enables HTTP Parsing for Network Protection. (0: enable feature. 1: disable feature)"), ValueMap{"0","1"}, Values{"0","1"}] String disablehttpparsing; + [Write, Description("Disable Ssh Parsing (1: SSH parsing is disabled, 0: SSH parsing is enabled)"), ValueMap{"1", "0"}, Values{"1", "0"}] String DisableSshParsing; [Write, Description("This policy setting allows you to enable or disable low CPU priority for scheduled scans. (0: disable feature. 1: enable feature)"), ValueMap{"0","1"}, Values{"0","1"}] String enablelowcpupriority; [Write, Description("This policy allows you to turn on network protection (block/audit) or off. (0: disabled, 1: block mode, 2: audit mode)"), ValueMap{"0", "1", "2"}, Values{"0", "1", "2"}] String enablenetworkprotection; [Write, Description("Allows an administrator to specify a list of file type extensions to ignore during a scan.")] String excludedextensions[]; @@ -73,13 +74,13 @@ class MSFT_IntuneAntivirusPolicyWindows10SettingCatalog : OMI_BaseResource [Write, Description("Selects whether to perform a quick scan or full scan. (1: Quick scan, 2: Full scan)"), ValueMap{"1","2"}, Values{"1","2"}] String scanparameter; [Write, Description("Selects the time of day that the Windows Defender quick scan should run.")] sInt32 schedulequickscantime; [Write, Description("Selects the day that the Windows Defender scan should run. (0: Every day, 1: Sunday, 2: Monday, 3: Tuesday, 4: Wednesday, 5: Thursday, 6: Friday, 7: Saturday, 8: No scheduled scan)"), ValueMap{"0","1","2","3","4","5","6","7","8"}, Values{"0","1","2","3","4","5","6","7","8"}] String schedulescanday; - [Write, Description("Selects the time of day that the Windows Defender scan should run.")] sInt32 schedulescantime; + [Write, Description("Selects the time of day that the Windows Defender scan should run. Must be between 0 and 1380 minutes.")] sInt32 schedulescantime; [Write, Description("This setting disables TLS Parsing for Network Protection. (0: enabled, 1: disabled)"), ValueMap{"0","1"}, Values{"0","1"}] String disabletlsparsing; [Write, Description("Specifies if the start time of the scan is randomized. (0: no randomization, 1: randomized)"), ValueMap{"0","1"}, Values{"0","1"}] String randomizescheduletasktimes; [Write, Description("This setting allows you to configure the scheduler randomization in hours. The randomization interval is [1 - 23] hours.")] sInt32 schedulerrandomizationtime; [Write, Description("This policy setting allows you to define the order in which different definition update sources should be contacted.")] String signatureupdatefallbackorder[]; [Write, Description("This policy setting allows you to configure UNC file share sources for downloading definition updates.")] String signatureupdatefilesharessources[]; - [Write, Description("Specifies the interval (in hours) that will be used to check for signatures, so instead of using the ScheduleDay and ScheduleTime the check for new signatures will be set according to the interval.")] sInt32 signatureupdateinterval; + [Write, Description("Specifies the interval (in hours) that will be used to check for signatures, so instead of using the ScheduleDay and ScheduleTime the check for new signatures will be set according to the interval. Must be between 0 and 24 hours.")] sInt32 signatureupdateinterval; [Write, Description("Checks for the user consent level in Windows Defender to send data. (0: Always prompt, 1: Send safe samples automatically, 2: Never send, 3: Send all samples automatically)"), ValueMap{"0","1","2","3"}, Values{"0","1","2","3"}] String submitsamplesconsent; [Write, Description("This policy setting controls whether or not complex list settings configured by a local administrator are merged with managed settings. (0: enable local admin merge, 1: disable local admin merge)"), ValueMap{"0","1"}, Values{"0","1"}] String disablelocaladminmerge; [Write, Description("Allows or disallows Windows Defender On Access Protection functionality. (0: disable feature. 1: enable feature)"), ValueMap{"0","1"}, Values{"0","1"}] String allowonaccessprotection; diff --git a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 index 8098a13922..6f84482e14 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCDRGUtil.psm1 @@ -1512,7 +1512,10 @@ function Get-IntuneSettingCatalogPolicySetting $DSCParams.Remove('Description') | Out-Null # Prepare setting definitions mapping - $settingTemplates = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $TemplateId -ExpandProperty 'SettingDefinitions' + $settingTemplates = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate ` + -DeviceManagementConfigurationPolicyTemplateId $TemplateId ` + -ExpandProperty 'SettingDefinitions' ` + -All $settingInstances = @() # Iterate over all setting instance templates @@ -1560,6 +1563,11 @@ function Get-IntuneSettingCatalogPolicySetting if ($settingValue.Count -gt 0) { + if ($settingValue.Keys -contains 'groupSettingCollectionValue' -and $settingValue.groupSettingCollectionValue.children.Count -eq 0) + { + continue + } + $settingInstance += [Hashtable]$settingValue if ($settingInstance.Keys -notcontains 'settingDefinitionId') { diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 index a00146b23b..791f56e8c4 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.Tests.ps1 @@ -57,13 +57,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { return ,@() } - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { - return @(@{ - dataType = '#microsoft.graph.exclusionGroupAssignmentTarget' - collectionId = '26d60dd1-fab6-47bf-8656-358194c1a49d' - }) - } - Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { } diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAntivirusPolicyWindows10SettingCatalog.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAntivirusPolicyWindows10SettingCatalog.Tests.ps1 index 53ddcb6aeb..c1ab851ec4 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAntivirusPolicyWindows10SettingCatalog.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAntivirusPolicyWindows10SettingCatalog.Tests.ps1 @@ -34,7 +34,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { } - Mock -CommandName New-IntuneDeviceConfigurationPolicy -MockWith { + Mock -CommandName New-MgBetaDeviceManagementConfigurationPolicy -MockWith { return @{ Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' } @@ -42,9 +42,39 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -MockWith { } - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyTemplate -MockWith { + Mock -CommandName Get-IntuneSettingCatalogPolicySetting -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { return @{ - TemplateId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_policy_config_defender_allowarchivescanning' + Name = 'AllowArchiveScanning' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_policy_config_defender_allowarchivescanning' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = '7c5c9cde-f74d-4d11-904f-de4c27f72d89' + AdditionalProperties = $null + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + value = 'device_vendor_msft_policy_config_defender_allowarchivescanning_1' + settingValueTemplateReference = @{ + settingValueTemplateId = '9ead75d4-6f30-4bc5-8cc5-ab0f999d79f0' + useTemplateDefault = $false + } + children = @() + } + } + } } } @@ -57,35 +87,12 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { TemplateId = 'd948ff9b-99cb-4ee0-8012-1fbc09685377_1' TemplateFamily = 'endpointSecurityAntivirus' } - Settings = @(@{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_policy_config_defender_allowarchivescanning' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = '7c5c9cde-f74d-4d11-904f-de4c27f72d89' - AdditionalProperties = $null - } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - choiceSettingValue = @{ - value = 'device_vendor_msft_policy_config_defender_allowarchivescanning_0' #drift - settingValueTemplateReference = @{ - settingValueTemplateId = '9ead75d4-6f30-4bc5-8cc5-ab0f999d79f0' - useTemplateDefault = $false - } - children = $null - } - } - - } - AdditionalProperties = $null - }) } } Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { - return @(@{ + return @( + @{ Id = '12345-12345-12345-12345-12345' Source = 'direct' SourceId = '12345-12345-12345-12345-12345' @@ -99,7 +106,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } ) } - }) + } + ) } Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { @@ -121,7 +129,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' DeviceAndAppManagementAssignmentFilterType = 'none' - DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' GroupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) @@ -148,7 +155,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { It 'Should create the instance from the Set method' { Set-TargetResource @testParams - Should -Invoke -CommandName New-IntuneDeviceConfigurationPolicy -Exactly 1 + Should -Invoke -CommandName New-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 } } @@ -160,7 +167,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' DeviceAndAppManagementAssignmentFilterType = 'none' - DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' GroupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) @@ -171,6 +177,39 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { templateId = 'd948ff9b-99cb-4ee0-8012-1fbc09685377_1' Identity = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_policy_config_defender_allowarchivescanning' + Name = 'AllowArchiveScanning' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_policy_config_defender_allowarchivescanning' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = '7c5c9cde-f74d-4d11-904f-de4c27f72d89' + AdditionalProperties = $null + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + value = 'device_vendor_msft_policy_config_defender_allowarchivescanning_0' #drift + settingValueTemplateReference = @{ + settingValueTemplateId = '9ead75d4-6f30-4bc5-8cc5-ab0f999d79f0' + useTemplateDefault = $false + } + children = $null + } + } + } + } + } } It 'Should return Present from the Get method' { @@ -190,12 +229,11 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Context -Name 'When the instance already exists and IS in the Desired State' -Fixture { BeforeAll { $testParams = @{ - allowarchivescanning = '0' + allowarchivescanning = '1' Assignments = [CimInstance[]]@( (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' DeviceAndAppManagementAssignmentFilterType = 'none' - DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' GroupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) @@ -221,7 +259,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' DeviceAndAppManagementAssignmentFilterType = 'none' - DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' GroupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' } -ClientOnly) ) From ccf8a61d8e87a54a91bcbeb715140a8b76dc697d Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 18 Jul 2024 15:04:59 +0200 Subject: [PATCH 221/273] Add template display name to template id for Intune Antivirus resource --- ...MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof index f88d71bef5..f95e692cab 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.schema.mof @@ -88,7 +88,7 @@ class MSFT_IntuneAntivirusPolicyWindows10SettingCatalog : OMI_BaseResource [Write, Description("Allows an administrator to specify moderate severity threats corresponding action ID to take."),ValueMap{"clean", "quarantine","remove", "allow", "userdefined","block"}, Values{"clean", "quarantine","remove", "allow", "userdefined","block"}] String moderateseveritythreats; [Write, Description("Allows an administrator to specify high severity threats corresponding action ID to take."),ValueMap{"clean", "quarantine","remove", "allow", "userdefined","block"}, Values{"clean", "quarantine","remove", "allow", "userdefined","block"}] String severethreats; [Write, Description("Allows an administrator to specify severe threats corresponding action ID to take."),ValueMap{"clean", "quarantine","remove", "allow", "userdefined","block"}, Values{"clean", "quarantine","remove", "allow", "userdefined","block"}] String highseveritythreats; - [Write, Description("Template Id of the policy."),ValueMap{"d948ff9b-99cb-4ee0-8012-1fbc09685377_1", "e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1", "45fea5e9-280d-4da1-9792-fb5736da0ca9_1","804339ad-1553-4478-a742-138fb5807418_1"}, Values{"d948ff9b-99cb-4ee0-8012-1fbc09685377_1", "e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1", "45fea5e9-280d-4da1-9792-fb5736da0ca9_1","804339ad-1553-4478-a742-138fb5807418_1"}] String templateId; + [Write, Description("Template Id of the policy. 0: Windows Security Experience, 1: Defender Update controls, 2: Microsoft Defender Antivirus exclusions, 3: Microsoft Defender Antivirus"),ValueMap{"d948ff9b-99cb-4ee0-8012-1fbc09685377_1", "e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1", "45fea5e9-280d-4da1-9792-fb5736da0ca9_1","804339ad-1553-4478-a742-138fb5807418_1"}, Values{"d948ff9b-99cb-4ee0-8012-1fbc09685377_1", "e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1", "45fea5e9-280d-4da1-9792-fb5736da0ca9_1","804339ad-1553-4478-a742-138fb5807418_1"}] String templateId; [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; [Write, Description("Present ensures the policy exists, absent ensures it is removed"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; [Write, Description("Credentials of the Intune Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; From 9754c43ca8f96a6f2b0ae0a88c849fc70d27d78d Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 18 Jul 2024 13:16:37 +0200 Subject: [PATCH 222/273] Migrate Intune ASR resource to new settings catalog cmdlets --- CHANGELOG.md | 6 + ...tionRulesPolicyWindows10ConfigManager.psm1 | 489 +++++------------- ...lesPolicyWindows10ConfigManager.schema.mof | 2 +- ...ulesPolicyWindows10ConfigManager.Tests.ps1 | 159 ++---- 4 files changed, 176 insertions(+), 480 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 455cd4d420..74310e3917 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager + * Migrate to new settings catalog cmdlets. + FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) + # 1.24.717.1 * AADConditionalAccessPolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 index fbd8315666..c00be32dd2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 @@ -114,7 +114,7 @@ function Get-TargetResource $ControlledFolderAccessAllowedApplications, [Parameter()] - [ValidateSet('0', '1', '2')] + [ValidateSet('0', '1', '2', '3', '4')] [System.String] $EnableControlledFolderAccess, @@ -156,106 +156,67 @@ function Get-TargetResource $AccessTokens ) - Write-Verbose -Message "Checking for the Intune Endpoint Protection Policy {$DisplayName}" + try + { - $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` - -InboundParameters $PSBoundParameters ` - -ErrorAction Stop + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters ` + -ErrorAction Stop - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies - #region Telemetry - $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' - $CommandName = $MyInvocation.MyCommand - $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` - -CommandName $CommandName ` - -Parameters $PSBoundParameters - Add-M365DSCTelemetryEvent -Data $data - #endregion + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName -replace 'MSFT_', '' + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion - $nullResult = $PSBoundParameters - $nullResult.Ensure = 'Absent' + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + + $templateReferenceId = '5dd36540-eb22-4e7e-b19c-2a07772ba627_1' + # Retrieve policy general settings + $policy = $null + $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction SilentlyContinue - try - { - #Retrieve policy general settings - if (-not [System.String]::IsNullOrEmpty($Identity)) - { - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity -ErrorAction Stop - } if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Policy {id: '$Identity'} was found" - $policy = Get-MgBetaDeviceManagementConfigurationPolicy -Filter "name eq '$DisplayName'" -ErrorAction SilentlyContinue + Write-Verbose -Message "No Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager with Id {$Identity} was found" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $policy = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName' and templateReference/TemplateId eq '$templateReferenceId'" ` + -ErrorAction SilentlyContinue + } + if ($null -eq $policy) { - Write-Verbose -Message "No Endpoint Protection Policy {displayName: '$DisplayName'} was found" + Write-Verbose -Message "No Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager with Name {$DisplayName} was found" return $nullResult } } $Identity = $policy.Id - Write-Verbose -Message "Found Endpoint Protection Policy {$($policy.id):$($policy.Name)}" + Write-Verbose -Message "Found Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager with Id {$($Identity) and Name $($policy.Name)}" - #Retrieve policy specific settings + # Retrieve policy specific settings [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` -DeviceManagementConfigurationPolicyId $Identity ` + -ExpandProperty 'settingDefinitions' ` -ErrorAction Stop $returnHashtable = @{} $returnHashtable.Add('Identity', $Identity) - $returnHashtable.Add('DisplayName', $policy.name) - $returnHashtable.Add('Description', $policy.description) - - foreach ($setting in $settings.settingInstance) - { - $addToParameters = $true - $settingName = $setting.settingDefinitionId.Split('_') | Select-Object -Last 1 - - switch ($setting.AdditionalProperties.'@odata.type') - { - - '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' - { - $settingValue = $setting.AdditionalProperties.simpleSettingValue.value - } - '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' - { - $settingValue = $setting.AdditionalProperties.choiceSettingValue.value.split('_') | Select-Object -Last 1 - } - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.groupSettingCollectionValue.children) - { - $settingName = $value.settingDefinitionId.split('_') | Select-Object -Last 1 - $settingValue = $value.choiceSettingValue.value.split('_') | Select-Object -Last 1 - $returnHashtable.Add($settingName, $settingValue) - $addToParameters = $false - } - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ($value in $setting.AdditionalProperties.simpleSettingCollectionValue.value) - { - $values += $value - } - $settingValue = $values - } - Default - { - $settingValue = $setting.value - } - } + $returnHashtable.Add('DisplayName', $policy.Name) + $returnHashtable.Add('Description', $policy.Description) - if ($addToParameters) - { - $returnHashtable.Add($settingName, $settingValue) - } - } + $returnHashtable = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $returnHashtable $returnAssignments = @() $graphAssignments = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Identity @@ -407,7 +368,7 @@ function Set-TargetResource $ControlledFolderAccessAllowedApplications, [Parameter()] - [ValidateSet('0', '1', '2')] + [ValidateSet('0', '1', '2', '3', '4')] [System.String] $EnableControlledFolderAccess, @@ -462,14 +423,7 @@ function Set-TargetResource #endregion $currentPolicy = Get-TargetResource @PSBoundParameters - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null - $PSBoundParameters.Remove('ManagedIdentity') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters $templateReferenceId = '5dd36540-eb22-4e7e-b19c-2a07772ba627_1' $platforms = 'windows10' @@ -477,10 +431,12 @@ function Set-TargetResource if ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Absent') { - Write-Verbose -Message "Creating new Endpoint Protection Policy {$DisplayName}" + Write-Verbose -Message "Creating new Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager {$DisplayName}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null $settings = Get-IntuneSettingCatalogPolicySetting ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` -TemplateId $templateReferenceId $createParameters = @{ @@ -491,21 +447,26 @@ function Set-TargetResource Technologies = $technologies Settings = $settings } - New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters - - $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments - Update-DeviceConfigurationPolicyAssignment ` - -DeviceConfigurationPolicyId $Identity ` - -Targets $assignmentsHash + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters + if ($policy.Id) + { + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + } } elseif ($Ensure -eq 'Present' -and $currentPolicy.Ensure -eq 'Present') { - Write-Verbose -Message "Updating existing Endpoint Protection Policy {$($currentPolicy.DisplayName)}" + Write-Verbose -Message "Updating existing Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager {$($currentPolicy.DisplayName)}" + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Identity') | Out-Null #format settings from PSBoundParameters for update $settings = Get-IntuneSettingCatalogPolicySetting ` - -DSCParams ([System.Collections.Hashtable]$PSBoundParameters) ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` -TemplateId $templateReferenceId Update-IntuneDeviceConfigurationPolicy ` @@ -521,13 +482,14 @@ function Set-TargetResource $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments Update-DeviceConfigurationPolicyAssignment ` -DeviceConfigurationPolicyId $currentPolicy.Identity ` - -Targets $assignmentsHash + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' #endregion } elseif ($Ensure -eq 'Absent' -and $currentPolicy.Ensure -eq 'Present') { - Write-Verbose -Message "Removing Endpoint Protection Policy {$($currentPolicy.DisplayName)}" - Remove-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Identity + Write-Verbose -Message "Removing Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager {$($currentPolicy.DisplayName)}" + Remove-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $currentPolicy.Identity } } @@ -647,7 +609,7 @@ function Test-TargetResource $ControlledFolderAccessAllowedApplications, [Parameter()] - [ValidateSet('0', '1', '2')] + [ValidateSet('0', '1', '2', '3', '4')] [System.String] $EnableControlledFolderAccess, @@ -700,78 +662,68 @@ function Test-TargetResource -Parameters $PSBoundParameters Add-M365DSCTelemetryEvent -Data $data #endregion - Write-Verbose -Message "Testing configuration of Endpoint Protection Policy {$DisplayName}" + Write-Verbose -Message "Testing configuration of Intune Attack Surface Reduction Rules Policy for Windows10 Config Manager {$DisplayName}" $CurrentValues = Get-TargetResource @PSBoundParameters - - Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" - Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" - - $ValuesToCheck = $PSBoundParameters - $ValuesToCheck.Remove('Identity') | Out-Null - - $testResult = $true - if ([Array]$Assignments.count -ne $CurrentValues.Assignments.count) - { - Write-Verbose -Message "Configuration drift:Number of assignments does not match: Source=$([Array]$Assignments.count) Target=$($CurrentValues.Assignments.count)" - $testResult = $false - } - if ($testResult) - { - foreach ($assignment in $CurrentValues.Assignments) + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) { - if ($null -ne $Assignment) + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) { - #GroupId Assignment - if (-not [String]::IsNullOrEmpty($assignment.groupId)) - { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.groupId -eq $assignment.groupId } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: groupId {$($assignment.groupId)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment - } - #AllDevices/AllUsers assignment - else + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) { - $source = [Array]$ValuesToCheck.Assignments | Where-Object -FilterScript { $_.dataType -eq $assignment.dataType } - if (-not $source) - { - Write-Verbose -Message "Configuration drift: {$($assignment.dataType)} not found" - $testResult = $false - break - } - $sourceHash = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $source - $testResult = Compare-M365DSCComplexObject -Source $sourceHash -Target $assignment + $PSBoundParameters.Add($_.Key, $null) } } + } + } + + if ($CurrentValues.Ensure -ne $Ensure) + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + $testResult = $true + + # Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) + { + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) if (-not $testResult) { - $testResult = $false break } + $ValuesToCheck.Remove($key) | Out-Null } - } - $ValuesToCheck.Remove('Assignments') | Out-Null + + $ValuesToCheck.Remove('Identity') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" if ($testResult) { - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` -Source $($MyInvocation.MyCommand.Source) ` -DesiredValues $PSBoundParameters ` -ValuesToCheck $ValuesToCheck.Keys } - Write-Verbose -Message "Test-TargetResource returned $TestResult" + Write-Verbose -Message "Test-TargetResource returned $testResult" - return $TestResult + return $testResult } function Export-TargetResource @@ -868,48 +820,39 @@ function Export-TargetResource } $Results = Get-TargetResource @params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results - if ($Results.Ensure -eq 'Present') + if ($Results.Assignments) { - $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` - -Results $Results - - if ($Results.Assignments) + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) { - $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject ([Array]$Results.Assignments) -CIMInstanceName DeviceManagementConfigurationPolicyAssignments - if ($complexTypeStringResult) - { - $Results.Assignments = $complexTypeStringResult - } - else - { - $Results.Remove('Assignments') | Out-Null - } + $Results.Assignments = $complexTypeStringResult } - - $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` - -ConnectionMode $ConnectionMode ` - -ModulePath $PSScriptRoot ` - -Results $Results ` - -Credential $Credential - - if ($Results.Assignments) + else { - $isCIMArray = $false - if ($Results.Assignments.getType().Fullname -like '*[[\]]') - { - $isCIMArray = $true - } - $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$isCIMArray + $Results.Remove('Assignments') | Out-Null } + } - $dscContent += $currentDSCBlock - Save-M365DSCPartialExport -Content $currentDSCBlock ` - -FileName $Global:PartialExportFileName + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential - Write-Host $Global:M365DSCEmojiGreenCheckMark - $i++ + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$true } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + + Write-Host $Global:M365DSCEmojiGreenCheckMark + $i++ } return $dscContent } @@ -935,187 +878,5 @@ function Export-TargetResource return '' } } -function Get-IntuneSettingCatalogPolicySetting -{ - [CmdletBinding()] - [OutputType([System.Array])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - [Parameter(Mandatory = 'true')] - [System.String] - $TemplateId - ) - - $DSCParams.Remove('Identity') | Out-Null - $DSCParams.Remove('DisplayName') | Out-Null - $DSCParams.Remove('Description') | Out-Null - - #Prepare setting definitions mapping - $settingDefinitions = Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -DeviceManagementConfigurationPolicyTemplateId $TemplateId - $settingInstances = @() - foreach ($settingDefinition in $settingDefinitions.SettingInstanceTemplate) - { - - $settingInstance = @{} - $settingName = $settingDefinition.SettingDefinitionId.split('_') | Select-Object -Last 1 - $settingType = $settingDefinition.AdditionalProperties.'@odata.type'.replace('InstanceTemplate', 'Instance') - $settingInstance.Add('settingDefinitionId', $settingDefinition.settingDefinitionId) - $settingInstance.Add('@odata.type', $settingType) - if (-Not [string]::IsNullOrEmpty($settingDefinition.settingInstanceTemplateId)) - { - $settingInstance.Add('settingInstanceTemplateReference', @{'settingInstanceTemplateId' = $settingDefinition.settingInstanceTemplateId }) - } - $settingValueName = $settingType.replace('#microsoft.graph.deviceManagementConfiguration', '').replace('Instance', 'Value') - $settingValueName = $settingValueName.Substring(0, 1).ToLower() + $settingValueName.Substring(1, $settingValueName.length - 1 ) - $settingValueType = $settingDefinition.AdditionalProperties."$($settingValueName)Template".'@odata.type' - if ($null -ne $settingValueType) - { - $settingValueType = $settingValueType.replace('ValueTemplate', 'Value') - } - $settingValueTemplateId = $settingDefinition.AdditionalProperties."$($settingValueName)Template".settingValueTemplateId - $settingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` - -DSCParams $DSCParams ` - -SettingDefinition $settingDefinition ` - -SettingName $settingName ` - -SettingType $settingType ` - -SettingValueName $settingValueName ` - -SettingValueType $settingValueType ` - -SettingValueTemplateId $settingValueTemplateId - if ($null -ne $settingValue) - { - $settingInstance += [Hashtable]$settingValue - } - - $settingInstances += @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' - 'settingInstance' = $settingInstance - } - } - - return $settingInstances -} -function Get-IntuneSettingCatalogPolicySettingInstanceValue -{ - [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] - param( - [Parameter(Mandatory = 'true')] - [System.Collections.Hashtable] - $DSCParams, - - [Parameter()] - $SettingDefinition, - - [Parameter()] - [System.String] - $SettingType, - - [Parameter()] - [System.String] - $SettingName, - - [Parameter()] - [System.String] - $SettingValueName, - - [Parameter()] - [System.String] - $SettingValueType, - - [Parameter()] - [System.String] - $SettingValueTemplateId - ) - - $settingValueReturn = @{} - switch ($settingType) - { - '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - { - $groupSettingCollectionValue = @{} - $groupSettingCollectionValueChildren = @() - - $groupSettingCollectionDefinitionChildren = $SettingDefinition.AdditionalProperties.groupSettingCollectionValueTemplate.children - foreach ($childDefinition in $groupSettingCollectionDefinitionChildren) - { - $childSettingName = $childDefinition.settingDefinitionId.split('_') | Select-Object -Last 1 - $childSettingType = $childDefinition.'@odata.type'.replace('InstanceTemplate', 'Instance') - $childSettingValueName = $childSettingType.replace('#microsoft.graph.deviceManagementConfiguration', '').replace('Instance', 'Value') - $childSettingValueType = "#microsoft.graph.deviceManagementConfiguration$($childSettingValueName)" - $childSettingValueName = $childSettingValueName.Substring(0, 1).ToLower() + $childSettingValueName.Substring(1, $childSettingValueName.length - 1 ) - $childSettingValueTemplateId = $childDefinition.$childSettingValueName.settingValueTemplateId - $childSettingValue = Get-IntuneSettingCatalogPolicySettingInstanceValue ` - -DSCParams $DSCParams ` - -SettingDefinition $childDefinition ` - -SettingName $childSettingName ` - -SettingType $childDefinition.'@odata.type' ` - -SettingValueName $childSettingValueName ` - -SettingValueType $childSettingValueType ` - -SettingValueTemplateId $childSettingValueTemplateId - - if ($null -ne $childSettingValue) - { - $childSettingValue.add('settingDefinitionId', $childDefinition.settingDefinitionId) - $childSettingValue.add('@odata.type', $childSettingType ) - $groupSettingCollectionValueChildren += $childSettingValue - } - } - $groupSettingCollectionValue.add('children', $groupSettingCollectionValueChildren) - $settingValueReturn.Add('groupSettingCollectionValue', @($groupSettingCollectionValue)) - } - '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' - { - $values = @() - foreach ( $key in $DSCParams.Keys) - { - if ($settingName -eq ($key.tolower())) - { - $values = $DSCParams[$key] - break - } - } - $settingValueCollection = @() - foreach ($v in $values) - { - $settingValueCollection += @{ - value = $v - '@odata.type' = $settingValueType - } - } - $settingValueReturn.Add($settingValueName, $settingValueCollection) - } - Default - { - $value = $null - foreach ( $key in $DSCParams.Keys) - { - if ($settingName -eq ($key.tolower())) - { - $value = "$($SettingDefinition.settingDefinitionId)_$($DSCParams[$key])" - break - } - } - $settingValue = @{} - - if (-Not [string]::IsNullOrEmpty($settingValueType)) - { - $settingValue.add('@odata.type', $settingValueType) - } - if (-Not [string]::IsNullOrEmpty($settingValueTemplateId)) - { - $settingValue.Add('settingValueTemplateReference', @{'settingValueTemplateId' = $settingValueTemplateId }) - } - $settingValue.add('value', $value) - if ($null -eq $value) - { - return $null - } - $settingValueReturn.Add($settingValueName, $settingValue) - } - } - return $settingValueReturn -} Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.schema.mof index 0167a59699..0993bab8eb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.schema.mof @@ -35,7 +35,7 @@ class MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager : OMI_B [Write, Description("This rule provides an extra layer of protection against ransomware."), ValueMap{"off", "block","audit", "warn"}, Values{"off", "block","audit", "warn"}] String UseAdvancedProtectionAgainstRansomware; [Write, Description("List of additional folders that need to be protected")] String ControlledFolderAccessProtectedFolders[]; [Write, Description("List of apps that have access to protected folders.")] String ControlledFolderAccessAllowedApplications[]; - [Write, Description("This rule enable Controlled folder access which protects your data by checking apps against a list of known, trusted apps.values 0:disable, 1:enable, 2:audit"), ValueMap{"0", "1","2"}, Values{"0", "1","2"}] String EnableControlledFolderAccess; + [Write, Description("This rule enable Controlled folder access which protects your data by checking apps against a list of known, trusted apps.values 0:disable, 1:enable, 2:audit, 3: Block disk modification only, 4: Audit disk modification only"), ValueMap{"0", "1", "2", "3", "4"}, Values{"0", "1", "2", "3", "4"}] String EnableControlledFolderAccess; [Write, Description("Present ensures the policy exists, absent ensures it is removed"), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; [Write, Description("Credentials of the Intune Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 index 4d5e9e8d1d..7f5ca15155 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.Tests.ps1 @@ -41,12 +41,52 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } } + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + Mock -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -MockWith { } - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyTemplate -MockWith { + Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { + } + + Mock -CommandName Get-IntuneSettingCatalogPolicySetting -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { return @{ - TemplateId = 'd02f2162-fcac-48db-9b7b-b0a3f160d2c2_1' + Id = 0 + SettingDefinitions = @( + @{ + Id = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware' + Name = 'UseAdvancedProtectionAgainstRansomware' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'd770fcd1-62cd-4217-9b20-9ee2a12062ff' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' + groupSettingCollectionValue = @(@{ + children = @( + @{ + "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance" + "settingDefinitionId" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware" + "choiceSettingValue" = @{ + "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingValue" + "value" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_block" + } + } + ) + }) + } + } + AdditionalProperties = $null } } @@ -66,32 +106,9 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } }) } + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { } - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate -MockWith { - return @{ - Id = '12345-12345-12345-12345-12345' - SettingInstanceTemplate = @{ - settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' - settingInstanceTemplateId = 'd770fcd1-62cd-4217-9b20-9ee2a12062ff' - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate' - groupSettingCollectionValueTemplate = @{ - children =@( - @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstanceTemplate' - settingInstanceTemplateId ='999c8d1b-9f4e-49b7-824d-001c5c7d0182' - settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware' - choiceSettingValueTemplate = @{ - settingValueTemplateId = 'a212472c-c5cc-43dd-898d-d35286a408e5' - } - } - ) - } - } - } - } - } # Mock Write-Host to hide output during the tests Mock -CommandName Write-Host -MockWith { @@ -161,37 +178,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Name = 'My Test' } } - - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { - return @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'd770fcd1-62cd-4217-9b20-9ee2a12062ff' - } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - groupSettingCollectionValue = @(@{ - children = @( - @{ - "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance" - "settingDefinitionId" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware" - "choiceSettingValue" = @{ - "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingValue" - "value" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_block" - } - } - ) - }) - } - } - AdditionalProperties = $null - } - } - Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { - } } It 'Should return Present from the Get method' { @@ -216,6 +202,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { DisplayName = 'My Test' Ensure = 'Present' Identity = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + useadvancedprotectionagainstransomware = 'block' Assignments = [CimInstance[]]@( (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ DataType = '#microsoft.graph.configurationManagerCollectionAssignmentTarget' @@ -231,35 +218,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Name = 'My Test' } } - - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { - return @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'd770fcd1-62cd-4217-9b20-9ee2a12062ff' - } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - groupSettingCollectionValue = @(@{ - children = @( - @{ - "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance" - "settingDefinitionId" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware" - "choiceSettingValue" = @{ - "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingValue" - "value" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_block" - } - } - ) - }) - } - } - AdditionalProperties = $null - } - } } It 'Should return true from the Test method' { @@ -290,35 +248,6 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Name = 'My Test' } } - - Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { - return @{ - Id = 0 - SettingDefinitions = $null - SettingInstance = @{ - SettingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' - SettingInstanceTemplateReference = @{ - SettingInstanceTemplateId = 'd770fcd1-62cd-4217-9b20-9ee2a12062ff' - } - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' - groupSettingCollectionValue = @(@{ - children = @( - @{ - "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance" - "settingDefinitionId" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware" - "choiceSettingValue" = @{ - "@odata.type" = "#microsoft.graph.deviceManagementConfigurationChoiceSettingValue" - "value" = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_block" - } - } - ) - }) - } - } - AdditionalProperties = $null - } - } } It 'Should return Present from the Get method' { From 555ee470f80dbc1c11d42a8913439e9b541d3183 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 18 Jul 2024 14:01:13 -0400 Subject: [PATCH 223/273] Removed unused variable --- Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 | 1 - 1 file changed, 1 deletion(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 index 7ad66b8d6b..feea85d6f4 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 @@ -1599,7 +1599,6 @@ function Update-M365DSCAzureAdApplication $username = $Credential.UserName $password = $Credential.GetNetworkCredential().password - $url = "https://main.iam.ad.ext.azure.com/api/Directories/$($tenant.tenantId)/Details" $uri = 'https://login.microsoftonline.com/{0}/oauth2/token' -f $tenantid $body = 'resource=74658136-14ec-4630-ad9b-26e160ff0fc6&client_id=1950a258-227b-4e31-a9cf-717495945fc2&grant_type=password&username={1}&password={0}' -f [System.Web.HttpUtility]::UrlEncode($password), $username $token = Invoke-RestMethod $uri ` From bd24562ee8db5542a74f8b6e5532be71dfff99c3 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Wed, 12 Jun 2024 09:01:15 +0200 Subject: [PATCH 224/273] Update Intune Windows Update resource logic --- CHANGELOG.md | 8 + ...BusinessFeatureUpdateProfileWindows10.psm1 | 328 +++++++++++++++--- ...ssFeatureUpdateProfileWindows10.schema.mof | 4 +- .../readme.md | 21 ++ ...essFeatureUpdateProfileWindows10.Tests.ps1 | 253 ++++++++++---- 5 files changed, 493 insertions(+), 121 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 455cd4d420..a37820ad70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 + * Introduces new properties and updates the handling of the + start and end dates. + FIXES [#4614](https://github.com/microsoft/Microsoft365DSC/issues/4614) + FIXES [#3438](https://github.com/microsoft/Microsoft365DSC/issues/3438) + # 1.24.717.1 * AADConditionalAccessPolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 index c77cbc0fa6..5130af0874 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 @@ -21,6 +21,14 @@ function Get-TargetResource [System.String] $FeatureUpdateVersion, + [Parameter()] + [System.Boolean] + $InstallFeatureUpdatesOptional, + + [Parameter()] + [System.Boolean] + $InstallLatestWindows10OnWindows11IneligibleDevice, + [Parameter()] [Microsoft.Management.Infrastructure.CimInstance] $RolloutSettings, @@ -94,8 +102,11 @@ function Get-TargetResource if (-Not [string]::IsNullOrEmpty($DisplayName)) { $getValue = Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile ` - -Filter "DisplayName eq '$DisplayName'" ` - -ErrorAction SilentlyContinue + -All ` + -ErrorAction SilentlyContinue | Where-Object ` + -FilterScript { + $_.DisplayName -eq $DisplayName + } } } #endregion @@ -126,21 +137,24 @@ function Get-TargetResource $results = @{ #region resource generator code - Description = $getValue.Description - DisplayName = $getValue.DisplayName - FeatureUpdateVersion = $getValue.FeatureUpdateVersion - RolloutSettings = $complexRolloutSettings - Id = $getValue.Id - Ensure = 'Present' - Credential = $Credential - ApplicationId = $ApplicationId - TenantId = $TenantId - ApplicationSecret = $ApplicationSecret - CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent - AccessTokens = $AccessTokens + Description = $getValue.Description + DisplayName = $getValue.DisplayName + FeatureUpdateVersion = $getValue.FeatureUpdateVersion + InstallFeatureUpdatesOptional = $getValue.InstallFeatureUpdatesOptional + InstallLatestWindows10OnWindows11IneligibleDevice = $getValue.InstallLatestWindows10OnWindows11IneligibleDevice + RolloutSettings = $complexRolloutSettings + Id = $getValue.Id + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens #endregion } + $assignmentsValues = Get-MgBetaDeviceManagementWindowsFeatureUpdateProfileAssignment -WindowsFeatureUpdateProfileId $Id $assignmentResult = @() if ($assignmentsValues.Count -gt 0) @@ -187,6 +201,14 @@ function Set-TargetResource [System.String] $FeatureUpdateVersion, + [Parameter()] + [System.Boolean] + $InstallFeatureUpdatesOptional, + + [Parameter()] + [System.Boolean] + $InstallLatestWindows10OnWindows11IneligibleDevice, + [Parameter()] [Microsoft.Management.Infrastructure.CimInstance] $RolloutSettings, @@ -242,43 +264,103 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + # Rollout is not "As soon as possible" + if ($null -ne $RolloutSettings) + { + # Rollout is either "On a specific date" or "gradually" + if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferStartDateTimeInUTC)) + { + $currentTime = Get-Date + $offerStartDate = [datetime]::Parse($RolloutSettings.OfferStartDateTimeInUTC) + # Rollout is "On a specific date" + if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferEndDateTimeInUTC)) + { + $offerEndDate = [datetime]::Parse($RolloutSettings.OfferEndDateTimeInUTC) + if ($offerEndDate -lt $offerStartDate.AddDays(1)) + { + throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC + 1 day.' + } + + if ($offerEndDate -le $currentTime) + { + throw 'OfferEndDateTimeInUTC must be greater than the current time.' + } + } + } + } + $currentInstance = Get-TargetResource @PSBoundParameters + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters - $PSBoundParameters.Remove('Ensure') | Out-Null - $PSBoundParameters.Remove('Credential') | Out-Null - $PSBoundParameters.Remove('ApplicationId') | Out-Null - $PSBoundParameters.Remove('ApplicationSecret') | Out-Null - $PSBoundParameters.Remove('TenantId') | Out-Null - $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null - $PSBoundParameters.Remove('ManagedIdentity') | Out-Null - $PSBoundParameters.Remove('Verbose') | Out-Null - $PSBoundParameters.Remove('AccessTokens') | Out-Null + if ($null -eq $RolloutSettings) + { + $BoundParameters.RolloutSettings = @{ + OfferStartDateTimeInUTC = $null + OfferEndDateTimeInUTC = $null + OfferIntervalInDays = $null + } + } if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') { Write-Verbose -Message "Creating an Intune Windows Update For Business Feature Update Profile for Windows10 with DisplayName {$DisplayName}" - $PSBoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Assignments') | Out-Null - $CreateParameters = ([Hashtable]$PSBoundParameters).clone() + if ($null -ne $RolloutSettings) + { + if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferStartDateTimeInUTC)) + { + $minTimeForAvailable = $currentTime + $newOfferStartDate = $offerStartDate + if ($offerStartDate -lt $minTimeForAvailable) + { + $newOfferStartDate = $minTimeForAvailable + $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $newOfferStartDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + } + + if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferEndDateTimeInUTC)) + { + # If an end date is configured, then the start date must be greater than the current time + 2 days + $minTimeForAvailable = $currentTime.AddDays(2) + if ($newOfferStartDate -lt $minTimeForAvailable) + { + $newOfferStartDate = $minTimeForAvailable + $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $newOfferStartDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + } + + if ($offerEndDate -lt $newOfferStartDate) + { + throw 'OfferEndDateTimeInUTC must be greater than current time + 2 days.' + } + + if ($RolloutSettings.OfferIntervalInDays -gt ($offerEndDate - $newOfferStartDate).Days) + { + throw 'OfferIntervalInDays must be less than or equal to the difference between OfferEndDateTimeInUTC and OfferStartDateTimeInUTC in days.' + } + } + } + } + + $CreateParameters = ([Hashtable]$BoundParameters).Clone() $CreateParameters = Rename-M365DSCCimInstanceParameter -Properties $CreateParameters $CreateParameters.Remove('Id') | Out-Null - $keys = (([Hashtable]$CreateParameters).clone()).Keys + $keys = (([Hashtable]$CreateParameters).Clone()).Keys foreach ($key in $keys) { - if ($null -ne $CreateParameters.$key -and $CreateParameters.$key.getType().Name -like '*cimInstance*') + if ($null -ne $CreateParameters.$key -and $CreateParameters.$key.GetType().Name -like '*cimInstance*') { $CreateParameters.$key = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $CreateParameters.$key } } + #region resource generator code - $CreateParameters.Add("@odata.type", "#microsoft.graph.WindowsFeatureUpdateProfile") - $policy=New-MgBetaDeviceManagementWindowsFeatureUpdateProfile -BodyParameter $CreateParameters - $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + $policy = New-MgBetaDeviceManagementWindowsFeatureUpdateProfile -BodyParameter $CreateParameters - if ($policy.id) + if ($policy.Id) { - Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.id ` + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment -DeviceConfigurationPolicyId $policy.Id ` -Targets $assignmentsHash ` -Repository 'deviceManagement/windowsFeatureUpdateProfiles' } @@ -287,24 +369,83 @@ function Set-TargetResource elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') { Write-Verbose -Message "Updating the Intune Windows Update For Business Feature Update Profile for Windows10 with Id {$($currentInstance.Id)}" - $PSBoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('Assignments') | Out-Null + $BoundParameters.Remove('InstallLatestWindows10OnWindows11IneligibleDevice') | Out-Null - $UpdateParameters = ([Hashtable]$PSBoundParameters).clone() - $UpdateParameters = Rename-M365DSCCimInstanceParameter -Properties $UpdateParameters + if ($null -ne $RolloutSettings) + { + if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferStartDateTimeInUTC)) + { + $minTimeForAvailable = $currentTime + if (-not [string]::IsNullOrEmpty($currentInstance.RolloutSettings.OfferStartDateTimeInUTC)) + { + $currentOfferDate = [datetime]::Parse($currentInstance.RolloutSettings.OfferStartDateTimeInUTC) + } + else + { + $currentOfferDate = [datetime]::MinValue + } + $newOfferStartDate = $offerStartDate + # If the configured start date is different from the current start date and is less than the current time, we use the current start date + if ($offerStartDate -ne $currentOfferDate -and $offerStartDate -lt $minTimeForAvailable) + { + if ($currentOfferDate -eq [datetime]::MinValue) + { + $newOfferStartDate = $minTimeForAvailable + $currentOfferDate = $minTimeForAvailable + } + else + { + $newOfferStartDate = $currentOfferDate + } + $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $currentOfferDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + } + + if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferEndDateTimeInUTC)) + { + # If an end date is configured, then the start date must be greater than the current time + 2 days + $offerEndDate = [datetime]::Parse($RolloutSettings.OfferEndDateTimeInUTC) + $minTimeForAvailable = $currentTime.AddDays(2) + if ($newOfferStartDate -lt $minTimeForAvailable) + { + $newOfferStartDate = $minTimeForAvailable + $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $newOfferStartDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + } + + if (-not [string]::IsNullOrEmpty($currentInstance.RolloutSettings.OfferEndDateTimeInUTC)) + { + $currentOfferEndDate = [datetime]::Parse($currentInstance.RolloutSettings.OfferEndDateTimeInUTC) + } + + # If the end date is less than the start date + 1 day or the current time, we throw an error + if ($offerEndDate -lt $newOfferStartDate.AddDays(1) -or $offerEndDate -lt $currentTime) + { + throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC and current time (+ 2 days if not previously specified).' + } + + if ($RolloutSettings.OfferIntervalInDays -gt ($offerEndDate - $newOfferStartDate).Days) + { + throw 'OfferIntervalInDays must be less than or equal to the difference between OfferEndDateTimeInUTC and OfferStartDateTimeInUTC in days.' + } + } + } + } + + $UpdateParameters = ([Hashtable]$BoundParameters).Clone() + $UpdateParameters = Rename-M365DSCCimInstanceParameter -Properties $UpdateParameters $UpdateParameters.Remove('Id') | Out-Null - $keys = (([Hashtable]$UpdateParameters).clone()).Keys + $keys = (([Hashtable]$UpdateParameters).Clone()).Keys foreach ($key in $keys) { - if ($null -ne $UpdateParameters.$key -and $UpdateParameters.$key.getType().Name -like '*cimInstance*') + if ($null -ne $UpdateParameters.$key -and $UpdateParameters.$key.GetType().Name -like '*cimInstance*') { $UpdateParameters.$key = Convert-M365DSCDRGComplexTypeToHashtable -ComplexObject $UpdateParameters.$key } } #region resource generator code - $UpdateParameters.Add("@odata.type", "#microsoft.graph.WindowsFeatureUpdateProfile") Update-MgBetaDeviceManagementWindowsFeatureUpdateProfile ` -WindowsFeatureUpdateProfileId $currentInstance.Id ` -BodyParameter $UpdateParameters @@ -347,6 +488,14 @@ function Test-TargetResource [System.String] $FeatureUpdateVersion, + [Parameter()] + [System.Boolean] + $InstallFeatureUpdatesOptional, + + [Parameter()] + [System.Boolean] + $InstallLatestWindows10OnWindows11IneligibleDevice, + [Parameter()] [Microsoft.Management.Infrastructure.CimInstance] $RolloutSettings, @@ -405,35 +554,112 @@ function Test-TargetResource Write-Verbose -Message "Testing configuration of the Intune Windows Update For Business Feature Update Profile for Windows10 with Id {$Id} and DisplayName {$DisplayName}" $CurrentValues = Get-TargetResource @PSBoundParameters - $ValuesToCheck = ([Hashtable]$PSBoundParameters).clone() - - if ($CurrentValues.Ensure -ne $Ensure) - { - Write-Verbose -Message "Test-TargetResource returned $false" - return $false - } + $ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone() $testResult = $true + # Cannot be changed after creation + $ValuesToCheck.Remove('InstallLatestWindows10OnWindows11IneligibleDevice') | Out-Null + #Compare Cim instances foreach ($key in $PSBoundParameters.Keys) { + if ($key -eq 'RolloutSettings') + { + continue + } + $source = $PSBoundParameters.$key $target = $CurrentValues.$key - if ($source.getType().Name -like '*CimInstance*') + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') { $testResult = Compare-M365DSCComplexObject ` -Source ($source) ` -Target ($target) - if (-Not $testResult) + if (-not $testResult) { - $testResult = $false break } $ValuesToCheck.Remove($key) | Out-Null } } + + if (-not $testResult) + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + + if (($null -eq $RolloutSettings -and $null -ne $CurrentValues.RolloutSettings) -or ` + ($null -ne $RolloutSettings -and $null -eq $CurrentValues.RolloutSettings)) + { + Write-Verbose -Message 'RolloutSettings is null in either the desired configuration or the current configuration.' + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + + $currentTime = Get-Date + [datetime]$offerStartDate = [datetime]::MinValue + [datetime]$offerEndDate = [datetime]::MinValue + [datetime]::TryParse($RolloutSettings.OfferStartDateTimeInUTC, [ref]$offerStartDate) | Out-Null + [datetime]::TryParse($RolloutSettings.OfferEndDateTimeInUTC, [ref]$offerEndDate) | Out-Null + if ($CurrentValues.Ensure -ne $Ensure) + { + if ($Ensure -eq 'Present') + { + if (($offerStartDate -ne [datetime]::MinValue -and $offerStartDate -lt $currentTime) ` + -and ($offerEndDate -ne [datetime]::MinValue -and $offerEndDate -lt $currentTime)) + { + Write-Verbose -Message "Start and end time are in the past, skip the configuration." + Write-Verbose -Message "Test-TargetResource returned $true" + return $true + } + } + + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + + [datetime]$currentOfferStartDate = [datetime]::MinValue + [datetime]$currentOfferEndDate = [datetime]::MinValue + [datetime]::TryParse($CurrentValues.RolloutSettings.OfferStartDateTimeInUTC, [ref]$currentOfferStartDate) | Out-Null + [datetime]::TryParse($CurrentValues.RolloutSettings.OfferEndDateTimeInUTC, [ref]$currentOfferEndDate) | Out-Null + if (($offerEndDate -eq [datetime]::MinValue -and $currentOfferEndDate -ne [datetime]::MinValue) -or ` + ($offerEndDate -ne [datetime]::MinValue -and $currentOfferEndDate -eq [datetime]::MinValue)) + { + Write-Verbose -Message 'OfferEndDateTimeInUTC is null in either the desired configuration or the current configuration.' + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + + if ($offerStartDate -ne [datetime]::MinValue -and $currentOfferStartDate -ne [datetime]::MinValue) + { + if ($offerStartDate -ne $currentOfferStartDate ` + -and $offerStartDate -gt $currentTime) + { + Write-Verbose -Message 'OfferStartDateTimeInUTC is different from current.' + $testResult = $false + } + + if ($testResult -and $offerEndDate -ne [datetime]::MinValue -and $currentOfferEndDate -ne [datetime]::MinValue) + { + if ($offerEndDate -ne $currentOfferEndDate ` + -and $offerEndDate -gt $currentTime ` + -and $offerEndDate -gt $offerStartDate) + { + Write-Verbose -Message 'OfferEndDateTimeInUTC is different from current.' + $testResult = $false + } + + if ($testResult -and $RolloutSettings.OfferIntervalInDays -ne $CurrentValues.RolloutSettings.OfferIntervalInDays) + { + Write-Verbose -Message 'OfferIntervalInDays is different from current.' + $testResult = $false + } + } + } + $ValuesToCheck.Remove('RolloutSettings') | Out-Null $ValuesToCheck.Remove('Id') | Out-Null Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" @@ -554,7 +780,7 @@ function Export-TargetResource TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } @@ -565,7 +791,7 @@ function Export-TargetResource { $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString ` -ComplexObject $Results.RolloutSettings ` - -CIMInstanceName 'MicrosoftGraphwindowsUpdateRolloutSettings' + -CIMInstanceName 'MicrosoftGraphWindowsUpdateRolloutSettings' if (-Not [String]::IsNullOrWhiteSpace($complexTypeStringResult)) { $Results.RolloutSettings = $complexTypeStringResult diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.schema.mof index f98952e13d..54b25eb0e0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.schema.mof @@ -23,7 +23,9 @@ class MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 : OMI_Bas [Key, Description("The display name of the profile.")] String DisplayName; [Write, Description("The description of the profile which is specified by the user.")] String Description; [Write, Description("The feature update version that will be deployed to the devices targeted by this profile. The version could be any supported version for example 1709, 1803 or 1809 and so on.")] String FeatureUpdateVersion; - [Write, Description("The windows update rollout settings, including offer start date time, offer end date time, and days between each set of offers."), EmbeddedInstance("MSFT_MicrosoftGraphwindowsUpdateRolloutSettings")] String RolloutSettings; + [Write, Description("If true, the Windows 11 update will become optional")] Boolean InstallFeatureUpdatesOptional; + [Write, Description("If true, the latest Microsoft Windows 10 update will be installed on devices ineligible for Microsoft Windows 11. Cannot be changed after creation of the policy.")] Boolean InstallLatestWindows10OnWindows11IneligibleDevice; + [Write, Description("The windows update rollout settings, including offer start date time, offer end date time, and days between each set of offers. For 'as soon as possible' installation, set this setting to $null or do not configure it."), EmbeddedInstance("MSFT_MicrosoftGraphwindowsUpdateRolloutSettings")] String RolloutSettings; [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md index 053226e059..deb95c3998 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md @@ -4,3 +4,24 @@ ## Description Intune Windows Update For Business Feature Update Profile for Windows10 + +## RolloutSettings + +The RolloutSettings for this resource have the following constraints and notes: + +* When creating a policy: + * If only a start date is specified, then the start date must be at least today. + * If the desired state date is before the current date, it will be adjusted to the current date. + * If a start and end date is specified, the start date must be the current date + 2 days, and + the end date must be at least one day after the start date. + * If the start date is before the current date + 2 days, it will be adjusted to this date. +* When updating a policy: + * If only a start date is specified, then the start date must either be the date from the current + configuration or the current date (or later). + * If the desired state date is before the current date, it will be adjusted to the current date. + * If a start and end date is specified, the start date must be the current date + 2 days, and + the end date must be at least one day after the start date. + * If the start date is before the current date + 2 days, it will be adjusted to this date. +* When testing a policy: + * If the policy is missing and the start and end date are before the current date, it will return true. + * If the start date is different but before the current start date and time, it will return true. \ No newline at end of file diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 index 490fca3de0..cf3abda18b 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 @@ -27,6 +27,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Mock -CommandName Confirm-M365DSCDependencies -MockWith { } + Mock -CommandName Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { + return @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = @{ + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } + } + } + + Mock -CommandName 'Get-Date' -MockWith { + return [datetime]::new(2022, 12, 30) + } + Mock -CommandName Update-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { } @@ -59,10 +77,10 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 - } -ClientOnly) + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) Ensure = 'Present' Credential = $Credential } @@ -91,47 +109,29 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 - } -ClientOnly) + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) Ensure = 'Absent' Credential = $Credential } - - Mock -CommandName Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { - return @{ - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.WindowsFeatureUpdateProfile' - } - Description = 'FakeStringValue' - DisplayName = 'FakeStringValue' - FeatureUpdateVersion = 'FakeStringValue' - Id = 'FakeStringValue' - RolloutSettings = @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 - } - - } - } } It 'Should return Values from the Get method' { (Get-TargetResource @testParams).Ensure | Should -Be 'Present' } - It 'Should return true from the Test method' { + It 'Should return false from the Test method' { Test-TargetResource @testParams | Should -Be $false } - It 'Should Remove the group from the Set method' { + It 'Should remove the profile from the Set method' { Set-TargetResource @testParams Should -Invoke -CommandName Remove-MgBetaDeviceManagementWindowsFeatureUpdateProfile -Exactly 1 } } - Context -Name 'The IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 Exists and Values are already in the desired state' -Fixture { + Context -Name 'The IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 exists and values are already in the desired state' -Fixture { BeforeAll { $testParams = @{ Description = 'FakeStringValue' @@ -139,34 +139,15 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 - } -ClientOnly) + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) Ensure = 'Present' Credential = $Credential } - - Mock -CommandName Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { - return @{ - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.WindowsFeatureUpdateProfile' - } - Description = 'FakeStringValue' - DisplayName = 'FakeStringValue' - FeatureUpdateVersion = 'FakeStringValue' - Id = 'FakeStringValue' - RolloutSettings = @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 - } - - } - } } - It 'Should return true from the Test method' { Test-TargetResource @testParams | Should -Be $true } @@ -180,10 +161,10 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 - } -ClientOnly) + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) Ensure = 'Present' Credential = $Credential } @@ -195,9 +176,9 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 7 + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 1 #drift } } } @@ -217,31 +198,165 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } } - Context -Name 'ReverseDSC Tests' -Fixture { + Context -Name 'The IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 exists and the RolloutSettings are NOT in the desired state' -Fixture { BeforeAll { - $Global:CurrentModeIsExport = $true - $Global:PartialExportFileName = "$(New-Guid).partial.ps1" $testParams = @{ - Credential = $Credential + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) + Ensure = 'Present' + Credential = $Credential } + } + It 'Should return false from the Test method because OfferEndDateTimeInUTC is missing' { Mock -CommandName Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { return @{ - AdditionalProperties = @{ - '@odata.type' = '#microsoft.graph.WindowsFeatureUpdateProfile' - } Description = 'FakeStringValue' DisplayName = 'FakeStringValue' FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = @{ - OfferEndDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.0000000+00:00' - OfferIntervalInDays = 25 + OfferStartDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferEndDateTimeInUTC = $null + OfferIntervalInDays = $null } + } + } + Test-TargetResource @testParams | Should -Be $false + } + It 'Should return false from the Test method because neither OfferStartDateTimeInUTC nor OfferEndDateTimeInUTC is set' { + Mock -CommandName Get-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { + return @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = @{ + OfferEndDateTimeInUTC = $null + OfferStartDateTimeInUTC = $null + OfferIntervalInDays = $null + } } } + Test-TargetResource @testParams | Should -Be $false + } + } + + Context -Name 'The IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 exists and RolloutSettings are different but still valid' -Fixture { + It 'Should return true from the Test method because OfferStartDateTimeInUTC is before the current value and time' { + $testParams = @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ + OfferStartDateTimeInUTC = '2022-12-31T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) + Ensure = 'Present' + Credential = $Credential + } + Mock -CommandName 'Get-Date' -MockWith { + return [datetime]::new(2023, 1, 1) + } + Test-TargetResource @testParams | Should -Be $true + } + + It 'Should return true from the Test method because OfferStartDateTimeInUTC and OfferEndDateTimeInUTC are in the past' { + $testParams = @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) + Ensure = 'Present' + Credential = $Credential + } + + Mock -CommandName 'Get-Date' -MockWith { + return [datetime]::new(2023, 02, 02) + } + + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name 'The IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 exists and RolloutSettings are different and invalid' -Fixture { + It 'Should throw from the Set method because OfferStartDateTimeInUTC is after OfferEndDateTimeInUTC' { + $testParams = @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ + OfferStartDateTimeInUTC = '2023-01-04T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) + Ensure = 'Present' + Credential = $Credential + } + { Set-TargetResource @testParams } | Should -Throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC + 1 day.' + } + + It 'Should throw from the Set method because OfferStartDateTimeInUTC is already set and OfferEndDateTimeInUTC is not greater than the current time' { + $testParams = @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 2 + } -ClientOnly) + Ensure = 'Present' + Credential = $Credential + } + Mock -CommandName 'Get-Date' -MockWith { + return [datetime]::new(2023, 1, 4) + } + { Set-TargetResource @testParams } | Should -Throw 'OfferEndDateTimeInUTC must be greater than the current time.' + } + + It 'Should throw from the Set method because OfferIntervalInDays is more than the gap between start and end time' { + $testParams = @{ + Description = 'FakeStringValue' + DisplayName = 'FakeStringValue' + FeatureUpdateVersion = 'FakeStringValue' + Id = 'FakeStringValue' + RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ + OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' + OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferIntervalInDays = 3 + } -ClientOnly) + Ensure = 'Present' + Credential = $Credential + } + { Set-TargetResource @testParams } | Should -Throw 'OfferIntervalInDays must be less than or equal to the difference between OfferEndDateTimeInUTC and OfferStartDateTimeInUTC in days.' + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } } It 'Should Reverse Engineer resource from the Export method' { $result = Export-TargetResource @testParams From 6caf01bf3ce7348f0a4257e0cfdd856081c33365 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 22 Jul 2024 12:50:30 +0000 Subject: [PATCH 225/273] Updated Resources and Cmdlet documentation pages --- ...neAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md b/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md index 4c2dbf4fd5..205075bc84 100644 --- a/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md +++ b/docs/docs/resources/intune/IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.md @@ -27,7 +27,7 @@ | **UseAdvancedProtectionAgainstRansomware** | Write | String | This rule provides an extra layer of protection against ransomware. | `off`, `block`, `audit`, `warn` | | **ControlledFolderAccessProtectedFolders** | Write | StringArray[] | List of additional folders that need to be protected | | | **ControlledFolderAccessAllowedApplications** | Write | StringArray[] | List of apps that have access to protected folders. | | -| **EnableControlledFolderAccess** | Write | String | This rule enable Controlled folder access which protects your data by checking apps against a list of known, trusted apps.values 0:disable, 1:enable, 2:audit | `0`, `1`, `2` | +| **EnableControlledFolderAccess** | Write | String | This rule enable Controlled folder access which protects your data by checking apps against a list of known, trusted apps.values 0:disable, 1:enable, 2:audit, 3: Block disk modification only, 4: Audit disk modification only | `0`, `1`, `2`, `3`, `4` | | **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. | | From c2503511c1d7eaea591a919f480e472d7a5bb2a1 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Mon, 22 Jul 2024 14:10:47 +0200 Subject: [PATCH 226/273] Update feature update policy end date restrictions --- ...BusinessFeatureUpdateProfileWindows10.psm1 | 32 +++++----- .../readme.md | 2 +- ...essFeatureUpdateProfileWindows10.Tests.ps1 | 62 +++++++++---------- 3 files changed, 50 insertions(+), 46 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 index 5130af0874..9fdd60d498 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 @@ -320,17 +320,18 @@ function Set-TargetResource if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferEndDateTimeInUTC)) { - # If an end date is configured, then the start date must be greater than the current time + 2 days + # If an end date is configured, then the start date must be at least the current time + 2 days $minTimeForAvailable = $currentTime.AddDays(2) if ($newOfferStartDate -lt $minTimeForAvailable) { + Write-Verbose -Message 'OfferStartDateTimeInUTC must be at least the current time + 2 days, adjusting it...' $newOfferStartDate = $minTimeForAvailable $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $newOfferStartDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') } - if ($offerEndDate -lt $newOfferStartDate) + if ($offerEndDate -lt $newOfferStartDate.AddDays(1)) { - throw 'OfferEndDateTimeInUTC must be greater than current time + 2 days.' + throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC + 1 day.' } if ($RolloutSettings.OfferIntervalInDays -gt ($offerEndDate - $newOfferStartDate).Days) @@ -387,7 +388,7 @@ function Set-TargetResource } $newOfferStartDate = $offerStartDate - # If the configured start date is different from the current start date and is less than the current time, we use the current start date + # If the configured start date is different from the current start date but less than the current time, we use the current start date if ($offerStartDate -ne $currentOfferDate -and $offerStartDate -lt $minTimeForAvailable) { if ($currentOfferDate -eq [datetime]::MinValue) @@ -399,29 +400,24 @@ function Set-TargetResource { $newOfferStartDate = $currentOfferDate } - $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $currentOfferDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $newOfferStartDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') } if (-not [string]::IsNullOrEmpty($RolloutSettings.OfferEndDateTimeInUTC)) { - # If an end date is configured, then the start date must be greater than the current time + 2 days + # If an end date is configured, then the start date must be at least the current time + 2 days $offerEndDate = [datetime]::Parse($RolloutSettings.OfferEndDateTimeInUTC) $minTimeForAvailable = $currentTime.AddDays(2) if ($newOfferStartDate -lt $minTimeForAvailable) { + Write-Verbose -Message 'OfferStartDateTimeInUTC must be at least the current time + 2 days, adjusting it...' $newOfferStartDate = $minTimeForAvailable $BoundParameters.RolloutSettings.OfferStartDateTimeInUTC = $newOfferStartDate.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') } - if (-not [string]::IsNullOrEmpty($currentInstance.RolloutSettings.OfferEndDateTimeInUTC)) - { - $currentOfferEndDate = [datetime]::Parse($currentInstance.RolloutSettings.OfferEndDateTimeInUTC) - } - - # If the end date is less than the start date + 1 day or the current time, we throw an error - if ($offerEndDate -lt $newOfferStartDate.AddDays(1) -or $offerEndDate -lt $currentTime) + if ($offerEndDate -lt $newOfferStartDate.AddDays(1)) { - throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC and current time (+ 2 days if not previously specified).' + throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC + 1 day.' } if ($RolloutSettings.OfferIntervalInDays -gt ($offerEndDate - $newOfferStartDate).Days) @@ -644,6 +640,14 @@ function Test-TargetResource if ($testResult -and $offerEndDate -ne [datetime]::MinValue -and $currentOfferEndDate -ne [datetime]::MinValue) { + if ($offerStartDate -ne $currentOfferStartDate ` + -and $offerStartDate -gt $currentTime ` + -and $offerStartDate -lt $currentTime.AddDays(2)) + { + Write-Verbose -Message 'OfferStartDateTimeInUTC must be greater than the current time + 2 days to be changable if OfferEndDateTimeInUTC is specified, resetting testResult to true.' + $testResult = $true + } + if ($offerEndDate -ne $currentOfferEndDate ` -and $offerEndDate -gt $currentTime ` -and $offerEndDate -gt $offerStartDate) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md index deb95c3998..43ba886fcb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/readme.md @@ -24,4 +24,4 @@ The RolloutSettings for this resource have the following constraints and notes: * If the start date is before the current date + 2 days, it will be adjusted to this date. * When testing a policy: * If the policy is missing and the start and end date are before the current date, it will return true. - * If the start date is different but before the current start date and time, it will return true. \ No newline at end of file + * If the start date is different but before the current start date or time, it will return true. diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 index cf3abda18b..da772471c5 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.Tests.ps1 @@ -34,15 +34,15 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } } } Mock -CommandName 'Get-Date' -MockWith { - return [datetime]::new(2022, 12, 30) + return [datetime]::new(2024, 01, 01) } Mock -CommandName Update-MgBetaDeviceManagementWindowsFeatureUpdateProfile -MockWith { @@ -77,8 +77,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' @@ -109,8 +109,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Absent' @@ -139,8 +139,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' @@ -161,8 +161,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' @@ -176,8 +176,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 1 #drift } } @@ -206,8 +206,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' @@ -223,7 +223,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = @{ - OfferStartDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferEndDateTimeInUTC = $null OfferIntervalInDays = $null } @@ -258,15 +258,15 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2022-12-31T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' Credential = $Credential } Mock -CommandName 'Get-Date' -MockWith { - return [datetime]::new(2023, 1, 1) + return [datetime]::new(2024, 1, 5) } Test-TargetResource @testParams | Should -Be $true } @@ -278,8 +278,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' @@ -287,7 +287,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } Mock -CommandName 'Get-Date' -MockWith { - return [datetime]::new(2023, 02, 02) + return [datetime]::new(2024, 02, 01) } Test-TargetResource @testParams | Should -Be $true @@ -302,8 +302,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-04T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-08T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' @@ -312,24 +312,24 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { { Set-TargetResource @testParams } | Should -Throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC + 1 day.' } - It 'Should throw from the Set method because OfferStartDateTimeInUTC is already set and OfferEndDateTimeInUTC is not greater than the current time' { + It 'Should throw from the Set method because OfferStartDateTimeInUTC is adjusted and OfferEndDateTimeInUTC is not greater than that time + 1 day' { $testParams = @{ Description = 'FakeStringValue' DisplayName = 'FakeStringValue' FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 2 } -ClientOnly) Ensure = 'Present' Credential = $Credential } Mock -CommandName 'Get-Date' -MockWith { - return [datetime]::new(2023, 1, 4) + return [datetime]::new(2024, 1, 5) } - { Set-TargetResource @testParams } | Should -Throw 'OfferEndDateTimeInUTC must be greater than the current time.' + { Set-TargetResource @testParams } | Should -Throw 'OfferEndDateTimeInUTC must be greater than OfferStartDateTimeInUTC + 1 day.' } It 'Should throw from the Set method because OfferIntervalInDays is more than the gap between start and end time' { @@ -339,8 +339,8 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { FeatureUpdateVersion = 'FakeStringValue' Id = 'FakeStringValue' RolloutSettings = (New-CimInstance -ClassName MSFT_MicrosoftGraphwindowsUpdateRolloutSettings -Property @{ - OfferStartDateTimeInUTC = '2023-01-01T00:00:00.000Z' - OfferEndDateTimeInUTC = '2023-01-03T00:00:00.000Z' + OfferStartDateTimeInUTC = '2024-01-05T00:00:00.000Z' + OfferEndDateTimeInUTC = '2024-01-07T00:00:00.000Z' OfferIntervalInDays = 3 } -ClientOnly) Ensure = 'Present' From ebf8447c5bb457fc2f915f1398ad44ba3fb88e61 Mon Sep 17 00:00:00 2001 From: mlhickey Date: Mon, 22 Jul 2024 08:24:06 -0700 Subject: [PATCH 227/273] Update M365DSCUtil.psm1 Add support for credential & application ID to address #4791 --- Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 882674e3a4..1411a55cac 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1304,6 +1304,7 @@ function Export-M365DSCConfiguration if ($PSBoundParameters.ContainsKey('ApplicationId') -eq $true -and ` $PSBoundParameters.ContainsKey('TenantId') -eq $true -and ` + $PSBoundParameters.ContainsKey('Credential') -eq $false -and ` ($PSBoundParameters.ContainsKey('CertificateThumbprint') -eq $false -and ` $PSBoundParameters.ContainsKey('ApplicationSecret') -eq $false -and ` $PSBoundParameters.ContainsKey('CertificatePath') -eq $false)) From 3deb7b67e8cf38f55f8b1e06143613edb92cf0e1 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 22 Jul 2024 14:38:04 -0400 Subject: [PATCH 228/273] Fixes issue with SPOSharingSettings Filtering --- CHANGELOG.md | 6 ++++-- .../MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74310e3917..e3b18c58a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,12 @@ # Change log for Microsoft365DSC -# UNRELEASED +# UNRELEASED * IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager - * Migrate to new settings catalog cmdlets. + * Migrate to new settings catalog cmdlets. FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) +* SPOSharingSettings + * Changed approach to MySite filtering. # 1.24.717.1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 index f412d6b79f..da02a82def 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 @@ -173,7 +173,7 @@ function Get-TargetResource try { $SPOSharingSettings = Get-PnPTenant -ErrorAction Stop - $MySite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.' -and Template -notlike '^RedirectSite#'" + $MySite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.'" | Where-Object -FilterScript { $_.Template -notmatch "^RedirectSite#'" } if ($null -ne $MySite) { @@ -532,7 +532,7 @@ function Set-TargetResource Set-PnPTenant @CurrentParameters | Out-Null if ($SetMySharingCapability) { - $mysite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.' -and Template -notlike '^RedirectSite#'" + $mysite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.'" | Where-Object -FilterScript { $_.Template -notmatch "^RedirectSite#'" } Set-PnPTenantSite -Identity $mysite.Url -SharingCapability $MySiteSharingCapability } } From 033c268754ec551b4cf926fb90686dcd6f24b7b7 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Mon, 22 Jul 2024 19:37:18 +0200 Subject: [PATCH 229/273] Improve PowerShell 7 support --- CHANGELOG.md | 3 + .../Dependencies/Manifest.psd1 | 7 ++ .../Modules/M365DSCReport.psm1 | 21 ++++- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 78 +++++++++++++++++-- Tests/TestHarness.psm1 | 1 + .../get-started/powershell7-support.md | 6 +- 6 files changed, 105 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74310e3917..1ce277972d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ * IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager * Migrate to new settings catalog cmdlets. FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) +* MISC + * Improve PowerShell Core support across the DSC resources. + FIXES [#4911](https://github.com/microsoft/Microsoft365DSC/issues/4911) # 1.24.717.1 diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index 9cb6e8da66..78d479bb67 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -96,6 +96,13 @@ ModuleName = 'PnP.PowerShell' RequiredVersion = '1.12.0' }, + @{ + ModuleName = 'PSDesiredStateConfiguration' + RequiredVersion = '2.0.7' + PowerShellCore = $true + ExplicitLoading = $true + Prefix = 'Pwsh' + }, @{ ModuleName = 'ReverseDSC' RequiredVersion = '2.0.0.20' diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 index f732ea0367..6dc621dda0 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 @@ -419,12 +419,21 @@ function Get-Base64EncodedImage { $mimeType = "image/jpeg" } + if($icon.Extension.endsWith("png")) { $mimeType = "image/png" } - $base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $iconPath -Encoding Byte -ReadCount 0)) + if ($PSVersionTable.PSEdition -eq 'Core') + { + $base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $IconPath -AsByteStream -ReadCount 0)) + } + else + { + $base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $iconPath -Encoding Byte -ReadCount 0)) + } + return $("data:$($mimeType);base64,$($base64EncodedImage)") } else @@ -736,7 +745,15 @@ function Compare-M365DSCConfigurations [Array]$DestinationObject = $DestinationObject | Where-Object -FilterScript { $_.ResourceName -notin $ExcludedResources } } - $dscResourceInfo = Get-DSCResource -Module 'Microsoft365DSC' + $isPowerShellCore = $PSVersionTable.PSEdition -eq 'Core' + if ($isPowerShellCore) + { + $dscResourceInfo = Get-PwshDSCResource -Module 'Microsoft365DSC' + } + else + { + $dscResourceInfo = Get-DSCResource -Module 'Microsoft365DSC' + } # Loop through all items in the source array $i = 1 foreach ($sourceResource in $SourceObject) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 882674e3a4..fd4e4bba84 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -23,6 +23,7 @@ Internal, Hidden function Format-EXOParams { [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] param ( [Parameter()] @@ -1450,6 +1451,7 @@ function Export-M365DSCConfiguration } $Script:M365DSCDependenciesValidated = $false +$Script:IsPowerShellCore = $PSVersionTable.PSEdition -eq 'Core' <# .Description @@ -1476,7 +1478,7 @@ function Confirm-M365DSCDependencies { $ErrorMessage += ' * ' + $invalidDependency.ModuleName + "`r`n" } - $ErrorMessage += 'Please run Update-M365DSCDependencies with scope "currentUser" or as Administrator.' + $ErrorMessage += 'Please run Update-M365DSCDependencies as Administrator.' $ErrorMessage += 'Please run Uninstall-M365DSCOutdatedDependencies.' $Script:M365DSCDependenciesValidated = $false Add-M365DSCEvent -Message $ErrorMessage -EntryType 'Error' ` @@ -1521,6 +1523,11 @@ function Import-M365DSCDependencies foreach ($dependency in $dependencies) { + if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore) + { + Write-Verbose -Message "Skipping module {$($dependency.ModuleName)} as it is not compatible with Windows PowerShell." + continue + } Import-Module $dependency.ModuleName -RequiredVersion $dependency.RequiredVersion -Force -Global:$Global } } @@ -1579,6 +1586,7 @@ Internal function Get-M365DSCTenantDomain { [CmdletBinding(DefaultParameterSetName = 'AppId')] + [OutputType([System.String])] param ( [Parameter(ParameterSetName = 'AppId', Mandatory = $true)] @@ -3095,6 +3103,11 @@ function Update-M365DSCDependencies { if (-not $Force) { + if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore) + { + Write-Verbose -Message "The dependency {$($dependency.ModuleName)} requires PowerShell Core. Skipping." + continue + } $found = Get-Module $dependency.ModuleName -ListAvailable | Where-Object -FilterScript { $_.Version -eq $dependency.RequiredVersion } } @@ -3111,10 +3124,22 @@ function Update-M365DSCDependencies } catch { - Write-Verbose -Message "Couldn't retrieve Windows Principal. One possible cause is that the current environment is not Windows OS." + Write-Verbose -Message "Couldn't retrieve Windows Principal. One possible cause is that the current environment is not a Windows OS." } if (-not $errorFound) { + if ($null -eq $dependency.PowerShellCore -and $Script:IsPowerShellCore) + { + Write-Warning "The dependency {$($dependency.ModuleName)} does not support PowerShell Core. Please install it in Windows PowerShell." + continue + } + + if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore) + { + Write-Warning "The dependency {$($dependency.ModuleName)} requires PowerShell Core. Please install it in PowerShell Core." + continue + } + Write-Information -MessageData "Installing $($dependency.ModuleName) version {$($dependency.RequiredVersion)}" Remove-Module $dependency.ModuleName -Force -ErrorAction SilentlyContinue if ($dependency.ModuleName -like 'Microsoft.Graph*') @@ -3126,6 +3151,19 @@ function Update-M365DSCDependencies } } + if ($dependency.ExplicitLoading) + { + Remove-Module $dependency.ModuleName -Force -ErrorAction SilentlyContinue + if ($dependency.Prefix) + { + Import-Module $dependency.ModuleName -Global -Prefix $dependency.Prefix -Force + } + else + { + Import-Module $dependency.ModuleName -Global -Force + } + } + if (-not $found -and $validateOnly) { $returnValue += $dependency @@ -3582,7 +3620,14 @@ function Get-M365DSCExportContentForResource { if ($Script:AllM365DscResources.Count -eq 0) { - $Script:AllM365DscResources = Get-DscResource -Module 'Microsoft365Dsc' + if ($Script:IsPowerShellCore) + { + $Script:AllM365DscResources = Get-PwshDscResource -Module 'Microsoft365Dsc' + } + else + { + $Script:AllM365DscResources = Get-DscResource -Module 'Microsoft365Dsc' + } } $Resource = $Script:AllM365DscResources.Where({ $_.Name -eq $ResourceName }) @@ -4327,7 +4372,14 @@ function Create-M365DSCResourceExample $ResourceName ) - $resource = Get-DscResource -Name $ResourceName + if ($Script:IsPowerShellCore) + { + $resource = Get-PwshDscResource -Name $ResourceName + } + else + { + $resource = Get-DscResource -Name $ResourceName + } $params = Get-DSCFakeParameters -ModulePath $resource.Path @@ -4412,7 +4464,14 @@ function New-M365DSCMissingResourcesExample { $location = $PSScriptRoot - $m365Resources = Get-DscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name + if ($Script:IsPowerShellCore) + { + $m365Resources = Get-PwshDscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name + } + else + { + $m365Resources = Get-DscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name + } $examplesPath = Join-Path $location -ChildPath '..\Examples\Resources' $examples = Get-ChildItem -Path $examplesPath | Where-Object { $_.PsIsContainer } | Select-Object -ExpandProperty Name @@ -4768,7 +4827,14 @@ function Get-M365DSCConfigurationConflict $parsedContent = ConvertTo-DSCObject -Content $ConfigurationContent $resourcesPrimaryIdentities = @() - $resourcesInModule = Get-DSCResource -Module 'Microsoft365DSC' + if ($Script:IsPowerShellCore) + { + $resourcesInModule = Get-PwshDSCResource -Module 'Microsoft365DSC' + } + else + { + $resourcesInModule = Get-DSCResource -Module 'Microsoft365DSC' + } foreach ($component in $parsedContent) { $resourceDefinition = $resourcesInModule | Where-Object -FilterScript {$_.Name -eq $component.ResourceName} diff --git a/Tests/TestHarness.psm1 b/Tests/TestHarness.psm1 index ecc798f884..a1ccd89269 100644 --- a/Tests/TestHarness.psm1 +++ b/Tests/TestHarness.psm1 @@ -38,6 +38,7 @@ function Invoke-TestHarness } Import-Module -Name "$repoDir/Modules/Microsoft365DSC/Microsoft365DSC.psd1" + Import-Module -Name PSDesiredStateConfiguration -Global -Prefix 'Pwsh' -Force $testsToRun = @() # Run Unit Tests diff --git a/docs/docs/user-guide/get-started/powershell7-support.md b/docs/docs/user-guide/get-started/powershell7-support.md index cb869406b4..aee26a3774 100644 --- a/docs/docs/user-guide/get-started/powershell7-support.md +++ b/docs/docs/user-guide/get-started/powershell7-support.md @@ -41,10 +41,10 @@ that location or use PowerShell 5.1 to install the modules using 'Install-Module Connect-PnPOnline: Could not load file or assembly 'System.IdentityModel.Tokens.Jwt, Version=6.12.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Could not find or load a specific file. (0x80131621) ``` -# PSDesiredStateConfiguration Needs to be Installed Separately +# PSDesiredStateConfiguration needs to be installed separately -Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now need to be installed separately. In a PowerShell 7+ console, you can install the module by running the command: +Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now needs to be installed separately. In a PowerShell 7+ console, you can install the module by running the command: ```powershell -Install-Module PSDesiredStateConfiguration -Force +Install-Module PSDesiredStateConfiguration -RequiredVersion 2.0.7 -Force ``` From 103bf9e9b746f9a7cb2351c58c6d9f80426f8f8e Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 22 Jul 2024 15:12:30 -0400 Subject: [PATCH 230/273] Additional fix for Template Filter --- .../MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 index da02a82def..e0bccf5548 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 @@ -173,7 +173,7 @@ function Get-TargetResource try { $SPOSharingSettings = Get-PnPTenant -ErrorAction Stop - $MySite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.'" | Where-Object -FilterScript { $_.Template -notmatch "^RedirectSite#'" } + $MySite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.'" | Where-Object -FilterScript { $_.Template -notmatch "^RedirectSite#" } if ($null -ne $MySite) { @@ -532,7 +532,7 @@ function Set-TargetResource Set-PnPTenant @CurrentParameters | Out-Null if ($SetMySharingCapability) { - $mysite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.'" | Where-Object -FilterScript { $_.Template -notmatch "^RedirectSite#'" } + $mysite = Get-PnPTenantSite -Filter "Url -like '-my.sharepoint.'" | Where-Object -FilterScript { $_.Template -notmatch "^RedirectSite#" } Set-PnPTenantSite -Identity $mysite.Url -SharingCapability $MySiteSharingCapability } } From 25c93c796470aa5733fb9fa990ad76f19493bc1d Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 23 Jul 2024 11:11:56 +0000 Subject: [PATCH 231/273] Updated Resources and Cmdlet documentation pages --- ...orBusinessFeatureUpdateProfileWindows10.md | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md index 6bd3ae2629..2c6cec626d 100644 --- a/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md +++ b/docs/docs/resources/intune/IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.md @@ -8,7 +8,9 @@ | **DisplayName** | Key | String | The display name of the profile. | | | **Description** | Write | String | The description of the profile which is specified by the user. | | | **FeatureUpdateVersion** | Write | String | The feature update version that will be deployed to the devices targeted by this profile. The version could be any supported version for example 1709, 1803 or 1809 and so on. | | -| **RolloutSettings** | Write | MSFT_MicrosoftGraphwindowsUpdateRolloutSettings | The windows update rollout settings, including offer start date time, offer end date time, and days between each set of offers. | | +| **InstallFeatureUpdatesOptional** | Write | Boolean | If true, the Windows 11 update will become optional | | +| **InstallLatestWindows10OnWindows11IneligibleDevice** | Write | Boolean | If true, the latest Microsoft Windows 10 update will be installed on devices ineligible for Microsoft Windows 11. Cannot be changed after creation of the policy. | | +| **RolloutSettings** | Write | MSFT_MicrosoftGraphwindowsUpdateRolloutSettings | The windows update rollout settings, including offer start date time, offer end date time, and days between each set of offers. For 'as soon as possible' installation, set this setting to $null or do not configure it. | | | **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | 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 | | @@ -47,6 +49,27 @@ Intune Windows Update For Business Feature Update Profile for Windows10 +## RolloutSettings + +The RolloutSettings for this resource have the following constraints and notes: + +* When creating a policy: + * If only a start date is specified, then the start date must be at least today. + * If the desired state date is before the current date, it will be adjusted to the current date. + * If a start and end date is specified, the start date must be the current date + 2 days, and + the end date must be at least one day after the start date. + * If the start date is before the current date + 2 days, it will be adjusted to this date. +* When updating a policy: + * If only a start date is specified, then the start date must either be the date from the current + configuration or the current date (or later). + * If the desired state date is before the current date, it will be adjusted to the current date. + * If a start and end date is specified, the start date must be the current date + 2 days, and + the end date must be at least one day after the start date. + * If the start date is before the current date + 2 days, it will be adjusted to this date. +* When testing a policy: + * If the policy is missing and the start and end date are before the current date, it will return true. + * If the start date is different but before the current start date or time, it will return true. + ## Permissions ### Microsoft Graph From cdd496987e871b262c3c2c4361d7ff4d2554ce14 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 23 Jul 2024 11:13:16 +0000 Subject: [PATCH 232/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index ee276441d1..dca6c52ecd 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -32852,6 +32852,16 @@ "Name": "FeatureUpdateVersion", "Option": "Write" }, + { + "CIMType": "Boolean", + "Name": "InstallFeatureUpdatesOptional", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "InstallLatestWindows10OnWindows11IneligibleDevice", + "Option": "Write" + }, { "CIMType": "MSFT_MicrosoftGraphwindowsUpdateRolloutSettings", "Name": "RolloutSettings", From 7e5f7e55fab07f3f4bd1dbe14ebc276da4f48245 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 23 Jul 2024 11:29:32 +0000 Subject: [PATCH 233/273] Updated Resources and Cmdlet documentation pages --- .../intune/IntuneAntivirusPolicyWindows10SettingCatalog.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md b/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md index 535b6c4d86..2ad9520438 100644 --- a/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md +++ b/docs/docs/resources/intune/IntuneAntivirusPolicyWindows10SettingCatalog.md @@ -51,6 +51,7 @@ | **disablecatchupquickscan** | Write | String | This policy setting allows you to configure catch-up scans for scheduled quick scans. (1: disabled, 0: enabled) | `0`, `1` | | **disablednsovertcpparsing** | Write | String | Disables or enables DNS over TCP Parsing for Network Protection. (0: enable feature. 1: disable feature) | `0`, `1` | | **disablehttpparsing** | Write | String | Disables or enables HTTP Parsing for Network Protection. (0: enable feature. 1: disable feature) | `0`, `1` | +| **DisableSshParsing** | Write | String | Disable Ssh Parsing (1: SSH parsing is disabled, 0: SSH parsing is enabled) | `1`, `0` | | **enablelowcpupriority** | Write | String | This policy setting allows you to enable or disable low CPU priority for scheduled scans. (0: disable feature. 1: enable feature) | `0`, `1` | | **enablenetworkprotection** | Write | String | This policy allows you to turn on network protection (block/audit) or off. (0: disabled, 1: block mode, 2: audit mode) | `0`, `1`, `2` | | **excludedextensions** | Write | StringArray[] | Allows an administrator to specify a list of file type extensions to ignore during a scan. | | @@ -65,13 +66,13 @@ | **scanparameter** | Write | String | Selects whether to perform a quick scan or full scan. (1: Quick scan, 2: Full scan) | `1`, `2` | | **schedulequickscantime** | Write | SInt32 | Selects the time of day that the Windows Defender quick scan should run. | | | **schedulescanday** | Write | String | Selects the day that the Windows Defender scan should run. (0: Every day, 1: Sunday, 2: Monday, 3: Tuesday, 4: Wednesday, 5: Thursday, 6: Friday, 7: Saturday, 8: No scheduled scan) | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8` | -| **schedulescantime** | Write | SInt32 | Selects the time of day that the Windows Defender scan should run. | | +| **schedulescantime** | Write | SInt32 | Selects the time of day that the Windows Defender scan should run. Must be between 0 and 1380 minutes. | | | **disabletlsparsing** | Write | String | This setting disables TLS Parsing for Network Protection. (0: enabled, 1: disabled) | `0`, `1` | | **randomizescheduletasktimes** | Write | String | Specifies if the start time of the scan is randomized. (0: no randomization, 1: randomized) | `0`, `1` | | **schedulerrandomizationtime** | Write | SInt32 | This setting allows you to configure the scheduler randomization in hours. The randomization interval is [1 - 23] hours. | | | **signatureupdatefallbackorder** | Write | StringArray[] | This policy setting allows you to define the order in which different definition update sources should be contacted. | | | **signatureupdatefilesharessources** | Write | StringArray[] | This policy setting allows you to configure UNC file share sources for downloading definition updates. | | -| **signatureupdateinterval** | Write | SInt32 | Specifies the interval (in hours) that will be used to check for signatures, so instead of using the ScheduleDay and ScheduleTime the check for new signatures will be set according to the interval. | | +| **signatureupdateinterval** | Write | SInt32 | Specifies the interval (in hours) that will be used to check for signatures, so instead of using the ScheduleDay and ScheduleTime the check for new signatures will be set according to the interval. Must be between 0 and 24 hours. | | | **submitsamplesconsent** | Write | String | Checks for the user consent level in Windows Defender to send data. (0: Always prompt, 1: Send safe samples automatically, 2: Never send, 3: Send all samples automatically) | `0`, `1`, `2`, `3` | | **disablelocaladminmerge** | Write | String | This policy setting controls whether or not complex list settings configured by a local administrator are merged with managed settings. (0: enable local admin merge, 1: disable local admin merge) | `0`, `1` | | **allowonaccessprotection** | Write | String | Allows or disallows Windows Defender On Access Protection functionality. (0: disable feature. 1: enable feature) | `0`, `1` | @@ -79,7 +80,7 @@ | **moderateseveritythreats** | Write | String | Allows an administrator to specify moderate severity threats corresponding action ID to take. | `clean`, `quarantine`, `remove`, `allow`, `userdefined`, `block` | | **severethreats** | Write | String | Allows an administrator to specify high severity threats corresponding action ID to take. | `clean`, `quarantine`, `remove`, `allow`, `userdefined`, `block` | | **highseveritythreats** | Write | String | Allows an administrator to specify severe threats corresponding action ID to take. | `clean`, `quarantine`, `remove`, `allow`, `userdefined`, `block` | -| **templateId** | Write | String | Template Id of the policy. | `d948ff9b-99cb-4ee0-8012-1fbc09685377_1`, `e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1`, `45fea5e9-280d-4da1-9792-fb5736da0ca9_1`, `804339ad-1553-4478-a742-138fb5807418_1` | +| **templateId** | Write | String | Template Id of the policy. 0: Windows Security Experience, 1: Defender Update controls, 2: Microsoft Defender Antivirus exclusions, 3: Microsoft Defender Antivirus | `d948ff9b-99cb-4ee0-8012-1fbc09685377_1`, `e3f74c5a-a6de-411d-aef6-eb15628f3a0a_1`, `45fea5e9-280d-4da1-9792-fb5736da0ca9_1`, `804339ad-1553-4478-a742-138fb5807418_1` | | **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | 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 Intune Admin | | From dc8a3d1dcb88096adc52bcb13d69f5f71494454f Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Tue, 23 Jul 2024 11:31:27 +0000 Subject: [PATCH 234/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index dca6c52ecd..5c9de6a8f1 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -16032,6 +16032,11 @@ "Name": "disablehttpparsing", "Option": "Write" }, + { + "CIMType": "String", + "Name": "DisableSshParsing", + "Option": "Write" + }, { "CIMType": "String", "Name": "enablelowcpupriority", From ab16ddab75596e997c9e332ca0787d7005bca74e Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Tue, 23 Jul 2024 14:41:02 +0200 Subject: [PATCH 235/273] Add Intune EDR Linux Profile --- CHANGELOG.md | 2 + ...dpointDetectionAndResponsePolicyLinux.psm1 | 618 ++++++++++++++++++ ...DetectionAndResponsePolicyLinux.schema.mof | 30 + .../readme.md | 6 + .../settings.json | 32 + .../1-Create.ps1 | 39 ++ .../2-Update.ps1 | 38 ++ .../3-Remove.ps1 | 34 + ...tDetectionAndResponsePolicyLinux.Tests.ps1 | 367 +++++++++++ 9 files changed, 1166 insertions(+) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/1-Create.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/2-Update.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/3-Remove.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyLinux.Tests.ps1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6be603ba97..b08e11d163 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ * IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager * Migrate to new settings catalog cmdlets. FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) +* IntuneEndpointDetectionAndResponsePolicyLinux + * Initial release. * IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 * Introduces new properties and updates the handling of the start and end dates. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.psm1 new file mode 100644 index 0000000000..a2a7a9622f --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.psm1 @@ -0,0 +1,618 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $tags_item_value, + + [Parameter()] + [ValidateSet('0')] + [System.String] + $tags_item_key, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + try + { + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + + $getValue = $null + #region resource generator code + $getValue = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Id -ErrorAction SilentlyContinue + + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Endpoint Detection And Response Policy Linux with Id {$Id}" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $getValue = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName'" ` + -ErrorAction SilentlyContinue + } + } + #endregion + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Endpoint Detection And Response Policy Linux with Name {$DisplayName}." + return $nullResult + } + $Id = $getValue.Id + Write-Verbose -Message "An Intune Endpoint Detection And Response Policy Linux with Id {$Id} and Name {$DisplayName} was found" + + # Retrieve policy specific settings + [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` + -DeviceManagementConfigurationPolicyId $Id ` + -ExpandProperty 'settingDefinitions' ` + -ErrorAction Stop + + $policySettings = @{} + $policySettings = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $policySettings + + $results = @{ + #region resource generator code + Description = $getValue.Description + DisplayName = $getValue.Name + RoleScopeTagIds = $getValue.RoleScopeTagIds + Id = $getValue.Id + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + #endregion + } + $results += $policySettings + + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Id + $assignmentResult = @() + if ($assignmentsValues.Count -gt 0) + { + $assignmentResult += ConvertFrom-IntunePolicyAssignment -Assignments $assignmentsValues -IncludeDeviceFilter $true + } + $results.Add('Assignments', $assignmentResult) + + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $tags_item_value, + + [Parameter()] + [ValidateSet('0')] + [System.String] + $tags_item_key, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentInstance = Get-TargetResource @PSBoundParameters + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + + $templateReferenceId = '3514388a-d4d1-4aa8-bd64-c317776008f5_1' + $platforms = 'linux' + $technologies = 'microsoftSense' + + if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') + { + Write-Verbose -Message "Creating an Intune Endpoint Detection And Response Policy Linux with Name {$DisplayName}" + $BoundParameters.Remove("Assignments") | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReference = @{ templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } + + #region resource generator code + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters + + if ($policy.Id) + { + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + } + #endregion + } + elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating the Intune Endpoint Detection And Response Policy Linux with Id {$($currentInstance.Id)}" + $BoundParameters.Remove("Assignments") | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + Update-IntuneDeviceConfigurationPolicy ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Name $DisplayName ` + -Description $Description ` + -TemplateReferenceId $templateReferenceId ` + -Platforms $platforms ` + -Technologies $technologies ` + -Settings $settings + + #region resource generator code + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + #endregion + } + elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Removing the Intune Endpoint Detection And Response Policy Linux with Id {$($currentInstance.Id)}" + #region resource generator code + Remove-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $currentInstance.Id + #endregion + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $tags_item_value, + + [Parameter()] + [ValidateSet('0')] + [System.String] + $tags_item_key, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + Write-Verbose -Message "Testing configuration of the Intune Endpoint Detection And Response Policy Linux with Id {$Id} and Name {$DisplayName}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } + } + + if ($CurrentValues.Ensure -ne $Ensure) + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + $testResult = $true + + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) + { + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + + if (-not $testResult) + { + break + } + + $ValuesToCheck.Remove($key) | Out-Null + } + } + + $ValuesToCheck.Remove('Id') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + + if ($testResult) + { + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + } + + Write-Verbose -Message "Test-TargetResource returned $testResult" + + return $testResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + #region resource generator code + $policyTemplateID = "3514388a-d4d1-4aa8-bd64-c317776008f5_1" + [array]$getValue = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter $Filter ` + -All ` + -ErrorAction Stop | Where-Object ` + -FilterScript { + $_.TemplateReference.TemplateId -eq $policyTemplateID + } + #endregion + + $i = 1 + $dscContent = '' + if ($getValue.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $getValue) + { + $displayedKey = $config.Id + if (-not [String]::IsNullOrEmpty($config.displayName)) + { + $displayedKey = $config.displayName + } + elseif (-not [string]::IsNullOrEmpty($config.name)) + { + $displayedKey = $config.name + } + Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline + $params = @{ + Id = $config.Id + DisplayName = $config.Name + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + if ($Results.Assignments) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) + { + $Results.Assignments = $complexTypeStringResult + } + else + { + $Results.Remove('Assignments') | Out-Null + } + } + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true + } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.schema.mof new file mode 100644 index 0000000000..9802a097e5 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux.schema.mof @@ -0,0 +1,30 @@ +[ClassVersion("1.0.0.0")] +class MSFT_DeviceManagementConfigurationPolicyAssignments +{ + [Write, Description("The type of the target assignment."), ValueMap{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}, Values{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}] String dataType; + [Write, Description("The type of filter of the target assignment i.e. Exclude or Include. Possible values are:none, include, exclude."), ValueMap{"none","include","exclude"}, Values{"none","include","exclude"}] String deviceAndAppManagementAssignmentFilterType; + [Write, Description("The Id of the filter for the target assignment.")] String deviceAndAppManagementAssignmentFilterId; + [Write, Description("The group Id that is the target of the assignment.")] String groupId; + [Write, Description("The group Display Name that is the target of the assignment.")] String groupDisplayName; + [Write, Description("The collection Id that is the target of the assignment.(ConfigMgr)")] String collectionId; +}; + +[ClassVersion("1.0.0.0"), FriendlyName("IntuneEndpointDetectionAndResponsePolicyLinux")] +class MSFT_IntuneEndpointDetectionAndResponsePolicyLinux : OMI_BaseResource +{ + [Key, Description("Policy name")] String DisplayName; + [Write, Description("Policy description")] String Description; + [Write, Description("List of Scope Tags for this Entity instance.")] String RoleScopeTagIds[]; + [Write, Description("The unique identifier for an entity. Read-only.")] String Id; + [Write, Description("Value of tag")] String tags_item_value; + [Write, Description("Type of tag (0: GROUP)"), ValueMap{"0"}, Values{"0"}] String tags_item_key; + [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; + [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity; + [Write, Description("Access token used for authentication.")] String AccessTokens[]; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/readme.md new file mode 100644 index 0000000000..980dc6de67 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/readme.md @@ -0,0 +1,6 @@ + +# IntuneEndpointDetectionAndResponsePolicyLinux + +## Description + +Intune Endpoint Detection And Response Policy Linux diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/settings.json new file mode 100644 index 0000000000..84a108a641 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyLinux/settings.json @@ -0,0 +1,32 @@ +{ + "resourceName":"IntuneEndpointDetectionAndResponsePolicyLinux", + "description":"This resource configures an Intune Endpoint Detection And Response Policy Linux.", + "permissions":{ + "graph":{ + "delegated":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + }, + "application":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + } + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/1-Create.ps1 new file mode 100644 index 0000000000..6671471279 --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/1-Create.ps1 @@ -0,0 +1,39 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My revised description' + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/2-Update.ps1 new file mode 100644 index 0000000000..d9b9df2105 --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/2-Update.ps1 @@ -0,0 +1,38 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My updated description' # Updated Property + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/3-Remove.ps1 new file mode 100644 index 0000000000..e366ce677a --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyLinux/3-Remove.ps1 @@ -0,0 +1,34 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyLinux.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyLinux.Tests.ps1 new file mode 100644 index 0000000000..02453092ee --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyLinux.Tests.ps1 @@ -0,0 +1,367 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource "IntuneEndpointDetectionAndResponsePolicyLinux" -GenericStubModule $GenericStubPath +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + BeforeAll { + + $secpasswd = ConvertTo-SecureString (New-Guid | Out-String) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName Get-PSSession -MockWith { + } + + Mock -CommandName Remove-PSSession -MockWith { + } + + Mock -CommandName Update-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName New-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + } + } + + Mock -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName Get-IntuneSettingCatalogPolicySetting -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'linux_mdatp_managed_edr_tags' + Name = 'tags' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingGroupCollectionDefinition' + } + }, + @{ + Id = 'linux_mdatp_managed_edr_tags_item_value' + Name = 'tags_item_value' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'linux_mdatp_managed_edr_tags_item_key' + Name = 'tags_item_key' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'linux_mdatp_managed_edr_tags' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'd0eb0a92-3807-4d9d-8432-6edd1aa108ce' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' + groupSettingCollectionValue = @( + @{ + settingValueTemplateReference = $null + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstance' + children = @() + value = 'linux_mdatp_managed_edr_tags_item_key_0' + } + settingDefinitionId = 'linux_mdatp_managed_edr_tags_item_key' + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'tag' + } + settingDefinitionId = 'linux_mdatp_managed_edr_tags_item_value' + } + ) + } + ) + } + } + } + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + Description = 'My Test Description' + Name = 'My Test' + TemplateReference = @{ + TemplateId = '3514388a-d4d1-4aa8-bd64-c317776008f5_1' + TemplateFamily = 'endpointSecurityEndpointDetectionAndResponse' + } + RoleScopeTagIds = @("FakeStringValue") + } + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return "Credentials" + } + + Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { + } + + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { + return @(@{ + Id = '12345-12345-12345-12345-12345' + Source = 'direct' + SourceId = '12345-12345-12345-12345-12345' + Target = @{ + DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' + DeviceAndAppManagementAssignmentFilterType = 'none' + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } + ) + } + }) + } + } + # Test contexts + Context -Name "The IntuneEndpointDetectionAndResponsePolicyLinux should exist but it DOES NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = "Present" + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return $null + } + } + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + It 'Should Create the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName New-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 + } + } + + Context -Name "The IntuneEndpointDetectionAndResponsePolicyLinux exists but it SHOULD NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Absent' + Credential = $Credential; + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should Remove the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 + } + } + Context -Name "The IntuneEndpointDetectionAndResponsePolicyLinux Exists and Values are already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Present' + Credential = $Credential; + } + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name "The IntuneEndpointDetectionAndResponsePolicyLinux exists and values are NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'linux_mdatp_managed_edr_tags' + Name = 'tags' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingGroupCollectionDefinition' + } + }, + @{ + Id = 'linux_mdatp_managed_edr_tags_item_value' + Name = 'tags_item_value' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'linux_mdatp_managed_edr_tags_item_key' + Name = 'tags_item_key' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'linux_mdatp_managed_edr_tags' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'd0eb0a92-3807-4d9d-8432-6edd1aa108ce' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' + groupSettingCollectionValue = @( + @{ + settingValueTemplateReference = $null + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstance' + children = @() + value = 'linux_mdatp_managed_edr_tags_item_key_0' + } + settingDefinitionId = 'linux_mdatp_managed_edr_tags_item_key' + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'tag1234' #drift + } + settingDefinitionId = 'linux_mdatp_managed_edr_tags_item_value' + } + ) + } + ) + } + } + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should call the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Update-IntuneDeviceConfigurationPolicy -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + } + + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope From ba7cfdc074b4d7909edc121ee3944cabc9c5e792 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Tue, 23 Jul 2024 14:49:37 +0200 Subject: [PATCH 236/273] Add Intune EDR MacOS Profile --- CHANGELOG.md | 2 + ...dpointDetectionAndResponsePolicyMacOS.psm1 | 618 ++++++++++++++++++ ...DetectionAndResponsePolicyMacOS.schema.mof | 30 + .../readme.md | 6 + .../settings.json | 32 + .../1-Create.ps1 | 39 ++ .../2-Update.ps1 | 38 ++ .../3-Remove.ps1 | 34 + ...tDetectionAndResponsePolicyMacOS.Tests.ps1 | 368 +++++++++++ 9 files changed, 1167 insertions(+) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/1-Create.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/2-Update.ps1 create mode 100644 Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/3-Remove.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyMacOS.Tests.ps1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6be603ba97..4a3e06e879 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ * IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager * Migrate to new settings catalog cmdlets. FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) +* IntuneEndointDetectionAndResponsePolicyMacOS + * Initial release. * IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 * Introduces new properties and updates the handling of the start and end dates. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.psm1 new file mode 100644 index 0000000000..71d557da8b --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.psm1 @@ -0,0 +1,618 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $tags_item_value, + + [Parameter()] + [ValidateSet('0')] + [System.String] + $tags_item_key, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + try + { + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + + $getValue = $null + #region resource generator code + $getValue = Get-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $Id -ErrorAction SilentlyContinue + + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Endpoint Detection And Response Policy MacOS with Id {$Id}" + + if (-not [System.String]::IsNullOrEmpty($DisplayName)) + { + $getValue = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter "Name eq '$DisplayName'" ` + -ErrorAction SilentlyContinue + } + } + #endregion + if ($null -eq $getValue) + { + Write-Verbose -Message "Could not find an Intune Endpoint Detection And Response Policy MacOS with Name {$DisplayName}." + return $nullResult + } + $Id = $getValue.Id + Write-Verbose -Message "An Intune Endpoint Detection And Response Policy MacOS with Id {$Id} and Name {$DisplayName} was found" + + # Retrieve policy specific settings + [array]$settings = Get-MgBetaDeviceManagementConfigurationPolicySetting ` + -DeviceManagementConfigurationPolicyId $Id ` + -ExpandProperty 'settingDefinitions' ` + -ErrorAction Stop + + $policySettings = @{} + $policySettings = Export-IntuneSettingCatalogPolicySettings -Settings $settings -ReturnHashtable $policySettings + + $results = @{ + #region resource generator code + Description = $getValue.Description + DisplayName = $getValue.Name + RoleScopeTagIds = $getValue.RoleScopeTagIds + Id = $getValue.Id + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + #endregion + } + $results += $policySettings + + $assignmentsValues = Get-MgBetaDeviceManagementConfigurationPolicyAssignment -DeviceManagementConfigurationPolicyId $Id + $assignmentResult = @() + if ($assignmentsValues.Count -gt 0) + { + $assignmentResult += ConvertFrom-IntunePolicyAssignment -Assignments $assignmentsValues -IncludeDeviceFilter $true + } + $results.Add('Assignments', $assignmentResult) + + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $tags_item_value, + + [Parameter()] + [ValidateSet('0')] + [System.String] + $tags_item_key, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentInstance = Get-TargetResource @PSBoundParameters + + $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters + + $templateReferenceId = 'a6ff37f6-c841-4264-9249-1ecf793d94ef_1' + $platforms = 'macOS' + $technologies = 'microsoftSense' + + if ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Absent') + { + Write-Verbose -Message "Creating an Intune Endpoint Detection And Response Policy MacOS with Name {$DisplayName}" + $BoundParameters.Remove("Assignments") | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + $createParameters = @{ + Name = $DisplayName + Description = $Description + TemplateReference = @{ templateId = $templateReferenceId } + Platforms = $platforms + Technologies = $technologies + Settings = $settings + } + + #region resource generator code + $policy = New-MgBetaDeviceManagementConfigurationPolicy -BodyParameter $createParameters + + if ($policy.Id) + { + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $policy.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + } + #endregion + } + elseif ($Ensure -eq 'Present' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Updating the Intune Endpoint Detection And Response Policy MacOS with Id {$($currentInstance.Id)}" + $BoundParameters.Remove("Assignments") | Out-Null + + $settings = Get-IntuneSettingCatalogPolicySetting ` + -DSCParams ([System.Collections.Hashtable]$BoundParameters) ` + -TemplateId $templateReferenceId + + Update-IntuneDeviceConfigurationPolicy ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Name $DisplayName ` + -Description $Description ` + -TemplateReferenceId $templateReferenceId ` + -Platforms $platforms ` + -Technologies $technologies ` + -Settings $settings + + #region resource generator code + $assignmentsHash = ConvertTo-IntunePolicyAssignment -IncludeDeviceFilter:$true -Assignments $Assignments + Update-DeviceConfigurationPolicyAssignment ` + -DeviceConfigurationPolicyId $currentInstance.Id ` + -Targets $assignmentsHash ` + -Repository 'deviceManagement/configurationPolicies' + #endregion + } + elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') + { + Write-Verbose -Message "Removing the Intune Endpoint Detection And Response Policy MacOS with Id {$($currentInstance.Id)}" + #region resource generator code + Remove-MgBetaDeviceManagementConfigurationPolicy -DeviceManagementConfigurationPolicyId $currentInstance.Id + #endregion + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + #region resource generator code + [Parameter()] + [System.String] + $Description, + + [Parameter(Mandatory = $true)] + [System.String] + $DisplayName, + + [Parameter()] + [System.String[]] + $RoleScopeTagIds, + + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $tags_item_value, + + [Parameter()] + [ValidateSet('0')] + [System.String] + $tags_item_key, + + [Parameter()] + [Microsoft.Management.Infrastructure.CimInstance[]] + $Assignments, + #endregion + + [Parameter()] + [System.String] + [ValidateSet('Absent', 'Present')] + $Ensure = 'Present', + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + Write-Verbose -Message "Testing configuration of the Intune Endpoint Detection And Response Policy MacOS with Id {$Id} and Name {$DisplayName}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + [Hashtable]$ValuesToCheck = @{} + $MyInvocation.MyCommand.Parameters.GetEnumerator() | ForEach-Object { + if ($_.Key -notlike '*Variable' -or $_.Key -notin @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction')) + { + if ($null -ne $CurrentValues[$_.Key] -or $null -ne $PSBoundParameters[$_.Key]) + { + $ValuesToCheck.Add($_.Key, $null) + if (-not $PSBoundParameters.ContainsKey($_.Key)) + { + $PSBoundParameters.Add($_.Key, $null) + } + } + } + } + + if ($CurrentValues.Ensure -ne $Ensure) + { + Write-Verbose -Message "Test-TargetResource returned $false" + return $false + } + $testResult = $true + + #Compare Cim instances + foreach ($key in $PSBoundParameters.Keys) + { + $source = $PSBoundParameters.$key + $target = $CurrentValues.$key + if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*') + { + $testResult = Compare-M365DSCComplexObject ` + -Source ($source) ` + -Target ($target) + + if (-not $testResult) + { + break + } + + $ValuesToCheck.Remove($key) | Out-Null + } + } + + $ValuesToCheck.Remove('Id') | Out-Null + $ValuesToCheck = Remove-M365DSCAuthenticationParameter -BoundParameters $ValuesToCheck + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $PSBoundParameters)" + + if ($testResult) + { + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + } + + Write-Verbose -Message "Test-TargetResource returned $testResult" + + return $testResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + #region resource generator code + $policyTemplateID = "a6ff37f6-c841-4264-9249-1ecf793d94ef_1" + [array]$getValue = Get-MgBetaDeviceManagementConfigurationPolicy ` + -Filter $Filter ` + -All ` + -ErrorAction Stop | Where-Object ` + -FilterScript { + $_.TemplateReference.TemplateId -eq $policyTemplateID + } + #endregion + + $i = 1 + $dscContent = '' + if ($getValue.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $getValue) + { + $displayedKey = $config.Id + if (-not [String]::IsNullOrEmpty($config.displayName)) + { + $displayedKey = $config.displayName + } + elseif (-not [string]::IsNullOrEmpty($config.name)) + { + $displayedKey = $config.name + } + Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline + $params = @{ + Id = $config.Id + DisplayName = $config.Name + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + ApplicationSecret = $ApplicationSecret + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + if ($Results.Assignments) + { + $complexTypeStringResult = Get-M365DSCDRGComplexTypeToString -ComplexObject $Results.Assignments -CIMInstanceName DeviceManagementConfigurationPolicyAssignments + if ($complexTypeStringResult) + { + $Results.Assignments = $complexTypeStringResult + } + else + { + $Results.Remove('Assignments') | Out-Null + } + } + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + + if ($Results.Assignments) + { + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName "Assignments" -IsCIMArray:$true + } + + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.schema.mof new file mode 100644 index 0000000000..de1901f0c5 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS.schema.mof @@ -0,0 +1,30 @@ +[ClassVersion("1.0.0.0")] +class MSFT_DeviceManagementConfigurationPolicyAssignments +{ + [Write, Description("The type of the target assignment."), ValueMap{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}, Values{"#microsoft.graph.groupAssignmentTarget","#microsoft.graph.allLicensedUsersAssignmentTarget","#microsoft.graph.allDevicesAssignmentTarget","#microsoft.graph.exclusionGroupAssignmentTarget","#microsoft.graph.configurationManagerCollectionAssignmentTarget"}] String dataType; + [Write, Description("The type of filter of the target assignment i.e. Exclude or Include. Possible values are:none, include, exclude."), ValueMap{"none","include","exclude"}, Values{"none","include","exclude"}] String deviceAndAppManagementAssignmentFilterType; + [Write, Description("The Id of the filter for the target assignment.")] String deviceAndAppManagementAssignmentFilterId; + [Write, Description("The group Id that is the target of the assignment.")] String groupId; + [Write, Description("The group Display Name that is the target of the assignment.")] String groupDisplayName; + [Write, Description("The collection Id that is the target of the assignment.(ConfigMgr)")] String collectionId; +}; + +[ClassVersion("1.0.0.0"), FriendlyName("IntuneEndpointDetectionAndResponsePolicyMacOS")] +class MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS : OMI_BaseResource +{ + [Key, Description("Policy name")] String DisplayName; + [Write, Description("Policy description")] String Description; + [Write, Description("List of Scope Tags for this Entity instance.")] String RoleScopeTagIds[]; + [Write, Description("The unique identifier for an entity. Read-only.")] String Id; + [Write, Description("Value of tag")] String tags_item_value; + [Write, Description("Type of tag (0: GROUP)"), ValueMap{"0"}, Values{"0"}] String tags_item_key; + [Write, Description("Represents the assignment to the Intune policy."), EmbeddedInstance("MSFT_DeviceManagementConfigurationPolicyAssignments")] String Assignments[]; + [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; + [Write, Description("Credentials of the Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Secret of the Azure Active Directory tenant used for authentication."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity; + [Write, Description("Access token used for authentication.")] String AccessTokens[]; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/readme.md new file mode 100644 index 0000000000..413a87b016 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/readme.md @@ -0,0 +1,6 @@ + +# IntuneEndpointDetectionAndResponsePolicyMacOS + +## Description + +Intune Endpoint Detection And Response Policy MacOS diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/settings.json new file mode 100644 index 0000000000..e948d6df87 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS/settings.json @@ -0,0 +1,32 @@ +{ + "resourceName":"IntuneEndpointDetectionAndResponsePolicyMacOS", + "description":"This resource configures an Intune Endpoint Detection And Response Policy MacOS.", + "permissions":{ + "graph":{ + "delegated":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + }, + "application":{ + "read":[ + { + "name":"DeviceManagementConfiguration.Read.All" + } + ], + "update":[ + { + "name":"DeviceManagementConfiguration.ReadWrite.All" + } + ] + } + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/1-Create.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/1-Create.ps1 new file mode 100644 index 0000000000..821f2e2596 --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/1-Create.ps1 @@ -0,0 +1,39 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My revised description' + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/2-Update.ps1 new file mode 100644 index 0000000000..d522f0b5d2 --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/2-Update.ps1 @@ -0,0 +1,38 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My updated description' # Updated Property + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} diff --git a/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/3-Remove.ps1 b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/3-Remove.ps1 new file mode 100644 index 0000000000..d5be42ddbe --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/IntuneEndpointDetectionAndResponsePolicyMacOS/3-Remove.ps1 @@ -0,0 +1,34 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyMacOS.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyMacOS.Tests.ps1 new file mode 100644 index 0000000000..344ee94756 --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.IntuneEndpointDetectionAndResponsePolicyMacOS.Tests.ps1 @@ -0,0 +1,368 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource "IntuneEndpointDetectionAndResponsePolicyMacOS" -GenericStubModule $GenericStubPath +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + BeforeAll { + + $secpasswd = ConvertTo-SecureString (New-Guid | Out-String) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + Mock -CommandName Confirm-M365DSCDependencies -MockWith { + } + + Mock -CommandName Get-PSSession -MockWith { + } + + Mock -CommandName Remove-PSSession -MockWith { + } + + Mock -CommandName Update-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName New-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + } + } + + Mock -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -MockWith { + } + + Mock -CommandName Get-IntuneSettingCatalogPolicySetting -MockWith { + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'com.apple.managedclient.preferences_tags' + Name = 'tags' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingGroupCollectionDefinition' + } + }, + @{ + Id = 'com.apple.managedclient.preferences_tags_item_value' + Name = 'tags_item_value' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'com.apple.managedclient.preferences_tags_item_key' + Name = 'tags_item_key' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'com.apple.managedclient.preferences_tags' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'd0eb0a92-3807-4d9d-8432-6edd1aa108ce' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' + groupSettingCollectionValue = @( + @{ + settingValueTemplateReference = $null + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstance' + children = @() + value = 'com.apple.managedclient.preferences_tags_item_key_0' + } + settingDefinitionId = 'com.apple.managedclient.preferences_tags_item_key' + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'tag' + } + settingDefinitionId = 'com.apple.managedclient.preferences_tags_item_value' + } + ) + } + ) + } + } + } + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return @{ + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + Description = 'My Test Description' + Name = 'My Test' + TemplateReference = @{ + TemplateId = 'a6ff37f6-c841-4264-9249-1ecf793d94ef_1' + TemplateFamily = 'endpointSecurityEndpointDetectionAndResponse' + } + RoleScopeTagIds = @("FakeStringValue") + } + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return "Credentials" + } + + Mock -CommandName Update-IntuneDeviceConfigurationPolicy -MockWith { + } + + Mock -CommandName Update-DeviceConfigurationPolicyAssignment -MockWith { + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicyAssignment -MockWith { + return @(@{ + Id = '12345-12345-12345-12345-12345' + Source = 'direct' + SourceId = '12345-12345-12345-12345-12345' + Target = @{ + DeviceAndAppManagementAssignmentFilterId = '12345-12345-12345-12345-12345' + DeviceAndAppManagementAssignmentFilterType = 'none' + AdditionalProperties = @( + @{ + '@odata.type' = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } + ) + } + }) + } + + } + # Test contexts + Context -Name "The IntuneEndpointDetectionAndResponsePolicyMacOS should exist but it DOES NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = "Present" + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicy -MockWith { + return $null + } + } + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Absent' + } + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + It 'Should Create the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName New-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 + } + } + + Context -Name "The IntuneEndpointDetectionAndResponsePolicyMacOS exists but it SHOULD NOT" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Absent' + Credential = $Credential; + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should Remove the group from the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Remove-MgBetaDeviceManagementConfigurationPolicy -Exactly 1 + } + } + Context -Name "The IntuneEndpointDetectionAndResponsePolicyMacOS Exists and Values are already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Present' + Credential = $Credential; + } + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + } + + Context -Name "The IntuneEndpointDetectionAndResponsePolicyMacOS exists and values are NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + Assignments = [CimInstance[]]@( + (New-CimInstance -ClassName MSFT_DeviceManagementConfigurationPolicyAssignments -Property @{ + DataType = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = '26d60dd1-fab6-47bf-8656-358194c1a49d' + } -ClientOnly) + ) + Description = 'My Test Description' + Id = '619bd4a4-3b3b-4441-bd6f-3f4c0c444870' + DisplayName = 'My Test' + tags_item_key = '0' + tags_item_value = 'tag' + RoleScopeTagIds = @("FakeStringValue") + Ensure = 'Present' + Credential = $Credential; + } + + Mock -CommandName Get-MgBetaDeviceManagementConfigurationPolicySetting -MockWith { + return @{ + Id = 0 + SettingDefinitions = @( + @{ + Id = 'com.apple.managedclient.preferences_tags' + Name = 'tags' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingGroupCollectionDefinition' + } + }, + @{ + Id = 'com.apple.managedclient.preferences_tags_item_value' + Name = 'tags_item_value' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + }, + @{ + Id = 'com.apple.managedclient.preferences_tags_item_key' + Name = 'tags_item_key' + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingDefinition' + } + } + ) + SettingInstance = @{ + SettingDefinitionId = 'com.apple.managedclient.preferences_tags' + SettingInstanceTemplateReference = @{ + SettingInstanceTemplateId = 'd0eb0a92-3807-4d9d-8432-6edd1aa108ce' + } + AdditionalProperties = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' + groupSettingCollectionValue = @( + @{ + settingValueTemplateReference = $null + children = @( + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + choiceSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstance' + children = @() + value = 'com.apple.managedclient.preferences_tags_item_key_0' + } + settingDefinitionId = 'com.apple.managedclient.preferences_tags_item_key' + }, + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' + simpleSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue' + value = 'tag1234' #drift + } + settingDefinitionId = 'com.apple.managedclient.preferences_tags_item_value' + } + ) + } + ) + } + } + } + } + } + + It 'Should return Values from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + + It 'Should return false from the Test method' { + Test-TargetResource @testParams | Should -Be $false + } + + It 'Should call the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Update-IntuneDeviceConfigurationPolicy -Exactly 1 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + } + + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope From edd3da8d5f50d2e3d404cffd10b591571eb36d2c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 24 Jul 2024 19:04:46 +0000 Subject: [PATCH 237/273] Updated Resources and Cmdlet documentation pages --- ...EndpointDetectionAndResponsePolicyLinux.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyLinux.md diff --git a/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyLinux.md b/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyLinux.md new file mode 100644 index 0000000000..dcce4db30c --- /dev/null +++ b/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyLinux.md @@ -0,0 +1,188 @@ +# IntuneEndpointDetectionAndResponsePolicyLinux + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **DisplayName** | Key | String | Policy name | | +| **Description** | Write | String | Policy description | | +| **RoleScopeTagIds** | Write | StringArray[] | List of Scope Tags for this Entity instance. | | +| **Id** | Write | String | The unique identifier for an entity. Read-only. | | +| **tags_item_value** | Write | String | Value of tag | | +| **tags_item_key** | Write | String | Type of tag (0: GROUP) | `0` | +| **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | 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) | | + + +## Description + +Intune Endpoint Detection And Response Policy Linux + +## Permissions + +### Microsoft Graph + +To authenticate with the Microsoft Graph API, this resource required the following permissions: + +#### Delegated permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +#### Application permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My revised description' + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + + } + } +} +``` + +### Example 2 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My updated description' # Updated Property + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} +``` + +### Example 3 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} +``` + From 587cb28d90b58fd768c038c0d671634eccc18c58 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 24 Jul 2024 19:07:25 +0000 Subject: [PATCH 238/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 5c9de6a8f1..106819cbc7 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -30149,6 +30149,86 @@ } ] }, + { + "ClassName": "MSFT_IntuneEndpointDetectionAndResponsePolicyLinux", + "Parameters": [ + { + "CIMType": "String", + "Name": "DisplayName", + "Option": "Key" + }, + { + "CIMType": "String", + "Name": "Description", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "RoleScopeTagIds", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Id", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "tags_item_value", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "tags_item_key", + "Option": "Write" + }, + { + "CIMType": "MSFT_DeviceManagementConfigurationPolicyAssignments[]", + "Name": "Assignments", + "Option": "Write" + }, + { + "CIMType": "string", + "Name": "Ensure", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "ManagedIdentity", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AccessTokens", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10", "Parameters": [ From d6360d0780f33d39a9f0f3855979a0e5fad14d98 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 24 Jul 2024 19:08:41 +0000 Subject: [PATCH 239/273] Updated {Create} Intune Integration Tests --- .../M365DSCIntegration.INTUNE.Create.Tests.ps1 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index 1254e45f14..4bfd06a00c 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -2209,6 +2209,19 @@ TenantId = $TenantId; CertificateThumbprint = $CertificateThumbprint; } + IntuneEndpointDetectionAndResponsePolicyLinux 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My revised description' + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + + } IntuneEndpointDetectionAndResponsePolicyWindows10 'myEDRPolicy' { DisplayName = 'Edr Policy' From d0f29d8969f104814b0b947de542587b5bf19e84 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 24 Jul 2024 19:26:46 +0000 Subject: [PATCH 240/273] Updated Resources and Cmdlet documentation pages --- ...EndpointDetectionAndResponsePolicyMacOS.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyMacOS.md diff --git a/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyMacOS.md b/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyMacOS.md new file mode 100644 index 0000000000..d7f9f57a4b --- /dev/null +++ b/docs/docs/resources/intune/IntuneEndpointDetectionAndResponsePolicyMacOS.md @@ -0,0 +1,188 @@ +# IntuneEndpointDetectionAndResponsePolicyMacOS + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **DisplayName** | Key | String | Policy name | | +| **Description** | Write | String | Policy description | | +| **RoleScopeTagIds** | Write | StringArray[] | List of Scope Tags for this Entity instance. | | +| **Id** | Write | String | The unique identifier for an entity. Read-only. | | +| **tags_item_value** | Write | String | Value of tag | | +| **tags_item_key** | Write | String | Type of tag (0: GROUP) | `0` | +| **Assignments** | Write | MSFT_DeviceManagementConfigurationPolicyAssignments[] | 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) | | + + +## Description + +Intune Endpoint Detection And Response Policy MacOS + +## Permissions + +### Microsoft Graph + +To authenticate with the Microsoft Graph API, this resource required the following permissions: + +#### Delegated permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +#### Application permissions + +- **Read** + + - DeviceManagementConfiguration.Read.All + +- **Update** + + - DeviceManagementConfiguration.ReadWrite.All + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My revised description' + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + + } + } +} +``` + +### Example 2 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My updated description' # Updated Property + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} +``` + +### Example 3 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + Ensure = 'Absent' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } + } +} +``` + From d27aff03af3ae331fc51dd7dec8003ea4a2e9e8a Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 24 Jul 2024 15:27:14 -0400 Subject: [PATCH 241/273] Release 1.24.724.1 --- CHANGELOG.md | 8 ++-- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 49 +++++++------------- 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5be0d9faed..39b9e762df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.724.1 * IntuneAntivirusPolicyWindows10SettingCatalog * Migrate to new settings catalog cmdlets. @@ -12,9 +12,9 @@ * IntuneEndointDetectionAndResponsePolicyMacOS * Initial release. * IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 - * Introduces new properties and updates the handling of the - start and end dates. - FIXES [#4614](https://github.com/microsoft/Microsoft365DSC/issues/4614) + * Introduces new properties and updates the handling of the + start and end dates. + FIXES [#4614](https://github.com/microsoft/Microsoft365DSC/issues/4614) FIXES [#3438](https://github.com/microsoft/Microsoft365DSC/issues/3438) * M365DSCDRGUtil * Fixes an issue where only 25 settings catalog templates were fetched with one call. diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index ef6275d857..b3072f2289 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-07-17 +# Generated on: 2024-07-24 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.717.1' + ModuleVersion = '1.24.724.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,37 +142,24 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* EXOHostedOutboundSpamFilterPolicy - * Changed the RecipientLimitInternalPerHour, RecipientLimitPerDay, and - RecipientLimitExternalPerHour parameters to UInt32. -* EXOMessageClassification - * Fix issue while creating policy for first time - FIXES [#4877](https://github.com/microsoft/Microsoft365DSC/issues/4877) -* IntuneDeviceConfigurationEmailProfilePolicyWindows10 - * Fix export by fixing some typos and from where values are extracted - FIXES [#3960](https://github.com/microsoft/Microsoft365DSC/issues/3960) -* IntuneDiskEncryptionWindows10 - * Initial Release - FIXES [#4050](https://github.com/microsoft/Microsoft365DSC/issues/4050) -* IntuneWindowsUpdateForBusinessQualityUpdateProfileWindows10 + ReleaseNotes = '* IntuneAntivirusPolicyWindows10SettingCatalog + * Migrate to new settings catalog cmdlets. +* IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager + * Migrate to new settings catalog cmdlets. + FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) +* IntuneEndpointDetectionAndResponsePolicyLinux * Initial release. - FIXES [#2659](https://github.com/microsoft/Microsoft365DSC/issues/2659) -* SPOSharingSettings - * Improved performance by using -Filter on Get-PnPTenantSite calls. +* IntuneEndointDetectionAndResponsePolicyMacOS + * Initial release. +* IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 + * Introduces new properties and updates the handling of the + start and end dates. + FIXES [#4614](https://github.com/microsoft/Microsoft365DSC/issues/4614) + FIXES [#3438](https://github.com/microsoft/Microsoft365DSC/issues/3438) * M365DSCDRGUtil - * Fixes an issue with nested and duplicate settings in the settings catalog - * Add support for converting Intune assignments directly from Graph. - FIXES [#4875](https://github.com/microsoft/Microsoft365DSC/issues/4875) -* M365DSCResourceGenerator - * Update Intune resource generation. -* M365DSCReport - * Changes behaviour to not throw on empty configuration during report generation. - FIXES [#4559](https://github.com/microsoft/Microsoft365DSC/issues/4559) - FIXES [#4505](https://github.com/microsoft/Microsoft365DSC/issues/4505) - * Fixes an issue where the comparison treats empty arrays as an empty string. - FIXES [#4796](https://github.com/microsoft/Microsoft365DSC/issues/4796) -* Telemetry - * Added info about operation total execution time.' + * Fixes an issue where only 25 settings catalog templates were fetched with one call. +* SPOSharingSettings + * Changed approach to MySite filtering.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From 71ca876dae11efad835f8a844ffb930670e96a8c Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 24 Jul 2024 19:28:57 +0000 Subject: [PATCH 242/273] Updated {Create} Intune Integration Tests --- .../M365DSCIntegration.INTUNE.Create.Tests.ps1 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 index 4bfd06a00c..375dd122e6 100644 --- a/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 +++ b/Tests/Integration/Microsoft365DSC/M365DSCIntegration.INTUNE.Create.Tests.ps1 @@ -2221,6 +2221,19 @@ TenantId = $TenantId; CertificateThumbprint = $CertificateThumbprint; + } + IntuneEndpointDetectionAndResponsePolicyMacOS 'myEDRPolicy' + { + DisplayName = 'Edr Policy' + tags_item_key = '0' + tags_item_value = 'tag' + Assignments = @() + Description = 'My revised description' + Ensure = 'Present' + ApplicationId = $ApplicationId; + TenantId = $TenantId; + CertificateThumbprint = $CertificateThumbprint; + } IntuneEndpointDetectionAndResponsePolicyWindows10 'myEDRPolicy' { From e79657a96305cc1592bcaa40133d80c5a35007f5 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 24 Jul 2024 19:45:41 +0000 Subject: [PATCH 243/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 106819cbc7..25293aadb8 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -30229,6 +30229,86 @@ } ] }, + { + "ClassName": "MSFT_IntuneEndpointDetectionAndResponsePolicyMacOS", + "Parameters": [ + { + "CIMType": "String", + "Name": "DisplayName", + "Option": "Key" + }, + { + "CIMType": "String", + "Name": "Description", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "RoleScopeTagIds", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "Id", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "tags_item_value", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "tags_item_key", + "Option": "Write" + }, + { + "CIMType": "MSFT_DeviceManagementConfigurationPolicyAssignments[]", + "Name": "Assignments", + "Option": "Write" + }, + { + "CIMType": "string", + "Name": "Ensure", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "ApplicationSecret", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "ManagedIdentity", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AccessTokens", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10", "Parameters": [ From 13159d40c2c9ade2a6131458452827600bdd74f9 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 25 Jul 2024 15:50:48 +0200 Subject: [PATCH 244/273] Fix Intune Antivirus policy creation --- CHANGELOG.md | 6 ++++++ .../MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39b9e762df..9d0692c189 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* IntuneAntivirusPolicyWindows10SettingCatalog + * Fixes an issue where the template reference is not set correctly. + FIXES [#4925](https://github.com/microsoft/Microsoft365DSC/issues/4925) + # 1.24.724.1 * IntuneAntivirusPolicyWindows10SettingCatalog diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 index ee7e18ef29..ee80cfb92b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 @@ -409,7 +409,7 @@ function Get-TargetResource $AccessTokens ) - try + try { Write-Verbose -Message "Checking for the Intune Endpoint Protection Policy {$DisplayName}" @@ -955,7 +955,7 @@ function Set-TargetResource $createParameters = @{ Name = $DisplayName Description = $Description - TemplateReferenceId = @{ templateId = $templateReferenceId } + TemplateReference = @{ templateId = $templateReferenceId } Platforms = $platforms Technologies = $technologies Settings = $settings From b3f6b7f5ff196d578ba28a15f23ed50ef984aeae Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 25 Jul 2024 19:47:04 +0200 Subject: [PATCH 245/273] Fix AADGroup delta report --- CHANGELOG.md | 6 ++++++ Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39b9e762df..5872dd8b2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCReport + * Update key properties for delta report in `AADGroup` resource. + FIXES [#4921](https://github.com/microsoft/Microsoft365DSC/issues/4921) + # 1.24.724.1 * IntuneAntivirusPolicyWindows10SettingCatalog diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 index f732ea0367..bf7ce34d56 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 @@ -1243,6 +1243,10 @@ function Get-M365DSCResourceKey { return @('Id') } + if ($Resource.ResourceName -eq 'AADGroup' -and -not [System.String]::IsNullOrEmpty($Resource.MailNickname)) + { + return ('DisplayName', 'MailNickname') + } if ($Resource.ResourceName -eq 'IntuneDeviceEnrollmentPlatformRestriction' -and $Resource.Keys.Where({ $_ -like "*Restriction"})) { return @('ResourceInstanceName') From 1faddc8942c2bc78e2378458982455c47552cf4c Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Thu, 25 Jul 2024 20:28:04 +0200 Subject: [PATCH 246/273] Add missing class version in AAD Fido2 Schema --- CHANGELOG.md | 9 ++++++++- .../MSFT_AADAuthenticationMethodPolicyFido2.schema.mof | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39b9e762df..c9b572ced1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* AADAuthenticationMethodPolicyFido2 + * Add missing class identifier to schema. + FIXES [#4900](https://github.com/microsoft/Microsoft365DSC/issues/4900) + FIXES [#4079](https://github.com/microsoft/Microsoft365DSC/issues/4079) + # 1.24.724.1 * IntuneAntivirusPolicyWindows10SettingCatalog @@ -9,7 +16,7 @@ FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) * IntuneEndpointDetectionAndResponsePolicyLinux * Initial release. -* IntuneEndointDetectionAndResponsePolicyMacOS +* IntuneEndpointDetectionAndResponsePolicyMacOS * Initial release. * IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 * Introduces new properties and updates the handling of the diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.schema.mof index 1268c52809..cc7981cfa8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.schema.mof @@ -11,7 +11,7 @@ class MSFT_AADAuthenticationMethodPolicyFido2ExcludeTarget [Write, Description("The object identifier of an Azure AD group.")] String Id; [Write, Description("The type of the authentication method target. Possible values are: group and unknownFutureValue."), ValueMap{"user","group","unknownFutureValue"}, Values{"user","group","unknownFutureValue"}] String TargetType; }; - +[ClassVersion("1.0.0")] class MSFT_AADAuthenticationMethodPolicyFido2IncludeTarget { [Write, Description("The object identifier of an Azure AD group.")] String Id; From b8b42276f9d57a12c26b9659abed04e7819ad9a2 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Sat, 27 Jul 2024 10:21:44 +0100 Subject: [PATCH 247/273] Fix export of property NetworkUsageRules --- CHANGELOG.md | 3 +++ ...FT_IntuneDeviceConfigurationPolicyiOS.psm1 | 20 ++++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3b18c58a0..7c075ec82a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ * IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager * Migrate to new settings catalog cmdlets. FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) +* IntuneDeviceConfigurationPolicyiOS + * Fix export of property NetworkUsageRules + FIXES [#4934](https://github.com/microsoft/Microsoft365DSC/issues/4934) * SPOSharingSettings * Changed approach to MySite filtering. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 index 00f961324e..94a8cd8246 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 @@ -1048,7 +1048,7 @@ function Get-TargetResource $complexAppsSingleAppModeList = @() $currentValueArray = $getValue.AdditionalProperties.appsSingleAppModeList - if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0 ) + if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0) { foreach($currentValue in $currentValueArray) { @@ -1065,7 +1065,7 @@ function Get-TargetResource $complexAppsVisibilityList= @() $currentValueArray = $getValue.AdditionalProperties.appsVisibilityList - if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0 ) + if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0) { foreach($currentValue in $currentValueArray) { @@ -1082,7 +1082,7 @@ function Get-TargetResource $complexCompliantAppsList = @() $currentValueArray = $getValue.AdditionalProperties.compliantAppsList - if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0 ) + if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0) { foreach($currentValue in $currentValueArray) { @@ -1130,7 +1130,7 @@ function Get-TargetResource $complexNetworkUsageRules = @() $currentValueArray = $getValue.AdditionalProperties.networkUsageRules - if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0 ) + if ($null -ne $currentValueArray -and $currentValueArray.count -gt 0) { foreach($currentValue in $currentValueArray) { @@ -1139,7 +1139,7 @@ function Get-TargetResource $currentValueHash.Add('CellularDataBlockWhenRoaming',$currentValue.cellularDataBlockWhenRoaming) $complexManagedApps = @() $currentValueChildArray = $currentValue.managedApps - if ($null -ne $currentValueChildArray -and $currentValueChildArray.count -gt 0 ) + if ($null -ne $currentValueChildArray -and $currentValueChildArray.count -gt 0) { foreach($currentChildValue in $currentValueChildArray) { @@ -3332,6 +3332,16 @@ function Export-TargetResource $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'MediaContentRatingUnitedStates' } + if ($Results.NetworkUsageRules) + { + $isCIMArray = $false + if ($Results.NetworkUsageRules.getType().Fullname -like '*[[\]]') + { + $isCIMArray = $true + } + $currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'NetworkUsageRules' -IsCIMArray:$isCIMArray + } + if ($Results.Assignments) { $isCIMArray = $false From 8021eab1427d037cd90dcc82241ffc0a30f23674 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Sat, 27 Jul 2024 11:13:18 +0100 Subject: [PATCH 248/273] Filter policies by specific type --- ...eviceConfigurationEndpointProtectionPolicyWindows10.psm1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 index e5de24d3f4..98b6673e2e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 @@ -1057,7 +1057,11 @@ function Get-TargetResource { $getValue = Get-MgBetaDeviceManagementDeviceConfiguration ` -Filter "DisplayName eq '$DisplayName'" ` - -ErrorAction SilentlyContinue + -ErrorAction SilentlyContinue | Where-Object ` + -FilterScript { + $_.AdditionalProperties.'@odata.type' -eq '#microsoft.graph.windows10EndpointProtectionConfiguration' + } + if ($null -eq $getValue) { Write-Verbose -Message "Could not find an Intune Device Configuration Endpoint Protection Policy for Windows10 with DisplayName {$DisplayName}" From 56bb8e8acc37aea6cb46cce9b9f3599ca59df5b7 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Sat, 27 Jul 2024 11:16:51 +0100 Subject: [PATCH 249/273] Fix compile --- CHANGELOG.md | 4 ++++ ...eConfigurationEndpointProtectionPolicyWindows10.schema.mof | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51e43a41f2..d6f9e1c7f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ * IntuneAntivirusPolicyWindows10SettingCatalog * Fixes an issue where the template reference is not set correctly. FIXES [#4925](https://github.com/microsoft/Microsoft365DSC/issues/4925) +* IntuneDeviceConfigurationEndpointProtectionPolicyWindows10 + * Fix compiling if `ProfileTypes` (in `FirewallRules`) is present and contains + more than one value + FIXES [#4936](https://github.com/microsoft/Microsoft365DSC/issues/4936) * MISC * M365DSCReport * Update key properties for delta report in `AADGroup` resource. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.schema.mof index 333b1f5bf0..e08f522c23 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.schema.mof @@ -97,7 +97,7 @@ class MSFT_MicrosoftGraphWindowsFirewallRule [Write, Description("List of local port ranges. For example, '100-120', '200', '300-320'. If not specified, the default is All.")] String LocalPortRanges[]; [Write, Description("Specifies the list of authorized local users for the app container. This is a string in Security Descriptor Definition Language (SDDL) format.")] String LocalUserAuthorizations; [Write, Description("The package family name of a Microsoft Store application that's affected by the firewall rule.")] String PackageFamilyName; - [Write, Description("Specifies the profiles to which the rule belongs. If not specified, the default is All. Possible values are: notConfigured, domain, private, public."), ValueMap{"notConfigured","domain","private","public"}, Values{"notConfigured","domain","private","public"}] String ProfileTypes; + [Write, Description("Specifies the profiles to which the rule belongs. If not specified, the default is All. Possible values are: notConfigured, domain, private, public.")] String ProfileTypes; [Write, Description("0-255 number representing the IP protocol (TCP = 6, UDP = 17). If not specified, the default is All. Valid values 0 to 255")] UInt32 Protocol; [Write, Description("List of tokens specifying the remote addresses covered by the rule. Tokens are case insensitive. Default is any address. Valid tokens include:'' indicates any remote address. If present, this must be the only token included.'Defaultgateway''DHCP''DNS''WINS''Intranet' (supported on Windows versions 1809+)'RmtIntranet' (supported on Windows versions 1809+)'Internet' (supported on Windows versions 1809+)'Ply2Renders' (supported on Windows versions 1809+)'LocalSubnet' indicates any local address on the local subnet.A subnet can be specified using either the subnet mask or network prefix notation. If neither a subnet mask nor a network prefix is specified, the subnet mask defaults to 255.255.255.255.A valid IPv6 address.An IPv4 address range in the format of 'start address - end address' with no spaces included.An IPv6 address range in the format of 'start address - end address' with no spaces included.")] String RemoteAddressRanges[]; [Write, Description("List of remote port ranges. For example, '100-120', '200', '300-320'. If not specified, the default is All.")] String RemotePortRanges[]; From 9636a90d69e71e4cd46e04a00ff3456f951066c3 Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Mon, 29 Jul 2024 16:39:01 +0200 Subject: [PATCH 250/273] Update PowerShell 7 support documentation --- docs/docs/user-guide/get-started/powershell7-support.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/user-guide/get-started/powershell7-support.md b/docs/docs/user-guide/get-started/powershell7-support.md index aee26a3774..b12e6f1041 100644 --- a/docs/docs/user-guide/get-started/powershell7-support.md +++ b/docs/docs/user-guide/get-started/powershell7-support.md @@ -43,8 +43,8 @@ Connect-PnPOnline: Could not load file or assembly 'System.IdentityModel.Tokens. # PSDesiredStateConfiguration needs to be installed separately -Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now needs to be installed separately. In a PowerShell 7+ console, you can install the module by running the command: +Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now needs to be installed separately. In an administrative PowerShell 7+ console, you can install the module by running the command: ```powershell -Install-Module PSDesiredStateConfiguration -RequiredVersion 2.0.7 -Force +Update-M365DSCDependencies -Scope AllUsers ``` From 17ca47024909356ca7b5fe9912ba6e64d06881ce Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 29 Jul 2024 14:47:46 +0000 Subject: [PATCH 251/273] Updated Resources and Cmdlet documentation pages --- ...ntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md index 86f72ab269..46db453044 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.md @@ -367,7 +367,7 @@ | **LocalPortRanges** | Write | StringArray[] | List of local port ranges. For example, '100-120', '200', '300-320'. If not specified, the default is All. | | | **LocalUserAuthorizations** | Write | String | Specifies the list of authorized local users for the app container. This is a string in Security Descriptor Definition Language (SDDL) format. | | | **PackageFamilyName** | Write | String | The package family name of a Microsoft Store application that's affected by the firewall rule. | | -| **ProfileTypes** | Write | String | Specifies the profiles to which the rule belongs. If not specified, the default is All. Possible values are: notConfigured, domain, private, public. | `notConfigured`, `domain`, `private`, `public` | +| **ProfileTypes** | Write | String | Specifies the profiles to which the rule belongs. If not specified, the default is All. Possible values are: notConfigured, domain, private, public. | | | **Protocol** | Write | UInt32 | 0-255 number representing the IP protocol (TCP = 6, UDP = 17). If not specified, the default is All. Valid values 0 to 255 | | | **RemoteAddressRanges** | Write | StringArray[] | List of tokens specifying the remote addresses covered by the rule. Tokens are case insensitive. Default is any address. Valid tokens include:'' indicates any remote address. If present, this must be the only token included.'Defaultgateway''DHCP''DNS''WINS''Intranet' (supported on Windows versions 1809+)'RmtIntranet' (supported on Windows versions 1809+)'Internet' (supported on Windows versions 1809+)'Ply2Renders' (supported on Windows versions 1809+)'LocalSubnet' indicates any local address on the local subnet.A subnet can be specified using either the subnet mask or network prefix notation. If neither a subnet mask nor a network prefix is specified, the subnet mask defaults to 255.255.255.255.A valid IPv6 address.An IPv4 address range in the format of 'start address - end address' with no spaces included.An IPv6 address range in the format of 'start address - end address' with no spaces included. | | | **RemotePortRanges** | Write | StringArray[] | List of remote port ranges. For example, '100-120', '200', '300-320'. If not specified, the default is All. | | From b168f7ea97ab04d74690a2bc0fd88a14493f0009 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 29 Jul 2024 16:12:49 -0400 Subject: [PATCH 252/273] Updated DSCParser to version 2.0.0.8 --- CHANGELOG.md | 2 ++ Modules/Microsoft365DSC/Dependencies/Manifest.psd1 | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39b9e762df..68351cff4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ * Fixes an issue where only 25 settings catalog templates were fetched with one call. * SPOSharingSettings * Changed approach to MySite filtering. +* DEPENDENCIES + * Updated DSCParser to version 2.0.0.8. # 1.24.717.1 diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index 9cb6e8da66..ffb61d0613 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -2,7 +2,7 @@ Dependencies = @( @{ ModuleName = 'DSCParser' - RequiredVersion = '2.0.0.7' + RequiredVersion = '2.0.0.8' }, @{ ModuleName = 'ExchangeOnlineManagement' From 3ed50a58d5cf98eae44dae75ce8936480b7e282e Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 1 Aug 2024 11:07:38 -0400 Subject: [PATCH 253/273] Release 1.24.731.1 --- CHANGELOG.md | 2 +- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 42 ++++++++++---------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3de83e2c5f..e4ecca8543 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.731.1 * AADAuthenticationMethodPolicyFido2 * Add missing class identifier to schema. diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index b3072f2289..3cb2e86263 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-07-24 +# Generated on: 2024-08-01 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.724.1' + ModuleVersion = '1.24.731.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,24 +142,26 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* IntuneAntivirusPolicyWindows10SettingCatalog - * Migrate to new settings catalog cmdlets. -* IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager - * Migrate to new settings catalog cmdlets. - FIXES [#3966](https://github.com/microsoft/Microsoft365DSC/issues/3966) -* IntuneEndpointDetectionAndResponsePolicyLinux - * Initial release. -* IntuneEndointDetectionAndResponsePolicyMacOS - * Initial release. -* IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10 - * Introduces new properties and updates the handling of the - start and end dates. - FIXES [#4614](https://github.com/microsoft/Microsoft365DSC/issues/4614) - FIXES [#3438](https://github.com/microsoft/Microsoft365DSC/issues/3438) -* M365DSCDRGUtil - * Fixes an issue where only 25 settings catalog templates were fetched with one call. -* SPOSharingSettings - * Changed approach to MySite filtering.' + ReleaseNotes = '* AADAuthenticationMethodPolicyFido2 + * Add missing class identifier to schema. + FIXES [#4900](https://github.com/microsoft/Microsoft365DSC/issues/4900) + FIXES [#4079](https://github.com/microsoft/Microsoft365DSC/issues/4079) +* IntuneAntivirusPolicyWindows10SettingCatalog + * Fixes an issue where the template reference is not set correctly. + FIXES [#4925](https://github.com/microsoft/Microsoft365DSC/issues/4925) +* IntuneDeviceConfigurationEndpointProtectionPolicyWindows10 + * Fix compiling if `ProfileTypes` (in `FirewallRules`) is present and contains + more than one value + FIXES [#4936](https://github.com/microsoft/Microsoft365DSC/issues/4936) +* IntuneDeviceConfigurationPolicyiOS + * Fix export of property NetworkUsageRules + FIXES [#4934](https://github.com/microsoft/Microsoft365DSC/issues/4934) +* MISC + * M365DSCReport + * Update key properties for delta report in `AADGroup` resource. + FIXES [#4921](https://github.com/microsoft/Microsoft365DSC/issues/4921) + * Improve PowerShell Core support across the DSC resources. + FIXES [#4911](https://github.com/microsoft/Microsoft365DSC/issues/4911)' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From 4b1f040694cdae78cc51f51e18125268588c1f7f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 1 Aug 2024 12:39:58 -0400 Subject: [PATCH 254/273] Revert "Improve PowerShell 7 support" --- CHANGELOG.md | 3 - .../Dependencies/Manifest.psd1 | 7 -- .../Modules/M365DSCReport.psm1 | 21 +---- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 78 ++----------------- Tests/TestHarness.psm1 | 1 - .../get-started/powershell7-support.md | 6 +- 6 files changed, 11 insertions(+), 105 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4ecca8543..4146d32157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,9 +20,6 @@ * M365DSCReport * Update key properties for delta report in `AADGroup` resource. FIXES [#4921](https://github.com/microsoft/Microsoft365DSC/issues/4921) - * Improve PowerShell Core support across the DSC resources. - FIXES [#4911](https://github.com/microsoft/Microsoft365DSC/issues/4911) - # 1.24.724.1 diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index b92a99656b..ffb61d0613 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -96,13 +96,6 @@ ModuleName = 'PnP.PowerShell' RequiredVersion = '1.12.0' }, - @{ - ModuleName = 'PSDesiredStateConfiguration' - RequiredVersion = '2.0.7' - PowerShellCore = $true - ExplicitLoading = $true - Prefix = 'Pwsh' - }, @{ ModuleName = 'ReverseDSC' RequiredVersion = '2.0.0.20' diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 index 104aa83797..bf7ce34d56 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 @@ -419,21 +419,12 @@ function Get-Base64EncodedImage { $mimeType = "image/jpeg" } - if($icon.Extension.endsWith("png")) { $mimeType = "image/png" } - if ($PSVersionTable.PSEdition -eq 'Core') - { - $base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $IconPath -AsByteStream -ReadCount 0)) - } - else - { - $base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $iconPath -Encoding Byte -ReadCount 0)) - } - + $base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $iconPath -Encoding Byte -ReadCount 0)) return $("data:$($mimeType);base64,$($base64EncodedImage)") } else @@ -745,15 +736,7 @@ function Compare-M365DSCConfigurations [Array]$DestinationObject = $DestinationObject | Where-Object -FilterScript { $_.ResourceName -notin $ExcludedResources } } - $isPowerShellCore = $PSVersionTable.PSEdition -eq 'Core' - if ($isPowerShellCore) - { - $dscResourceInfo = Get-PwshDSCResource -Module 'Microsoft365DSC' - } - else - { - $dscResourceInfo = Get-DSCResource -Module 'Microsoft365DSC' - } + $dscResourceInfo = Get-DSCResource -Module 'Microsoft365DSC' # Loop through all items in the source array $i = 1 foreach ($sourceResource in $SourceObject) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index e76c114761..1411a55cac 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -23,7 +23,6 @@ Internal, Hidden function Format-EXOParams { [CmdletBinding()] - [OutputType([System.Collections.Hashtable])] param ( [Parameter()] @@ -1452,7 +1451,6 @@ function Export-M365DSCConfiguration } $Script:M365DSCDependenciesValidated = $false -$Script:IsPowerShellCore = $PSVersionTable.PSEdition -eq 'Core' <# .Description @@ -1479,7 +1477,7 @@ function Confirm-M365DSCDependencies { $ErrorMessage += ' * ' + $invalidDependency.ModuleName + "`r`n" } - $ErrorMessage += 'Please run Update-M365DSCDependencies as Administrator.' + $ErrorMessage += 'Please run Update-M365DSCDependencies with scope "currentUser" or as Administrator.' $ErrorMessage += 'Please run Uninstall-M365DSCOutdatedDependencies.' $Script:M365DSCDependenciesValidated = $false Add-M365DSCEvent -Message $ErrorMessage -EntryType 'Error' ` @@ -1524,11 +1522,6 @@ function Import-M365DSCDependencies foreach ($dependency in $dependencies) { - if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore) - { - Write-Verbose -Message "Skipping module {$($dependency.ModuleName)} as it is not compatible with Windows PowerShell." - continue - } Import-Module $dependency.ModuleName -RequiredVersion $dependency.RequiredVersion -Force -Global:$Global } } @@ -1587,7 +1580,6 @@ Internal function Get-M365DSCTenantDomain { [CmdletBinding(DefaultParameterSetName = 'AppId')] - [OutputType([System.String])] param ( [Parameter(ParameterSetName = 'AppId', Mandatory = $true)] @@ -3104,11 +3096,6 @@ function Update-M365DSCDependencies { if (-not $Force) { - if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore) - { - Write-Verbose -Message "The dependency {$($dependency.ModuleName)} requires PowerShell Core. Skipping." - continue - } $found = Get-Module $dependency.ModuleName -ListAvailable | Where-Object -FilterScript { $_.Version -eq $dependency.RequiredVersion } } @@ -3125,22 +3112,10 @@ function Update-M365DSCDependencies } catch { - Write-Verbose -Message "Couldn't retrieve Windows Principal. One possible cause is that the current environment is not a Windows OS." + Write-Verbose -Message "Couldn't retrieve Windows Principal. One possible cause is that the current environment is not Windows OS." } if (-not $errorFound) { - if ($null -eq $dependency.PowerShellCore -and $Script:IsPowerShellCore) - { - Write-Warning "The dependency {$($dependency.ModuleName)} does not support PowerShell Core. Please install it in Windows PowerShell." - continue - } - - if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore) - { - Write-Warning "The dependency {$($dependency.ModuleName)} requires PowerShell Core. Please install it in PowerShell Core." - continue - } - Write-Information -MessageData "Installing $($dependency.ModuleName) version {$($dependency.RequiredVersion)}" Remove-Module $dependency.ModuleName -Force -ErrorAction SilentlyContinue if ($dependency.ModuleName -like 'Microsoft.Graph*') @@ -3152,19 +3127,6 @@ function Update-M365DSCDependencies } } - if ($dependency.ExplicitLoading) - { - Remove-Module $dependency.ModuleName -Force -ErrorAction SilentlyContinue - if ($dependency.Prefix) - { - Import-Module $dependency.ModuleName -Global -Prefix $dependency.Prefix -Force - } - else - { - Import-Module $dependency.ModuleName -Global -Force - } - } - if (-not $found -and $validateOnly) { $returnValue += $dependency @@ -3621,14 +3583,7 @@ function Get-M365DSCExportContentForResource { if ($Script:AllM365DscResources.Count -eq 0) { - if ($Script:IsPowerShellCore) - { - $Script:AllM365DscResources = Get-PwshDscResource -Module 'Microsoft365Dsc' - } - else - { - $Script:AllM365DscResources = Get-DscResource -Module 'Microsoft365Dsc' - } + $Script:AllM365DscResources = Get-DscResource -Module 'Microsoft365Dsc' } $Resource = $Script:AllM365DscResources.Where({ $_.Name -eq $ResourceName }) @@ -4373,14 +4328,7 @@ function Create-M365DSCResourceExample $ResourceName ) - if ($Script:IsPowerShellCore) - { - $resource = Get-PwshDscResource -Name $ResourceName - } - else - { - $resource = Get-DscResource -Name $ResourceName - } + $resource = Get-DscResource -Name $ResourceName $params = Get-DSCFakeParameters -ModulePath $resource.Path @@ -4465,14 +4413,7 @@ function New-M365DSCMissingResourcesExample { $location = $PSScriptRoot - if ($Script:IsPowerShellCore) - { - $m365Resources = Get-PwshDscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name - } - else - { - $m365Resources = Get-DscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name - } + $m365Resources = Get-DscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name $examplesPath = Join-Path $location -ChildPath '..\Examples\Resources' $examples = Get-ChildItem -Path $examplesPath | Where-Object { $_.PsIsContainer } | Select-Object -ExpandProperty Name @@ -4828,14 +4769,7 @@ function Get-M365DSCConfigurationConflict $parsedContent = ConvertTo-DSCObject -Content $ConfigurationContent $resourcesPrimaryIdentities = @() - if ($Script:IsPowerShellCore) - { - $resourcesInModule = Get-PwshDSCResource -Module 'Microsoft365DSC' - } - else - { - $resourcesInModule = Get-DSCResource -Module 'Microsoft365DSC' - } + $resourcesInModule = Get-DSCResource -Module 'Microsoft365DSC' foreach ($component in $parsedContent) { $resourceDefinition = $resourcesInModule | Where-Object -FilterScript {$_.Name -eq $component.ResourceName} diff --git a/Tests/TestHarness.psm1 b/Tests/TestHarness.psm1 index a1ccd89269..ecc798f884 100644 --- a/Tests/TestHarness.psm1 +++ b/Tests/TestHarness.psm1 @@ -38,7 +38,6 @@ function Invoke-TestHarness } Import-Module -Name "$repoDir/Modules/Microsoft365DSC/Microsoft365DSC.psd1" - Import-Module -Name PSDesiredStateConfiguration -Global -Prefix 'Pwsh' -Force $testsToRun = @() # Run Unit Tests diff --git a/docs/docs/user-guide/get-started/powershell7-support.md b/docs/docs/user-guide/get-started/powershell7-support.md index b12e6f1041..cb869406b4 100644 --- a/docs/docs/user-guide/get-started/powershell7-support.md +++ b/docs/docs/user-guide/get-started/powershell7-support.md @@ -41,10 +41,10 @@ that location or use PowerShell 5.1 to install the modules using 'Install-Module Connect-PnPOnline: Could not load file or assembly 'System.IdentityModel.Tokens.Jwt, Version=6.12.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Could not find or load a specific file. (0x80131621) ``` -# PSDesiredStateConfiguration needs to be installed separately +# PSDesiredStateConfiguration Needs to be Installed Separately -Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now needs to be installed separately. In an administrative PowerShell 7+ console, you can install the module by running the command: +Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now need to be installed separately. In a PowerShell 7+ console, you can install the module by running the command: ```powershell -Update-M365DSCDependencies -Scope AllUsers +Install-Module PSDesiredStateConfiguration -Force ``` From e6dc717594f44cc91778f0e4d637e3c06a46fa97 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Fri, 2 Aug 2024 11:15:28 +0100 Subject: [PATCH 255/273] Don't check if associated policy is present while removing resource --- CHANGELOG.md | 6 +++ .../MSFT_EXOHostedContentFilterRule.psm1 | 42 ++++++++++++------- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4146d32157..941971d976 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* EXOHostedContentFilterRule + * Don't check if associated `EXOHostedContentFilterPolicy` is present + while removing resource since it's not required + # 1.24.731.1 * AADAuthenticationMethodPolicyFido2 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 index f8f39c8e1a..2adf454d92 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 @@ -297,26 +297,26 @@ function Set-TargetResource $ConnectionMode = New-M365DSCConnection -Workload 'ExchangeOnline' ` -InboundParameters $PSBoundParameters - # Make sure that the associated Policy exists; - $AssociatedPolicy = Get-HostedContentFilterPolicy -Identity $HostedContentFilterPolicy -ErrorAction 'SilentlyContinue' - if ($null -eq $AssociatedPolicy) - { - throw "Error attempting to create EXOHostedContentFilterRule {$Identity}. The specified HostedContentFilterPolicy " + ` - "{$HostedContentFilterPolicy} doesn't exist. Make sure you either create it first or specify a valid policy." - } - - # Make sure that the associated Policy is not Default; - if ($AssociatedPolicy.IsDefault -eq $true ) - { - throw "Policy $Identity is marked as the default. Creating a rule to apply the default policy is not allowed." - } - $CurrentValues = Get-TargetResource @PSBoundParameters $BoundParameters = ([System.Collections.Hashtable]$PSBoundParameters).Clone() $BoundParameters = Remove-M365DSCAuthenticationParameter -BoundParameters $PSBoundParameters if ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Absent') { + # Make sure that the associated Policy exists; + $AssociatedPolicy = Get-HostedContentFilterPolicy -Identity $HostedContentFilterPolicy -ErrorAction 'SilentlyContinue' + if ($null -eq $AssociatedPolicy) + { + throw "Error attempting to create EXOHostedContentFilterRule {$Identity}. The specified HostedContentFilterPolicy " + ` + "{$HostedContentFilterPolicy} doesn't exist. Make sure you either create it first or specify a valid policy." + } + + # Make sure that the associated Policy is not Default; + if ($AssociatedPolicy.IsDefault -eq $true ) + { + throw "Policy $Identity is marked as the default. Creating a rule to apply the default policy is not allowed." + } + if ($Enabled -and ('Disabled' -eq $CurrentValues.State)) { # New-HostedContentFilterRule has the Enabled parameter, Set-HostedContentFilterRule does not. @@ -332,6 +332,20 @@ function Set-TargetResource } elseif ($Ensure -eq 'Present' -and $CurrentValues.Ensure -eq 'Present') { + # Make sure that the associated Policy exists; + $AssociatedPolicy = Get-HostedContentFilterPolicy -Identity $HostedContentFilterPolicy -ErrorAction 'SilentlyContinue' + if ($null -eq $AssociatedPolicy) + { + throw "Error attempting to create EXOHostedContentFilterRule {$Identity}. The specified HostedContentFilterPolicy " + ` + "{$HostedContentFilterPolicy} doesn't exist. Make sure you either create it first or specify a valid policy." + } + + # Make sure that the associated Policy is not Default; + if ($AssociatedPolicy.IsDefault -eq $true ) + { + throw "Policy $Identity is marked as the default. Creating a rule to apply the default policy is not allowed." + } + $BoundParameters.Remove('Enabled') | Out-Null if ($CurrentValues.HostedContentFilterPolicy -eq $BoundParameters.HostedContentFilterPolicy) { From eaed5ae9aab5674d84cdbebda82a992f779aae8d Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Fri, 2 Aug 2024 21:49:50 +0200 Subject: [PATCH 256/273] Replace some Write-Host with appropriate alternatives --- CHANGELOG.md | 7 ++++ .../Microsoft365DSC/Modules/M365DSCAgent.psm1 | 33 ++++++--------- .../Modules/M365DSCExoResourceUtils.psm1 | 6 +-- .../Modules/M365DSCLogEngine.psm1 | 5 +-- .../Modules/M365DSCPermissions.psm1 | 4 +- .../Modules/M365DSCReport.psm1 | 4 +- .../Modules/M365DSCReverse.psm1 | 16 ++++--- .../Microsoft365DSC/Modules/M365DSCUtil.psm1 | 42 ++++++++----------- .../M365DSCResourceGenerator.psm1 | 7 +--- 9 files changed, 54 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4146d32157..91e08db211 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* MISC + * Replace some `Write-Host` occurrences in core engine with + appropriate alternatives. + FIXES [#4943](https://github.com/microsoft/Microsoft365DSC/issues/4943) + # 1.24.731.1 * AADAuthenticationMethodPolicyFido2 diff --git a/Modules/Microsoft365DSC/Modules/M365DSCAgent.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCAgent.psm1 index 125f753259..8c2274b0e9 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCAgent.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCAgent.psm1 @@ -14,9 +14,6 @@ function Test-M365DSCAgent param( ) - #Ensure the proper dependencies are installed in the current environment. - Confirm-M365DSCDependencies - #region Telemetry $data = [System.Collections.Generic.Dictionary[[String], [String]]]::new() $data.Add('Event', 'TestAgent') @@ -68,21 +65,13 @@ function Test-M365DSCAgent #region Modules Dependencies Write-Progress -Activity 'Scanning Dependencies...' -PercentComplete (3 / $TotalSteps * 100) - $M365DSC = Get-Module Microsoft365DSC - $ManifestPath = Join-Path -Path $M365DSC.ModuleBase -ChildPath 'Microsoft365DSC.psd1' - $manifest = Import-PowerShellDataFile $ManifestPath - $dependencies = $manifest.RequiredModules + $dependencies = Update-M365DSCDependencies -ValidateOnly foreach ($dependency in $dependencies) { - $module = Get-Module $dependency.ModuleName -ListAvailable | ` - Where-Object -FilterScript { $_.Version -eq $dependency.RequiredVersion } - if ($null -eq $module) - { - $Issues += @{ - ID = 'I2' - Message = "M365DSC has a dependency on module $($dependency.ModuleName) which was not found. You need to install " + ` - "this module by running: Install-Module $($dependency.ModuleName) -RequiredVersion $($dependency.RequiredVersion) -Force" - } + $Issues += @{ + ID = 'I2' + Message = "M365DSC has a dependency on module $($dependency.ModuleName) which was not found. You need to install " + ` + "this module by running: Install-Module $($dependency.ModuleName) -RequiredVersion $($dependency.RequiredVersion) -Force" } } #endregion @@ -90,23 +79,25 @@ function Test-M365DSCAgent Write-Progress -Completed -Activity 'Completed Analysis' if ($Issues.Count -gt 0) { - Write-Host "The following issues were detected with the current agent's configuration. Please take " + ` - 'proper action to remediate.' + $errorMessage = "The following issues were detected with the current agent's configuration. Please take " + ` + "proper action to remediate. `r`n" $i = 1 foreach ($issue in $Issues) { - Write-Error -Message " [$i/$($Issues.Count)] $($issue.Message)" + $errorMessage += " [$i/$($Issues.Count)] $($issue.Message)`r`n" } + Write-Error -Message $errorMessage -ErrorAction Continue } if ($Recommendations.Count -gt 0) { - Write-Host 'The following recommendations were issued. We strongly recommend adressing those: ' + $warningMessage = 'The following recommendations were issued. We strongly recommend adressing those: ' $i = 1 foreach ($recommendation in $Recommendations) { - Write-Warning " [$i/$($Recommendations.Count)] $($recommendation.Message)" + $warningMessage += " [$i/$($Recommendations.Count)] $($recommendation.Message)`r`n" } + Write-Warning -Message $warningMessage } if ($Recommendations.Count -eq 0 -and $Issues.Count -eq 0) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCExoResourceUtils.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCExoResourceUtils.psm1 index 9f393d6bf5..35f962b2f4 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCExoResourceUtils.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCExoResourceUtils.psm1 @@ -226,8 +226,7 @@ function New-ExoUnitTest } catch { - Write-Host "DSC resource $ResourceName not found!" - break; + throw "DSC resource $ResourceName not found!" } # Copy unit test template @@ -238,8 +237,7 @@ function New-ExoUnitTest } catch { - Write-Host 'Cannot create unit test file!' - break; + throw 'Failed to create unit test file!' } $parameterInformation = @() diff --git a/Modules/Microsoft365DSC/Modules/M365DSCLogEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCLogEngine.psm1 index 15ed9d16ac..85eae9c25c 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCLogEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCLogEngine.psm1 @@ -138,7 +138,7 @@ function New-M365DSCLogEntry } else { - Write-Host " Error Log created at {file://$LogFileName}" -ForegroundColor Red + Write-Host "Error Log created at {file://$LogFileName}" -ForegroundColor Red } #endregion } @@ -332,8 +332,7 @@ function Export-M365DSCDiagnosticData if (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator') -eq $false) { - Write-Host -Object '[ERROR] You need to run this cmdlet with Administrator privileges!' -ForegroundColor Red - return + throw 'You need to run this cmdlet with Administrator privileges!' } $afterDate = (Get-Date).AddDays(($NumberOfDays * -1)) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 index feea85d6f4..ca1d20dd85 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCPermissions.psm1 @@ -103,7 +103,7 @@ function Get-M365DSCCompiledPermissionList } catch { - Write-Host "File settings.json was not found for resource {$resourceName}" -ForegroundColor Red + Write-Warning -Message "File settings.json was not found for resource {$resourceName}" } if ($null -ne $settingsFilePath) @@ -1747,7 +1747,7 @@ function Update-M365DSCAzureAdApplication { if ($_.Exception.Message -match 'Key credential end date is invalid') { - Write-Host "Caught error: $($_.Exception.Message)" + Write-Error $($_.Exception.Message) -ErrorAction Continue if ($retryCount -lt $maxRetries) { $retryCount++ diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 index bf7ce34d56..d46e9ccfb6 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReport.psm1 @@ -1086,7 +1086,7 @@ function Compare-M365DSCConfigurations } catch { - Write-Host "Error: $_" + Write-Error -Message $_ -ErrorAction Continue } $i++ } @@ -1140,7 +1140,7 @@ function Compare-M365DSCConfigurations } catch { - Write-Host "Error: $_" + Write-Error -Message $_ -ErrorAction Continue } Write-Progress -Activity 'Scanning Destination...' -Completed diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 index 97ec7abbc0..be090cf9a6 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 @@ -256,9 +256,9 @@ function Start-M365DSCConfigurationExtract $ComponentsToSkip += $resource.InputObject } - Write-Host '[WARNING]' -NoNewline -ForegroundColor Yellow - Write-Host ' Based on the provided Authentication parameters, the following resources cannot be extracted: ' -ForegroundColor Gray - Write-Host "$($resourcesNotSupported -join ',')" -ForegroundColor Gray + $warningMessage = 'Based on the provided Authentication parameters, the following resources cannot be extracted: ' + $warningMessage += $resourcesNotSupported -join ',' + Write-Warning -Message $warningMessage # If all selected resources are not valid based on the authentication method used, simply return. if ($ComponentsToSkip.Length -eq $selectedResources.Length) @@ -773,12 +773,12 @@ function Start-M365DSCConfigurationExtract Write-Host "Results:" if ($results.Count -gt 0) { + $errorMessage = '' foreach ($issue in $results) { - Write-Host " - [" -NoNewline - Write-Host "$($issue.Reason)" -ForegroundColor Red -NoNewline - Write-Host "]: $($issue.InstanceName)" + $errorMessage += " - [$($issue.Reason)]: $($issue.InstanceName)`r`n" } + Write-Error -Message $errorMessage -ErrorAction Continue } else { @@ -918,9 +918,7 @@ function Start-M365DSCConfigurationExtract } else { - Write-Host "$($Global:M365DSCEmojiYellowCircle) Warning {" -NoNewline - Write-Host "Cannot export Local Configuration Manager settings. This process isn't executed with Administrative Privileges!" -NoNewline -ForegroundColor DarkCyan - Write-Host '}' + Write-Warning -Message "Cannot export Local Configuration Manager settings. This process isn't executed with Administrative Privileges!" } } catch diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 1411a55cac..ac50dfc5aa 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1209,7 +1209,7 @@ function Export-M365DSCConfiguration } else { - Write-Host -Object "[WARNING] We recommend providing the TenantId property in the format of .onmicrosoft.*" -ForegroundColor Yellow + Write-Warning -Message "We recommend providing the TenantId property in the format of .onmicrosoft.*" } } return $true @@ -1276,30 +1276,27 @@ function Export-M365DSCConfiguration { if ($Credential.Username -notmatch ".onmicrosoft.") { - Write-Host -Object "[WARNING] We recommend providing the username in the format of .onmicrosoft.* for the Credential property." -ForegroundColor Yellow + Write-Warning -Message "We recommend providing the username in the format of .onmicrosoft.* for the Credential property." } } if ($PSBoundParameters.ContainsKey('CertificatePath') -eq $true -and ` $PSBoundParameters.ContainsKey('CertificatePassword') -eq $false) { - Write-Host -Object '[ERROR] You have to specify CertificatePassword when you specify CertificatePath' -ForegroundColor Red - return + throw 'You have to specify CertificatePassword when you specify CertificatePath' } if ($PSBoundParameters.ContainsKey('CertificatePassword') -eq $true -and ` $PSBoundParameters.ContainsKey('CertificatePath') -eq $false) { - Write-Host -Object '[ERROR] You have to specify CertificatePath when you specify CertificatePassword' -ForegroundColor Red - return + throw 'You have to specify CertificatePath when you specify CertificatePassword' } if ($PSBoundParameters.ContainsKey('ApplicationId') -eq $true -and ` $PSBoundParameters.ContainsKey('Credential') -eq $false -and ` $PSBoundParameters.ContainsKey('TenantId') -eq $false) { - Write-Host -Object '[ERROR] You have to specify TenantId when you specify ApplicationId' -ForegroundColor Red - return + throw 'You have to specify TenantId when you specify ApplicationId' } if ($PSBoundParameters.ContainsKey('ApplicationId') -eq $true -and ` @@ -1309,8 +1306,7 @@ function Export-M365DSCConfiguration $PSBoundParameters.ContainsKey('ApplicationSecret') -eq $false -and ` $PSBoundParameters.ContainsKey('CertificatePath') -eq $false)) { - Write-Host -Object '[ERROR] You have to specify ApplicationSecret, CertificateThumbprint or CertificatePath when you specify ApplicationId/TenantId' -ForegroundColor Red - return + throw 'You have to specify ApplicationSecret, CertificateThumbprint or CertificatePath when you specify ApplicationId/TenantId' } if (($PSBoundParameters.ContainsKey('ApplicationId') -eq $false -or ` @@ -1320,8 +1316,7 @@ function Export-M365DSCConfiguration $PSBoundParameters.ContainsKey('ApplicationSecret') -eq $true -or ` $PSBoundParameters.ContainsKey('CertificatePath') -eq $true)) { - Write-Host -Message '[ERROR] You have to specify ApplicationId and TenantId when you specify ApplicationSecret, CertificateThumbprint or CertificatePath' -ForegroundColor Red - return + throw 'You have to specify ApplicationId and TenantId when you specify ApplicationSecret, CertificateThumbprint or CertificatePath' } # Default to Credential if no authentication mechanism were provided @@ -3091,7 +3086,7 @@ function Update-M365DSCDependencies foreach ($dependency in $dependencies) { - Write-Progress -Activity 'Scanning Dependencies' -PercentComplete ($i / $dependencies.Count * 100) + Write-Progress -Activity 'Scanning dependencies' -PercentComplete ($i / $dependencies.Count * 100) try { if (-not $Force) @@ -3134,15 +3129,14 @@ function Update-M365DSCDependencies } catch { - Write-Host "Could not update or import {$($dependency.ModuleName)}" - Write-Host "Error-Mesage: $($_.Exception.Message)" + Write-Error -Message "Could not update or import {$($dependency.ModuleName)}: $($_.Exception.Message)" -ErrorAction Continue } $i++ } # The progress bar seems to hang sometimes. Make sure it is no longer displayed. - Write-Progress -Activity 'Scanning Dependencies' -Completed + Write-Progress -Activity 'Scanning dependencies' -Completed if ($ValidateOnly) { @@ -3152,10 +3146,10 @@ function Update-M365DSCDependencies } catch { - New-M365DSCLogEntry -Message 'Error Updating Dependencies:' ` + New-M365DSCLogEntry -Message 'Error updating dependencies:' ` -Exception $_ ` -Source $($MyInvocation.MyCommand.Source) - Write-Error $_ + Write-Error $_ -ErrorAction Continue } } @@ -3194,7 +3188,7 @@ function Uninstall-M365DSCOutdatedDependencies New-M365DSCLogEntry -Message "Could not uninstall $($module.Name) Version $($module.Version)" ` -Exception $_ ` -Source $($MyInvocation.MyCommand.Source) - Write-Host "Could not uninstall $($module.Name) Version $($module.Version)" + Write-Error -Message "Could not uninstall $($module.Name) Version $($module.Version)" -ErrorAction Continue } } @@ -3225,20 +3219,20 @@ function Uninstall-M365DSCOutdatedDependencies New-M365DSCLogEntry -Message "Could not uninstall $($foundModule.Name) Version $($foundModule.Version)" ` -Exception $_ ` -Source $($MyInvocation.MyCommand.Source) - Write-Host "Could not uninstall $($foundModule.Name) Version $($foundModule.Version)" + Write-Error -Message "Could not uninstall $($foundModule.Name) Version $($foundModule.Version)" -ErrorAction Continue } } } catch { - Write-Host "Could not uninstall {$($dependency.ModuleName)}" + Write-Error -Message "Could not uninstall {$($dependency.ModuleName)}" -ErrorAction Continue } $i++ } } catch { - New-M365DSCLogEntry -Message 'Error Uninstalling Outdated Dependencies:' ` + New-M365DSCLogEntry -Message 'Error uninstalling outdated dependencies:' ` -Exception $_ ` -Source $($MyInvocation.MyCommand.Source) Write-Error $_ @@ -3261,13 +3255,13 @@ function Uninstall-M365DSCOutdatedDependencies } catch { - Write-Host "Could not uninstall $($foundModule.Name) Version $($foundModule.Version) " + Write-Error -Message "Could not uninstall $($foundModule.Name) Version $($foundModule.Version)" -ErrorAction Continue } } } catch { - Write-Host "Could not uninstall {$($dependency.ModuleName)}" + Write-Error -Message "Could not uninstall {$($dependency.ModuleName)}" -ErrorAction Continue } } diff --git a/ResourceGenerator/M365DSCResourceGenerator.psm1 b/ResourceGenerator/M365DSCResourceGenerator.psm1 index 1cc3f8df17..89d425d38a 100644 --- a/ResourceGenerator/M365DSCResourceGenerator.psm1 +++ b/ResourceGenerator/M365DSCResourceGenerator.psm1 @@ -1181,14 +1181,12 @@ function Get-MgGraphModuleCmdLetDifference if ($modules.Count -eq 0) { - Write-Host '[ERROR] No module selected!' -ForegroundColor Red - return + throw 'No module selected!' } if (($modules.Name | Sort-Object | Select-Object -Unique).Count -ne 1 -or $modules.Count -ne 2) { - Write-Host '[ERROR] Please select two versions of the same module' -ForegroundColor Red - return + throw 'Please select two versions of the same module' } [array]$exportedKeysModule1 = $modules[0].ExportedCommands.Keys @@ -2568,7 +2566,6 @@ function Get-M365DSCFakeValues { $parameterName = Get-StringFirstCharacterToLower -Value $parameterName } - write-host -ForegroundColor Yellow $parameterName $result.Add($parameterName, $hashValue) } } From 47c1071fe24a3c844a0e47600eef7a1bff1d848b Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Tue, 6 Aug 2024 07:45:10 +0100 Subject: [PATCH 257/273] Allow empty arrays as input --- CHANGELOG.md | 6 ++++++ Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 | 2 ++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4146d32157..78c7af2d31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change log for Microsoft365DSC +# UNRELEASED + +* M365DSCUtil + * Fix `Compare-PSCustomObjectArrays` by allowing empty arrays as input + FIXES [#4952](https://github.com/microsoft/Microsoft365DSC/issues/4952) + # 1.24.731.1 * AADAuthenticationMethodPolicyFido2 diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index 1411a55cac..822be4eaed 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -437,10 +437,12 @@ function Compare-PSCustomObjectArrays param ( [Parameter(Mandatory = $true)] + [AllowEmptyCollection()] [System.Object[]] $DesiredValues, [Parameter(Mandatory = $true)] + [AllowEmptyCollection()] [System.Object[]] $CurrentValues ) From 3a4a183393edb65a13c815078d2ae505811226ac Mon Sep 17 00:00:00 2001 From: Andrew Hodgson Date: Thu, 8 Aug 2024 10:30:50 +0100 Subject: [PATCH 258/273] ExoAuthenticationPolicyAssignment: Return all users when exporting --- CHANGELOG.md | 4 ++++ .../MSFT_EXOAuthenticationPolicyAssignment.psm1 | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941971d976..569bb062d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ # UNRELEASED +* EXOAuthenticationPolicyAssignment + * Removes the 1000 user limit when exporting authentication policy assignments + FIXES [#4956](https://github.com/microsoft/Microsoft365DSC/issues/4956) + * EXOHostedContentFilterRule * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 index 4148c8c09a..8206c166c9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 @@ -356,7 +356,7 @@ function Export-TargetResource foreach ($AuthenticationPolicy in $AllAuthenticationPolicies) { Write-Host " |---[$i/$($AllAuthenticationPolicies.Count)] $($AuthenticationPolicy.Identity)" -NoNewline - $assignedUsers = Get-User -Filter "AuthenticationPolicy -eq '$($AuthenticationPolicy.DistinguishedName)'" + $assignedUsers = Get-User -Filter "AuthenticationPolicy -eq '$($AuthenticationPolicy.DistinguishedName)'" -ResultSize unlimited foreach ($user in $assignedUsers) { From 2f893ce719444a7656cedaf2b40a01e7fb4387b2 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Thu, 15 Aug 2024 12:47:56 +0100 Subject: [PATCH 259/273] Allow PasswordComplexity to be set to 5 --- CHANGELOG.md | 3 +++ ...tProtectionLocalAdministratorPasswordSolutionPolicy.psm1 | 6 +++--- ...ctionLocalAdministratorPasswordSolutionPolicy.schema.mof | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941971d976..e51ede3e32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ * EXOHostedContentFilterRule * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required +* IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy + * Fixed issue if `PasswordComplexity` was set to 5 by allowing that value + FIXES [#4963](https://github.com/microsoft/Microsoft365DSC/issues/4963) # 1.24.731.1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index e6cdb33d58..9a6140387a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -54,7 +54,7 @@ function Get-TargetResource [Parameter()] [System.Int32] - [ValidateRange(1, 4)] + [ValidateRange(1, 5)] $PasswordComplexity, [Parameter()] @@ -267,7 +267,7 @@ function Set-TargetResource [Parameter()] [System.Int32] - [ValidateRange(1, 4)] + [ValidateRange(1, 5)] $PasswordComplexity, [Parameter()] @@ -463,7 +463,7 @@ function Test-TargetResource [Parameter()] [System.Int32] - [ValidateRange(1, 4)] + [ValidateRange(1, 5)] $PasswordComplexity, [Parameter()] diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof index 4a8235bf89..33aeb469d7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.schema.mof @@ -24,7 +24,7 @@ class MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy : OMI [Write, Description("Configures whether the password is encrypted before being stored in Active Directory.")] Boolean AdPasswordEncryptionEnabled; [Write, Description("Configures the name or SID of a user or group that can decrypt the password stored in Active Directory.")] String AdPasswordEncryptionPrincipal; [Write, Description("Configures the name of the managed local administrator account.")] String AdministratorAccountName; - [Write, Description("Configures the password complexity of the managed local administrator account. 1 - Large letters, 2 - Large + small letters, 3 - Large + small letters + numbers, 4 - Large + small letters + numbers + special characters"), ValueMap{"1", "2", "3", "4"}, Values{"1", "2", "3", "4"}] UInt32 PasswordComplexity; + [Write, Description("Configures the password complexity of the managed local administrator account. 1 - Large letters, 2 - Large + small letters, 3 - Large + small letters + numbers, 4 - Large + small letters + numbers + special characters, 5 - Large letters + small letters + numbers + special characters (improved readability)"), ValueMap{"1", "2", "3", "4", "5"}, Values{"1", "2", "3", "4", "5"}] UInt32 PasswordComplexity; [Write, Description("Configures the length of the password of the managed local administrator account. Minimum - 8, Maximum - 64")] UInt32 PasswordLength; [Write, Description("Specifies the actions to take upon expiration of the configured grace period. 1 - Reset password, 3 - Reset password and log off, 5 - Reset password and restart"), ValueMap{"1", "3", "5"}, Values{"1", "3", "5"}] UInt32 PostAuthenticationActions; [Write, Description("Specifies the amount of time (in hours) to wait after an authentication before executing the specified post-authentication actions. Minimum - 0, Maximum - 24")] UInt32 PostAuthenticationResetDelay; From babe36f3be558fa50f9790b36b3365a2e8f2164c Mon Sep 17 00:00:00 2001 From: Fabien Tschanz Date: Mon, 19 Aug 2024 23:14:54 +0200 Subject: [PATCH 260/273] Fix AuthenticationFlows in Conditional Access Policy --- CHANGELOG.md | 7 ++++ .../MSFT_AADConditionalAccessPolicy.psm1 | 42 +++++++++++++++---- ...MSFT_AADConditionalAccessPolicy.schema.mof | 2 +- 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941971d976..a84327386b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ # UNRELEASED +* AADConditionalAccessPolicy + * Fixes an issue where the `AuthenticationFlows` property changed in Graph + and updates on the documentation for the possible values of `TransferMethods`. + FIXES [#4961](https://github.com/microsoft/Microsoft365DSC/issues/4961) + FIXES [#4960](https://github.com/microsoft/Microsoft365DSC/issues/4960) + FIXES [#4734](https://github.com/microsoft/Microsoft365DSC/issues/4734) + FIXES [#4725](https://github.com/microsoft/Microsoft365DSC/issues/4725) * EXOHostedContentFilterRule * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 index c64c6aba13..07d70529ae 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 @@ -1519,15 +1519,23 @@ function Set-TargetResource if ($currentParameters.ContainsKey('TransferMethods')) { #create and provision TransferMethods condition object if used + $authenticationFlows = if ([System.String]::IsNullOrEmpty($TransferMethods)) + { + $null + } + else + { + @{ + transferMethods = $TransferMethods + } + } if (-not $conditions.Contains('authenticationFlows')) { - $conditions.Add('authenticationFlows', @{ - transferMethods = $TransferMethods - }) + $conditions.Add('authenticationFlows', $authenticationFlows) } else { - $conditions.authenticationFlows.Add('transferMethods', $TransferMethods) + $conditions.authenticationFlows = $authenticationFlows } } @@ -1972,10 +1980,28 @@ function Test-TargetResource $ValuesToCheck = $PSBoundParameters $ValuesToCheck.Remove('Id') | Out-Null - $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` - -Source $($MyInvocation.MyCommand.Source) ` - -DesiredValues $PSBoundParameters ` - -ValuesToCheck $ValuesToCheck.Keys + # If no TransferMethod is specified, ignore it + # If a TransferMethod is specified, check if it is equal to the current value + # while ignoring the order of the values + if (-not $PSBoundParameters.ContainsKey('TransferMethods') -or + $null -eq (Compare-Object -ReferenceObject $TransferMethods.Split(',') -DifferenceObject $CurrentValues.TransferMethods.Split(','))) + { + $ValuesToCheck.Remove('TransferMethods') | Out-Null + $TestResult = $true + } + else + { + Write-Verbose -Message "TransferMethods are not equal: [$TransferMethods] - [$($CurrentValues.TransferMethods)]" + $TestResult = $false + } + + if ($TestResult) + { + $TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + } Write-Verbose -Message "Test-TargetResource returned $TestResult" diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.schema.mof index e31287c13f..c1f6d5283f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.schema.mof @@ -44,7 +44,7 @@ class MSFT_AADConditionalAccessPolicy : OMI_BaseResource [Write, Description("Specifies, whether Browser Persistence is controlled by the Policy.")] Boolean PersistentBrowserIsEnabled; [Write, Description("Specifies, what Browser Persistence control is enforced by the Policy."), ValueMap{"Always","Never",""}, Values{"Always","Never",""}] String PersistentBrowserMode; [Write, Description("Name of the associated authentication strength policy.")] String AuthenticationStrength; - [Write, Description("Names of the associated authentication flow transfer methods")] String TransferMethods; + [Write, Description("Names of the associated authentication flow transfer methods. Possible values are '', 'deviceCodeFlow', 'authenticationTransfer', or 'deviceCodeFlow,authenticationTransfer'.")] String TransferMethods; [Write, Description("Authentication context class references.")] String AuthenticationContexts[]; [Write, Description("Specify if the Azure AD CA Policy should exist or not."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure; [Write, Description("Credentials for the Microsoft Graph delegated permissions."), EmbeddedInstance("MSFT_Credential")] string Credential; From c91bc222047ed2bf9a5a0345cb7aa781a55b8d23 Mon Sep 17 00:00:00 2001 From: Yorick Kuijs Date: Wed, 21 Aug 2024 09:50:57 +0200 Subject: [PATCH 261/273] Fixing error handling in AADConditionalAccessPolicy --- CHANGELOG.md | 3 +++ .../MSFT_AADConditionalAccessPolicy.psm1 | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941971d976..cff53b3f7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ # UNRELEASED +* AADConditionalAccessPolicy + * Fixing issue where the resource crashed when trying to retrieve groups + and users from Entra ID which no longer existed * EXOHostedContentFilterRule * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 index c64c6aba13..9271de9bbe 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 @@ -372,7 +372,7 @@ function Get-TargetResource $IncludeGroup = $null try { - $IncludeGroup = (Get-MgGroup -GroupId $IncludeGroupGUID).displayname + $IncludeGroup = (Get-MgGroup -GroupId $IncludeGroupGUID -ErrorAction Stop).displayname } catch { @@ -382,6 +382,7 @@ function Get-TargetResource -Source $($MyInvocation.MyCommand.Source) ` -TenantId $TenantId ` -Credential $Credential + continue } if ($IncludeGroup) { @@ -400,7 +401,7 @@ function Get-TargetResource $ExcludeGroup = $null try { - $ExcludeGroup = (Get-MgGroup -GroupId $ExcludeGroupGUID).displayname + $ExcludeGroup = (Get-MgGroup -GroupId $ExcludeGroupGUID -ErrorAction Stop).displayname } catch { @@ -410,6 +411,7 @@ function Get-TargetResource -Source $($MyInvocation.MyCommand.Source) ` -TenantId $TenantId ` -Credential $Credential + continue } if ($ExcludeGroup) { @@ -1026,7 +1028,7 @@ function Set-TargetResource $userguid = $null try { - $userguid = (Get-MgUser -UserId $includeuser).Id + $userguid = (Get-MgUser -UserId $includeuser -ErrorAction Stop).Id } catch { @@ -1073,7 +1075,7 @@ function Set-TargetResource $userguid = $null try { - $userguid = (Get-MgUser -UserId $excludeuser).Id + $userguid = (Get-MgUser -UserId $excludeuser -ErrorAction Stop).Id } catch { @@ -1118,7 +1120,7 @@ function Set-TargetResource $GroupLookup = $null try { - $GroupLookup = Get-MgGroup -Filter "DisplayName eq '$includegroup'" + $GroupLookup = Get-MgGroup -Filter "DisplayName eq '$includegroup'" -ErrorAction Stop } catch { @@ -1168,7 +1170,7 @@ function Set-TargetResource $GroupLookup = $null try { - $GroupLookup = Get-MgGroup -Filter "DisplayName eq '$ExcludeGroup'" + $GroupLookup = Get-MgGroup -Filter "DisplayName eq '$ExcludeGroup'" -ErrorAction Stop } catch { From 27422ed4baafe127ed4cb63b249d237d5cc591d1 Mon Sep 17 00:00:00 2001 From: Yorick Kuijs Date: Wed, 21 Aug 2024 09:53:52 +0200 Subject: [PATCH 262/273] Added continue keyword to go the next item in the loop --- .../MSFT_AADConditionalAccessPolicy.psm1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 index 9271de9bbe..dac87d769f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 @@ -314,6 +314,7 @@ function Get-TargetResource -Source $($MyInvocation.MyCommand.Source) ` -TenantId $TenantId ` -Credential $Credential + continue } if ($IncludeUser) { @@ -349,6 +350,7 @@ function Get-TargetResource -Source $($MyInvocation.MyCommand.Source) ` -TenantId $TenantId ` -Credential $Credential + continue } if ($ExcludeUser) { From a2f9e0a8fa1c91b7f5e307db736d101eeae4464a Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 21 Aug 2024 09:02:13 +0000 Subject: [PATCH 263/273] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md b/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md index 6c9999834d..760138f056 100644 --- a/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md +++ b/docs/docs/resources/azure-ad/AADConditionalAccessPolicy.md @@ -47,7 +47,7 @@ | **PersistentBrowserIsEnabled** | Write | Boolean | Specifies, whether Browser Persistence is controlled by the Policy. | | | **PersistentBrowserMode** | Write | String | Specifies, what Browser Persistence control is enforced by the Policy. | `Always`, `Never`, `` | | **AuthenticationStrength** | Write | String | Name of the associated authentication strength policy. | | -| **TransferMethods** | Write | String | Names of the associated authentication flow transfer methods | | +| **TransferMethods** | Write | String | Names of the associated authentication flow transfer methods. Possible values are '', 'deviceCodeFlow', 'authenticationTransfer', or 'deviceCodeFlow,authenticationTransfer'. | | | **AuthenticationContexts** | Write | StringArray[] | Authentication context class references. | | | **Ensure** | Write | String | Specify if the Azure AD CA Policy should exist or not. | `Present`, `Absent` | | **Credential** | Write | PSCredential | Credentials for the Microsoft Graph delegated permissions. | | From e0a63c541aa86986a6c24a66c99317b386429004 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 21 Aug 2024 09:13:46 +0000 Subject: [PATCH 264/273] Updated Resources and Cmdlet documentation pages --- ...AccountProtectionLocalAdministratorPasswordSolutionPolicy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md b/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md index e19cc33b08..9736f856f2 100644 --- a/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md +++ b/docs/docs/resources/intune/IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.md @@ -16,7 +16,7 @@ | **AdPasswordEncryptionEnabled** | Write | Boolean | Configures whether the password is encrypted before being stored in Active Directory. | | | **AdPasswordEncryptionPrincipal** | Write | String | Configures the name or SID of a user or group that can decrypt the password stored in Active Directory. | | | **AdministratorAccountName** | Write | String | Configures the name of the managed local administrator account. | | -| **PasswordComplexity** | Write | UInt32 | Configures the password complexity of the managed local administrator account. 1 - Large letters, 2 - Large + small letters, 3 - Large + small letters + numbers, 4 - Large + small letters + numbers + special characters | `1`, `2`, `3`, `4` | +| **PasswordComplexity** | Write | UInt32 | Configures the password complexity of the managed local administrator account. 1 - Large letters, 2 - Large + small letters, 3 - Large + small letters + numbers, 4 - Large + small letters + numbers + special characters, 5 - Large letters + small letters + numbers + special characters (improved readability) | `1`, `2`, `3`, `4`, `5` | | **PasswordLength** | Write | UInt32 | Configures the length of the password of the managed local administrator account. Minimum - 8, Maximum - 64 | | | **PostAuthenticationActions** | Write | UInt32 | Specifies the actions to take upon expiration of the configured grace period. 1 - Reset password, 3 - Reset password and log off, 5 - Reset password and restart | `1`, `3`, `5` | | **PostAuthenticationResetDelay** | Write | UInt32 | Specifies the amount of time (in hours) to wait after an authentication before executing the specified post-authentication actions. Minimum - 0, Maximum - 24 | | From f8846701619240251b23e35339f406571da18fe9 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 21 Aug 2024 10:46:59 +0100 Subject: [PATCH 265/273] Fix extraction of property TpmRequired --- CHANGELOG.md | 3 ++- .../MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 | 8 ++++---- .../MSFT_IntuneDeviceCompliancePolicyWindows10.schema.mof | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 569bb062d2..a60c43ed4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,11 @@ * EXOAuthenticationPolicyAssignment * Removes the 1000 user limit when exporting authentication policy assignments FIXES [#4956](https://github.com/microsoft/Microsoft365DSC/issues/4956) - * EXOHostedContentFilterRule * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required +* IntuneDeviceCompliancePolicyWindows10 + * Fix extraction of property TpmRequired # 1.24.731.1 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index 419e4ac295..81f4c3aa3b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -132,7 +132,7 @@ function Get-TargetResource [Parameter()] [System.Boolean] - $TPMRequired, + $TpmRequired, [Parameter()] [System.String] @@ -247,7 +247,7 @@ function Get-TargetResource DeviceThreatProtectionEnabled = $devicePolicy.AdditionalProperties.deviceThreatProtectionEnabled DeviceThreatProtectionRequiredSecurityLevel = $devicePolicy.AdditionalProperties.deviceThreatProtectionRequiredSecurityLevel ConfigurationManagerComplianceRequired = $devicePolicy.AdditionalProperties.configurationManagerComplianceRequired - TPMRequired = $devicePolicy.AdditionalProperties.tPMRequired + TpmRequired = $devicePolicy.AdditionalProperties.tpmRequired DeviceCompliancePolicyScript = $devicePolicy.AdditionalProperties.deviceCompliancePolicyScript ValidOperatingSystemBuildRanges = $devicePolicy.AdditionalProperties.validOperatingSystemBuildRanges Ensure = 'Present' @@ -418,7 +418,7 @@ function Set-TargetResource [Parameter()] [System.Boolean] - $TPMRequired, + $TpmRequired, [Parameter()] [System.String] @@ -694,7 +694,7 @@ function Test-TargetResource [Parameter()] [System.Boolean] - $TPMRequired, + $TpmRequired, [Parameter()] [System.String] diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.schema.mof index 5a2828ddac..3dd4d6a55b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.schema.mof @@ -44,7 +44,7 @@ class MSFT_IntuneDeviceCompliancePolicyWindows10 : OMI_BaseResource [Write, Description("DeviceThreatProtectionEnabled of the Windows 10 device compliance policy.")] Boolean DeviceThreatProtectionEnabled; [Write, Description("DeviceThreatProtectionRequiredSecurityLevel of the Windows 10 device compliance policy."), ValueMap{"Unavailable","Secured","Low", "Medium","High","NotSet"}, Values{"Unavailable","Secured","Low", "Medium","High","NotSet"}] String DeviceThreatProtectionRequiredSecurityLevel; [Write, Description("ConfigurationManagerComplianceRequired of the Windows 10 device compliance policy.")] Boolean ConfigurationManagerComplianceRequired; - [Write, Description("TPMRequired of the Windows 10 device compliance policy.")] Boolean TPMRequired; + [Write, Description("TpmRequired of the Windows 10 device compliance policy.")] Boolean TpmRequired; [Write, Description("DeviceCompliancePolicyScript of the Windows 10 device compliance policy.")] String DeviceCompliancePolicyScript; [Write, Description("ValidOperatingSystemBuildRanges of the Windows 10 device compliance policy.")] String ValidOperatingSystemBuildRanges[]; [Write, Description("Present ensures the policy exists, absent ensures it is removed."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] string Ensure; From 0ac497e671c3d101bd537bca4cad79a3a0160685 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 21 Aug 2024 10:47:35 +0100 Subject: [PATCH 266/273] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a60c43ed4d..3c6321b528 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required * IntuneDeviceCompliancePolicyWindows10 - * Fix extraction of property TpmRequired + * Fix extraction of property `TpmRequired` # 1.24.731.1 From 3181224460e1e86357fdb16f255681ca8ea47962 Mon Sep 17 00:00:00 2001 From: Ricardo Mestre Date: Wed, 21 Aug 2024 11:25:07 +0100 Subject: [PATCH 267/273] Update CHANGELOG.md --- CHANGELOG.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32e7e01aa2..e9e6fe51d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,11 @@ * IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy * Fixed issue if `PasswordComplexity` was set to 5 by allowing that value FIXES [#4963](https://github.com/microsoft/Microsoft365DSC/issues/4963) +* IntuneDeviceConfigurationCustomPolicyWindows10 + * Change app and delegated permissions for reading to + DeviceManagementConfiguration.ReadWrite.All to cope with + getOmaSettingPlainTextValue which is only working if RW is granted + FIXES [#4412](https://github.com/microsoft/Microsoft365DSC/issues/4412) * M365DSCUtil * Fix `Compare-PSCustomObjectArrays` by allowing empty arrays as input FIXES [#4952](https://github.com/microsoft/Microsoft365DSC/issues/4952) @@ -344,10 +349,6 @@ * Update setting handling so that the value is reverted to default when unset * IntuneDeviceConfigurationCustomPolicyWindows10 * Fixed an issue where the payload of xml files was not encoded as base64. - * Change app and delegated permissions for reading to - DeviceManagementConfiguration.ReadWrite.All to cope with - getOmaSettingPlainTextValue which is only working if RW is granted - FIXES [#4412](https://github.com/microsoft/Microsoft365DSC/issues/4412) * IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10 * Fixed a creation and update issue when the exported policy contains a onboarding blob and the tenant is connected to Defender for Endpoint Service. From c24165e09604af93e4e041835cb88b042a22eb77 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 21 Aug 2024 11:04:12 +0000 Subject: [PATCH 268/273] Updated Resources and Cmdlet documentation pages --- .../intune/IntuneDeviceConfigurationCustomPolicyWindows10.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md index 1cab65c261..37558493b4 100644 --- a/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceConfigurationCustomPolicyWindows10.md @@ -63,7 +63,7 @@ To authenticate with the Microsoft Graph API, this resource required the followi - **Read** - - Group.Read.All, DeviceManagementConfiguration.Read.All + - Group.Read.All, DeviceManagementConfiguration.ReadWrite.All - **Update** @@ -73,7 +73,7 @@ To authenticate with the Microsoft Graph API, this resource required the followi - **Read** - - Group.Read.All, DeviceManagementConfiguration.Read.All + - Group.Read.All, DeviceManagementConfiguration.ReadWrite.All - **Update** From 2877c6c07ab7b9d81d035cd00852e550b7a7f7a4 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 21 Aug 2024 12:16:38 +0000 Subject: [PATCH 269/273] Updated Resources and Cmdlet documentation pages --- .../resources/intune/IntuneDeviceCompliancePolicyWindows10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md index f9249a42a4..ee9498d7cd 100644 --- a/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md +++ b/docs/docs/resources/intune/IntuneDeviceCompliancePolicyWindows10.md @@ -36,7 +36,7 @@ | **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. | | +| **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` | From 6fa24f5b07bf37a461f8b7e2d12ebcea1c5c73ad Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Wed, 21 Aug 2024 12:19:01 +0000 Subject: [PATCH 270/273] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 25293aadb8..a5466b33ac 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -18639,7 +18639,7 @@ }, { "CIMType": "Boolean", - "Name": "TPMRequired", + "Name": "TpmRequired", "Option": "Write" }, { From b97ee2e556b5aec6c1a4743566fbf67055b3c284 Mon Sep 17 00:00:00 2001 From: tayhall <51701340+tayhall@users.noreply.github.com> Date: Wed, 21 Aug 2024 14:21:38 +0100 Subject: [PATCH 271/273] Update MSFT_EXORoleGroup.psm1 Updated to handle $null on compare-object and also allows the adding of members to the Role with empty members --- .../MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 index 44f102c318..ddaf63e526 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 @@ -240,7 +240,14 @@ function Set-TargetResource Remove-RoleGroup -Identity $Name -Confirm:$false -Force } # CASE: Role Group exists and it should, but has different member values than the desired ones - elseif ($Ensure -eq 'Present' -and $currentRoleGroupConfig.Ensure -eq 'Present' -and $null -ne (Compare-Object -ReferenceObject $($currentRoleGroupConfig.Members) -DifferenceObject $Members)) + elseif ($Ensure -eq 'Present' -and $currentRoleGroupConfig.Ensure -eq 'Present' -and $null -ne (Compare-Object -ReferenceObject @($($currentRoleGroupConfig.Members) | Select-Object) -DifferenceObject @($Members | Select-Object))) + { + Write-Verbose -Message "Role Group '$($Name)' already exists, but members need updating." + Write-Verbose -Message "Updating Role Group $($Name) members with values: $(Convert-M365DscHashtableToString -Hashtable $NewRoleGroupParams)" + Update-RoleGroupMember -Identity $Name -Members $Members -Confirm:$false + } + # CASE: Role Assignment Policy exists and it should, but Role has no members as its never been set + elseif ($Ensure -eq 'Present' -and $currentRoleGroupConfig.Ensure -eq 'Present' -and $currentRoleGroupConfig.Members -eq '') { Write-Verbose -Message "Role Group '$($Name)' already exists, but members need updating." Write-Verbose -Message "Updating Role Group $($Name) members with values: $(Convert-M365DscHashtableToString -Hashtable $NewRoleGroupParams)" From 37a844e77e2708060c15d1a1d6fddb92f623d89b Mon Sep 17 00:00:00 2001 From: tayhall <51701340+tayhall@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:53:56 +0100 Subject: [PATCH 272/273] Update CHANGELOG.md Added details of fix and related issue --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 116d97723f..189cf37dcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ # UNRELEASED +* EXORoleGroup + * Fix an issue where roles that have empty members cannot be compared + FIXES [#4977] (https://github.com/microsoft/Microsoft365DSC/issues/4977) * AADConditionalAccessPolicy * Fixing issue where the resource crashed when trying to retrieve groups and users from Entra ID which no longer existed From a9829fa5870183d15ac734ff7bbaef44cabf0554 Mon Sep 17 00:00:00 2001 From: tayhall <51701340+tayhall@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:02:03 +0100 Subject: [PATCH 273/273] Update CHANGELOG.md Alphabetical update --- CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 189cf37dcd..ba99742b21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,7 @@ # UNRELEASED -* EXORoleGroup - * Fix an issue where roles that have empty members cannot be compared - FIXES [#4977] (https://github.com/microsoft/Microsoft365DSC/issues/4977) + * AADConditionalAccessPolicy * Fixing issue where the resource crashed when trying to retrieve groups and users from Entra ID which no longer existed @@ -20,6 +18,9 @@ * EXOHostedContentFilterRule * Don't check if associated `EXOHostedContentFilterPolicy` is present while removing resource since it's not required + * EXORoleGroup + * Fix an issue where roles that have empty members cannot be compared + FIXES [#4977] (https://github.com/microsoft/Microsoft365DSC/issues/4977) * IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy * Fixed issue if `PasswordComplexity` was set to 5 by allowing that value FIXES [#4963](https://github.com/microsoft/Microsoft365DSC/issues/4963)

    KYBT}tY+2aZBG)E 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%0AcMt*6c9(;Bt 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