Skip to content

Commit

Permalink
Merge pull request #5733 from microsoft/Dev
Browse files Browse the repository at this point in the history
Release 1.25.205.1
  • Loading branch information
NikCharlebois authored Feb 6, 2025
2 parents 8d87567 + c39a6db commit c3b77a5
Show file tree
Hide file tree
Showing 61 changed files with 1,629 additions and 540 deletions.
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Change log for Microsoft365DSC

# 1.25.205.1

* AADApplication
* Refactored logic for CIM Instance evaluation in Test-TargetResource.
* AADConditionalAccessPolicy
* Changed the InsiderRiskTypes property to a string array.
* AADConnectorGroupApplicationProxy
* Fixes an issue where the Get-TargetResource was not able to retrieve
instances by names.
* Refactored logic for CIM Instance evaluation in Test-TargetResource.
* AADServicePrincipal
* Fixes comparison of assigned roles for null values.
FIXES [#5717](https://github.com/microsoft/Microsoft365DSC/issues/5717)
* CommerceSelfServicePurchase
* Initial release.
* SCPolicyConfig
* Fixes and issue where Get-TargetResource was returning an empty array
instead of a null value when no values were defined.
* SCRoleGroupMember
* Error handling if the Members parameter is omitted.
* MISC
* Changed the CIMInstance logic of various resources to us common logic.
* Added support for specifying a proxy in Update-M365DSCModule.
* DEPENDENCIES
* Updated MSCloudLoginAssistant to version 1.1.36.

# 1.25.129.3

* EXOMigrationEndpoint
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -358,32 +358,45 @@ function Test-TargetResource

$CurrentValues = Get-TargetResource @PSBoundParameters
$ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone()
$testTargetResource = $true

Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)"
Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)"
$testResult = $true
foreach ($reviewer in $Reviewers)
#Compare Cim instances
foreach ($key in $PSBoundParameters.Keys)
{
$currentEquivalent = $CurrentValues.Reviewers | Where-Object -FilterScript { $_.ReviewerId -eq $reviewer.ReviewerId -and $_.ReviewerType -eq $reviewer.ReviewerType }
if ($null -eq $currentEquivalent)
{
$testResult = $false
Write-Verbose -Message "Couldn't find current reviewer {$($reviewer.ReviewerId)}"
}
$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)
{
Write-Verbose "TestResult returned False for $source"
$testTargetResource = $false
}
else
{
$ValuesToCheck.Remove($key) | Out-Null
}
}
}

if ($testResult)
$testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues `
-Source $($MyInvocation.MyCommand.Source) `
-DesiredValues $PSBoundParameters `
-ValuesToCheck $ValuesToCheck.Keys

if (-not $TestResult)
{
$ValuesToCheck.Remove('Reviewers') | Out-Null
$testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues `
-Source $($MyInvocation.MyCommand.Source) `
-DesiredValues $PSBoundParameters `
-ValuesToCheck $ValuesToCheck.Keys
$testTargetResource = $false
}
Write-Verbose -Message "Test-TargetResource returned $testTargetResource"

Write-Verbose -Message "Test-TargetResource returned $testResult"

return $testResult
return $testTargetResource
}

function Export-TargetResource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -455,11 +455,15 @@ function Get-TargetResource

# singleSignOnSettings
$singleSignOnValues = @{
kerberosSignOnSettings = @{
singleSignOnMode = $oppInfo.singleSignOnSettings.singleSignOnMode
}
if ($oppInfo.singleSignOnMode.kerberosSignOnSettings)
{
$kerberosSignOnSettings = @{
kerberosServicePrincipalName = $oppInfo.singleSignOnSettings.kerberosSignOnSettings.kerberosServicePrincipalName
kerberosSignOnMappingAttributeType = $oppInfo.singleSignOnSettings.kerberosSignOnSettings.kerberosSignOnMappingAttributeType
}
singleSignOnMode = $oppInfo.singleSignOnSettings.singleSignOnMode
$singleSignOnValues.Add('kerberosSignOnSettings', $kerberosSignOnSettings)
}
$onPremisesPublishingValue.Add('singleSignOnSettings', $singleSignOnValues)
}
Expand Down Expand Up @@ -1415,58 +1419,15 @@ function Test-TargetResource
Write-Verbose -Message 'Testing configuration of AzureAD Application'

$CurrentValues = Get-TargetResource @PSBoundParameters

if ($CurrentValues.Permissions.Length -gt 0 -and $null -ne $CurrentValues.Permissions.Name -and `
$null -ne $Permissions)
{
$differenceObject = $Permissions.Name
if ($null -eq $differenceObject)
{
$differenceObject = @()
}
$permissionsDiff = Compare-Object -ReferenceObject ($CurrentValues.Permissions.Name) -DifferenceObject $differenceObject
$driftedParams = @{}
if ($null -ne $permissionsDiff)
{
Write-Verbose -Message "Permissions differ: $($permissionsDiff | Out-String)"
Write-Verbose -Message "Test-TargetResource returned $false"
$EventValue = "<CurrentValue>$($CurrentValues.Permissions.Name)</CurrentValue>"
$EventValue += "<DesiredValue>$($Permissions.Name)</DesiredValue>"
$driftedParams.Add('Permissions', $EventValue)
}
else
{
Write-Verbose -Message 'Permissions for Azure AD Application are the same'
}
}
else
{
$driftedParams = @{}
if ($Permissions.Length -gt 0)
{
Write-Verbose -Message 'No Permissions exist for the current Azure AD App, but permissions were specified for desired state'
Write-Verbose -Message "Test-TargetResource returned $false"

$EventValue = "<CurrentValue>`$null</CurrentValue>"
$EventValue += "<DesiredValue>$($Permissions.Name)</DesiredValue>"
$driftedParams.Add('Permissions', $EventValue)
}
else
{
Write-Verbose -Message 'No Permissions exist for the current Azure AD App and no permissions were specified'
}
}

