From ec585ae4d1d9f07d3f371fe6f0e35daa7af93019 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 12 Feb 2025 11:22:38 -0500 Subject: [PATCH 1/6] Update CHANGELOG.md --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef0b025c9a..e0c0572625 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,4 @@ # Change log for Microsoft365DSC -# UNRELEASED - -* AADGroupEligibilitySchedule - * FIXES [#5741] Missing -All variable which prevented enumeration of more than 100 Groups # 1.25.212.1 @@ -14,6 +10,8 @@ * AADCrossTenantAccessPolicyConfigurationPartner * Fixes an issue with CIM class export. FIXES [#5711](https://github.com/microsoft/Microsoft365DSC/issues/5711) +* AADGroupEligibilitySchedule + * FIXES [#5741] Missing -All variable which prevented enumeration of more than 100 Groups * EXORetentionPolicyTag * Initial release. * EXOSmtpDaneInbound From cfa8283fac789781a4dd8394dc198e75f739f4eb Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 13 Feb 2025 10:08:27 -0500 Subject: [PATCH 2/6] Fixing Power Platforms connection issues --- CHANGELOG.md | 5 +++++ .../MSFT_PPAdminDLPPolicy/MSFT_PPAdminDLPPolicy.psm1 | 2 +- .../MSFT_PPDLPPolicyConnectorConfigurations.psm1 | 3 ++- .../MSFT_PPPowerAppPolicyUrlPatterns.psm1 | 10 +++++----- .../MSFT_PPTenantIsolationSettings.psm1 | 2 +- .../MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 | 8 ++++---- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0c0572625..1c6cd4a666 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log for Microsoft365DSC +# 1.25.212.2 + +* MISC + * Fixing connection errors in Power Platforms resources. + # 1.25.212.1 * AADApplication diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPAdminDLPPolicy/MSFT_PPAdminDLPPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPAdminDLPPolicy/MSFT_PPAdminDLPPolicy.psm1 index 144faea012..25174d3048 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPAdminDLPPolicy/MSFT_PPAdminDLPPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPAdminDLPPolicy/MSFT_PPAdminDLPPolicy.psm1 @@ -88,7 +88,7 @@ function Get-TargetResource $results = @{ DisplayName = $instance.properties.displayName - PolicyName = $instance.PolicyName + PolicyName = $instance.name Environments = [array]$instance.properties.definition.constraints.environmentFilter1.parameters.environments.name FilterType = $instance.properties.definition.constraints.environmentFilter1.parameters.filterType Ensure = 'Present' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPDLPPolicyConnectorConfigurations/MSFT_PPDLPPolicyConnectorConfigurations.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPDLPPolicyConnectorConfigurations/MSFT_PPDLPPolicyConnectorConfigurations.psm1 index 8e70366922..fc52bc2320 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPDLPPolicyConnectorConfigurations/MSFT_PPDLPPolicyConnectorConfigurations.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPDLPPolicyConnectorConfigurations/MSFT_PPDLPPolicyConnectorConfigurations.psm1 @@ -46,7 +46,7 @@ function Get-TargetResource $AccessTokens ) - New-M365DSCConnection -Workload 'PowerPlatforms' ` + New-M365DSCConnection -Workload 'PowerPlatformREST' ` -InboundParameters $PSBoundParameters | Out-Null #Ensure the proper dependencies are installed in the current environment. @@ -321,6 +321,7 @@ function Test-TargetResource Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" #Compare Cim instances + $testResult = $true foreach ($key in $PSBoundParameters.Keys) { $source = $PSBoundParameters.$key diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppPolicyUrlPatterns/MSFT_PPPowerAppPolicyUrlPatterns.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppPolicyUrlPatterns/MSFT_PPPowerAppPolicyUrlPatterns.psm1 index 15f1e1ffcc..b2c5f78656 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppPolicyUrlPatterns/MSFT_PPPowerAppPolicyUrlPatterns.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppPolicyUrlPatterns/MSFT_PPPowerAppPolicyUrlPatterns.psm1 @@ -300,6 +300,7 @@ function Test-TargetResource Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" + $testResult = $true #Compare Cim instances Write-Verbose -Message "Comparing CIMInstances" @@ -399,10 +400,9 @@ function Export-TargetResource "/providers/Microsoft.BusinessAppPlatform/scopes/admin/apiPolicies?api-version=2016-11-01" [array]$policies = Invoke-M365DSCPowerPlatformRESTWebRequest -Uri $uri -Method 'GET' - - + $policies = $policies.value | Where-Object -FilterScript {$_.type -eq 'Microsoft.BusinessAppPlatform/scopes/apiPolicies'} $dscContent = '' - if ($policies.value.Length -eq 0) + if ($policies.Length -eq 0) { Write-Host $Global:M365DSCEmojiGreenCheckMark } @@ -411,13 +411,13 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline } $i = 1 - foreach ($policy in $policies.value) + foreach ($policy in $policies) { if ($null -ne $Global:M365DSCExportResourceInstancesCount) { $Global:M365DSCExportResourceInstancesCount++ } - Write-Host " |---[$i/$($policies.value.Count)] $($policy.properties.DisplayName)" -NoNewline + Write-Host " |---[$i/$($policies.Count)] $($policy.properties.DisplayName)" -NoNewline $params = @{ PPTenantId = $tenantInfo PolicyName = $policy.properties.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 index 33faa5e31a..c01fe87832 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 @@ -521,7 +521,7 @@ function Test-TargetResource $driftedRules.($existingRule.TenantName) = @{ CurrentValue = "Direction: $($existingRule.Direction)" - DesiredValue = 'Should not exist' + DesiredValue = "Direction: $($rule.Direction)" } $result = $false } diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 index 11bd1daac8..b5b1fb2583 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 @@ -602,7 +602,7 @@ function Set-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion - $ConnectionMode = New-M365DSCConnection -Workload 'PowerPlatforms' ` + $ConnectionMode = New-M365DSCConnection -Workload 'PowerPlatformREST' ` -InboundParameters $PSBoundParameters $SetParameters = $PSBoundParameters @@ -1087,7 +1087,7 @@ function Set-M365DSCPPTenantSettings $Body ) - $url = "$((Get-MSCloudLoginConnectionProfile -Workload 'PowerPlatforms').ResourceUrl)/providers/Microsoft.BusinessAppPlatform/scopes/admin/updateTenantSettings?api-version=2016-11-01" + $url = "$((Get-MSCloudLoginConnectionProfile -Workload 'PowerPlatformREST').ResourceUrl)/providers/Microsoft.BusinessAppPlatform/scopes/admin/updateTenantSettings?api-version=2016-11-01" } @@ -1100,9 +1100,9 @@ function Get-M365DSCPPTenantSettings $Body ) - $url = "$((Get-MSCloudLoginConnectionProfile -Workload 'PowerPlatforms').ResourceUrl)/providers/Microsoft.BusinessAppPlatform/scopes/admin/getTenantSettings?api-version=2016-11-01" + $url = "$((Get-MSCloudLoginConnectionProfile -Workload 'PowerPlatformREST').ResourceUrl)/providers/Microsoft.BusinessAppPlatform/scopes/admin/getTenantSettings?api-version=2016-11-01" $headers = @{ - Authorization = (Get-MSCloudLoginConnectionProfile -Workload 'PowerPlatforms').AccessToken + Authorization = (Get-MSCloudLoginConnectionProfile -Workload 'PowerPlatformREST').AccessToken } Invoke-WebRequest -Uri $url -Headers $headers -ContentType "application/json" } From 293406ccb4da2cf73c198457e2f173b733a7145f Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 13 Feb 2025 10:35:09 -0500 Subject: [PATCH 3/6] Update Microsoft365DSC.PPPowerAppPolicyUrlPatterns.Tests.ps1 --- .../Microsoft365DSC.PPPowerAppPolicyUrlPatterns.Tests.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.PPPowerAppPolicyUrlPatterns.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.PPPowerAppPolicyUrlPatterns.Tests.ps1 index 5b8c67c15d..ae2d040ab1 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.PPPowerAppPolicyUrlPatterns.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.PPPowerAppPolicyUrlPatterns.Tests.ps1 @@ -327,6 +327,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { return @{ value = @( @{ + type = 'Microsoft.BusinessAppPlatform/scopes/apiPolicies' PolicyName = "MyPolicy" properties = @{ displayName = "DSCPolicy" From 9bfa31cf97afff2e0e1d71dbf4bce22b14f8b638 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 13 Feb 2025 11:03:55 -0500 Subject: [PATCH 4/6] Release 1.25.212.2 --- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 26 +++----------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 4b22c9ecf0..f011c60ccf 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2025-02-12 +# Generated on: 2025-02-13 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.25.212.1' + ModuleVersion = '1.25.212.2' # Supported PSEditions # CompatiblePSEditions = @() @@ -149,26 +149,8 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* AADApplication - * Changing the AuthenticationBehaviors parameters to string to allow - for null values. -* AADCrossTenantAccessPolicyConfigurationDefault - * Fixes an issue with CIM class export. -* AADCrossTenantAccessPolicyConfigurationPartner - * Fixes an issue with CIM class export. - FIXES [#5711](https://github.com/microsoft/Microsoft365DSC/issues/5711) -* EXORetentionPolicyTag - * Initial release. -* EXOSmtpDaneInbound - * Updated authentication properties to align with MOF definition. - FIXES [#5709](https://github.com/microsoft/Microsoft365DSC/issues/5709) -* MISC - * PowerPlatform resource revamp to use direct REST API calls. - * Simplify export behavior for all resources and complex objects. -* DEPENDENCIES - * Removed dependency on Microsoft.PowerApps.Administration.PowerShell. - * Updated MSCloudLoginAssistant to version 1.1.37. - * Updated ReverseDSC to version 2.0.0.25.' + ReleaseNotes = '* MISC + * Fixing connection errors in Power Platforms resources.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From b9feac70ed2b179b39437d9e7c7f465e4fe79a2c Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 14 Feb 2025 07:00:09 -0500 Subject: [PATCH 5/6] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 4ca478af56..5bcbfee519 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,6 @@ additional resources, please navigate to the official web site at official YouTube channel [Microsoft365DSC](https://www.youtube.com/channel/UCveScabVT6pxzqYgGRu17iw). -## Roadmap & Backlog - -We are using Azure DevOps for project management. You can access our backlog and roadmap by clicking on the status badge below: - -[![Board Status](https://dev.azure.com/Microsoft365DSC/c730cd2b-2b5f-4af2-8bce-2b7b3ee6f69b/e58164ef-f760-40e9-bd67-893cf4938bef/_apis/work/boardbadge/84871665-8a0f-46de-8a93-c214ea36b371?columnOptions=1)](https://dev.azure.com/Microsoft365DSC/Backlog/_workitems/) - ## Branches ### master From 304b0b5cb39f06322315a8523e1d91881eef51b5 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Fri, 14 Feb 2025 07:23:55 -0500 Subject: [PATCH 6/6] Update MSFT_PPTenantSettings.psm1 --- .../MSFT_PPTenantSettings.psm1 | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 index b5b1fb2583..a2dec5d1f5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 @@ -1007,15 +1007,6 @@ function Get-M365DSCPowerPlatformTenantSettings catalogSettings = @{ powerCatalogAudienceSetting = $Parameters.PowerCatalogAudienceSetting } - governance = @{ - disableAdminDigest = $Parameters.DisableAdminDigest - disableDeveloperEnvironmentCreationByNonAdminUsers = $Parameters.DisableDeveloperEnvironmentCreationByNonAdminUsers - enableDefaultEnvironmentRouting = $Parameters.EnableDefaultEnvironmentRouting - policy = @{ - enableDesktopFlowDataPolicyManagement = [Boolean]::Parse($Parameters.EnableDesktopFlowDataPolicyManagement) - } - environmentRoutingAllMakers = $Parameters.EnvironmentRoutingAllMakers - } environments = @{ disablePreferredDataLocationForTeamsEnvironment = $Parameters.DisablePreferredDataLocationForTeamsEnvironment } @@ -1075,6 +1066,29 @@ function Get-M365DSCPowerPlatformTenantSettings } } + $governance = @{ + disableAdminDigest = $Parameters.DisableAdminDigest + disableDeveloperEnvironmentCreationByNonAdminUsers = $Parameters.DisableDeveloperEnvironmentCreationByNonAdminUsers + enableDefaultEnvironmentRouting = $Parameters.EnableDefaultEnvironmentRouting + environmentRoutingAllMakers = $Parameters.EnvironmentRoutingAllMakers + } + + if ($null -ne $EnableDesktopFlowDataPolicyManagement) + { + try + { + $policy = @{ + enableDesktopFlowDataPolicyManagement = [Boolean]::Parse($Parameters.EnableDesktopFlowDataPolicyManagement) + } + $governance.Add('policy', $policy) + } + catch + { + Write-Verbose -Message $_ + } + } + $result.powerplatform.Add('governance', $governance) + return $result }