diff --git a/CHANGELOG.md b/CHANGELOG.md index f4c70655..e98c94f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- xGroup + - Fixed a bug where the get resource would fail if group members is empty [Issue #772](https://github.com/dsccommunity/xPSDesiredStateConfiguration/issues/772) + ## [9.2.0] - 2024-10-15 ### Fixed diff --git a/source/DSCResources/DSC_xGroupResource/DSC_xGroupResource.psm1 b/source/DSCResources/DSC_xGroupResource/DSC_xGroupResource.psm1 index ca308fd5..dff020f7 100644 --- a/source/DSCResources/DSC_xGroupResource/DSC_xGroupResource.psm1 +++ b/source/DSCResources/DSC_xGroupResource/DSC_xGroupResource.psm1 @@ -383,13 +383,8 @@ function Get-TargetResourceOnFullSKU $null = $disposables.Add($group) # The group was found. Find the group members. - $members = Get-MembersOnFullSKU -Group $group -PrincipalContextCache $principalContextCache ` - -Credential $Credential -Disposables $disposables - - if ($members -is [System.String]) - { - $members = @($members) - } + [System.String[]] $members = @(Get-MembersOnFullSKU -Group $group -PrincipalContextCache $principalContextCache ` + -Credential $Credential -Disposables $disposables) return @{ GroupName = $group.Name @@ -459,12 +454,7 @@ function Get-TargetResourceOnNanoServer } # The group was found. Find the group members. - $members = Get-MembersOnNanoServer -Group $group - - if ($members -is [System.String]) - { - $members = @($members) - } + [System.String[]] $members = @(Get-MembersOnNanoServer -Group $group) return @{ GroupName = $group.Name diff --git a/tests/Unit/DSC_xGroupResource.Tests.ps1 b/tests/Unit/DSC_xGroupResource.Tests.ps1 index 2ea093ae..e662a3f7 100644 --- a/tests/Unit/DSC_xGroupResource.Tests.ps1 +++ b/tests/Unit/DSC_xGroupResource.Tests.ps1 @@ -944,7 +944,8 @@ try $getTargetResourceResult.GroupName | Should -Be $script:testGroupName $getTargetResourceResult.Ensure | Should -Be 'Present' $getTargetResourceResult.Description | Should -Be $script:testGroupDescription - $getTargetResourceResult.Members | Should -Be $null + $getTargetResourceResult.Members -is [System.String[]] | Should -BeTrue + $getTargetResourceResult.Members.Count | Should -Be 0 } It 'Should return correct hashtable values when Get-Group returns a valid, existing group with a single member' { @@ -965,7 +966,8 @@ try $getTargetResourceResult.Ensure | Should -Be 'Present' $getTargetResourceResult.Description | Should -Be $script:testGroupDescription $getTargetResourceResult.Members | Should -Be $testMembersSingle - $getTargetResourceResult.Members -is [System.Object[]] | Should -BeTrue + $getTargetResourceResult.Members -is [System.String[]] | Should -BeTrue + $getTargetResourceResult.Members.Count | Should -Be 1 } It 'Should return correct hashtable values when Get-Group returns a valid, existing group with multiple members' { @@ -986,6 +988,8 @@ try $getTargetResourceResult.Ensure | Should -Be 'Present' $getTargetResourceResult.Description | Should -Be $script:testGroupDescription $getTargetResourceResult.Members | Should -Be $testMembersMultiple + $getTargetResourceResult.Members -is [System.String[]] | Should -BeTrue + $getTargetResourceResult.Members.Count | Should -BeGreaterThan 1 } }