$ValuesToCheck = ([Hashtable]$PSBoundParameters).clone()

$testTargetResource = $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*' -and $source -notlike '*Permission*')
if ($null -ne $source -and $source.GetType().Name -like '*CimInstance*')
{
$testResult = Compare-M365DSCComplexObject `
-Source ($source) `
Expand All @@ -1489,7 +1450,6 @@ function Test-TargetResource

$ValuesToCheck.Remove('ObjectId') | Out-Null
$ValuesToCheck.Remove('AppId') | Out-Null
$ValuesToCheck.Remove('Permissions') | Out-Null

$TestResult = Test-M365DSCParameterState -CurrentValues $CurrentValues `
-Source $($MyInvocation.MyCommand.Source) `
Expand Down Expand Up @@ -1598,9 +1558,29 @@ function Export-TargetResource
{
$Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode `
-Results $Results

if ($Results.Permissions.Count -gt 0)
{
$Results.Permissions = Get-M365DSCAzureADAppPermissionsAsString $Results.Permissions
$complexMapping = @(
@{
Name = 'Permissions'
CimInstanceName = 'MSFT_AADApplicationPermission'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.Permissions `
-CIMInstanceName 'MSFT_AADApplicationPermission' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.Permissions = $complexTypeStringResult
}
else
{
$Results.Remove('Permissions') | Out-Null
}
}

if ($null -ne $Results.Api)
Expand Down Expand Up @@ -1733,7 +1713,6 @@ function Export-TargetResource
}
}


if ($null -ne $Results.KeyCredentials)
{
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
Expand Down Expand Up @@ -1793,16 +1772,20 @@ function Export-TargetResource
if ($null -ne $Results.Permissions)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'Permissions'
-ParameterName 'Permissions' `
-IsCIMArray:$True
}

if ($Results.OptionalClaims)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'OptionalClaims' -IsCIMArray:$False
}

if ($Results.OnPremisesPublishing)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'OnPremisesPublishing' -IsCIMArray:$False
}

if ($Results.AuthenticationBehaviors)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'AuthenticationBehaviors' -IsCIMArray:$False
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -508,6 +508,7 @@ function Test-TargetResource
$CurrentValues = Get-TargetResource @PSBoundParameters
$ValuesToCheck = ([Hashtable]$PSBoundParameters).clone()
$testResult = $true
$testTargetResource = $true

#Compare Cim instances
foreach ($key in $PSBoundParameters.Keys)
Expand All @@ -518,7 +519,7 @@ function Test-TargetResource
{
$source = Get-M365DSCDRGComplexTypeToHashtable -ComplexObject $source

$testResult = Compare-M365DSCComplexObject `
$testTargetResource = Compare-M365DSCComplexObject `
-Source ($source) `
-Target ($target)

Expand All @@ -537,17 +538,17 @@ function Test-TargetResource
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

if (-not $TestResult)
{
$testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues `
-Source $($MyInvocation.MyCommand.Source) `
-DesiredValues $PSBoundParameters `
-ValuesToCheck $ValuesToCheck.Keys
$testTargetResource = $false
}

Write-Verbose -Message "Test-TargetResource returned $testResult"

return $testResult
Write-Verbose -Message "Test-TargetResource returned $testTargetResource"
return $testTargetResource
}

function Export-TargetResource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -789,6 +789,7 @@ function Test-TargetResource
$CurrentValues = Get-TargetResource @PSBoundParameters
$ValuesToCheck = ([Hashtable]$PSBoundParameters).clone()
$testResult = $true
$testTargetResource = $true

#Compare Cim instances
foreach ($key in $PSBoundParameters.Keys)
Expand All @@ -805,7 +806,7 @@ function Test-TargetResource

if (-Not $testResult)
{
$testResult = $false
$testTargetResource = $false
break
}

Expand All @@ -818,17 +819,18 @@ function Test-TargetResource
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

if (-not $TestResult)
{
$testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues `
-Source $($MyInvocation.MyCommand.Source) `
-DesiredValues $PSBoundParameters `
-ValuesToCheck $ValuesToCheck.Keys
$testTargetResource = $false
}
Write-Verbose -Message "Test-TargetResource returned $testTargetResource"

Write-Verbose -Message "Test-TargetResource returned $testResult"

return $testResult
return $testTargetResource
}

function Export-TargetResource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ function Test-TargetResource
$CurrentValues = Get-TargetResource @PSBoundParameters
$ValuesToCheck = ([Hashtable]$PSBoundParameters).clone()
$testResult = $true
$testTargetResource = $true

#Compare Cim instances
foreach ($key in $PSBoundParameters.Keys)
Expand All @@ -469,7 +470,7 @@ function Test-TargetResource

if (-Not $testResult)
{
$testResult = $false
$testTargetResource = $false
break
}

Expand All @@ -482,17 +483,18 @@ function Test-TargetResource
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

if (-not $TestResult)
{
$testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues `
-Source $($MyInvocation.MyCommand.Source) `
-DesiredValues $PSBoundParameters `
-ValuesToCheck $ValuesToCheck.Keys
$testTargetResource = $false
}
Write-Verbose -Message "Test-TargetResource returned $testTargetResource"

Write-Verbose -Message "Test-TargetResource returned $testResult"

return $testResult
return $testTargetResource
}

function Export-TargetResource
Expand Down
Loading

0 comments on commit c3b77a5

Please sign in to comment.