From e2246e95c4f11a520b9ee22fd4dd8b0961692002 Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Fri, 16 May 2025 23:11:37 +0200 Subject: [PATCH 01/12] Fix xService Get-TargetResource --- CHANGELOG.md | 6 +++ .../DSC_xServiceResource.psm1 | 51 ++++++++++++------- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e270c642..8778fc12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- xService + - Fixed user type returned by Get-TargetResource [Issue #759](https://github.com/dsccommunity/xPSDesiredStateConfiguration/issues/759) + + ## [9.2.1] - 2024-11-11 ### Fixed diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index c3c58082..64390329 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -30,12 +30,11 @@ $script:localizedData = Get-LocalizedData -DefaultUICulture 'en-US' cmdlet. .NOTES - BuiltInAccount, Credential and GroupManagedServiceAccount parameters output the user used - to run the service to the BuiltinAccount property, Evaluating if the account is a gMSA would - mean doing a call to active directory to verify, as the property returned by the ciminstance - is just a string. In a production scenario that would mean that every xService test will check - with AD every 15 minutes if the account is a gMSA. That's not desireable, so we output Credential - and GroupManagedServiceAccount without evaluating what kind of user is supplied. + Evaluating if the account is a gMSA would mean doing a call to active directory to verify, + as the property returned by the ciminstance is just a string. + In a production scenario that would mean that every xService test will check + with AD every 15 minutes if the account is a gMSA. That's not desireable, so we evaluate + what kind of user is supplied only based on the format of the string. #> function Get-TargetResource { @@ -73,24 +72,42 @@ function Get-TargetResource $startupType = ConvertTo-StartupTypeString -StartMode $serviceCimInstance.StartMode - $builtInAccount = switch ($serviceCimInstance.StartName) + $serviceAccount = switch ($serviceCimInstance.StartName) { 'NT Authority\NetworkService' { 'NetworkService'; break } 'NT Authority\LocalService' { 'LocalService'; break } default { $serviceCimInstance.StartName } } + # Evaluate user type only based on the format of the string (as stated in the note) + if (($serviceAccount -eq 'LocalSystem') -or ($serviceAccount -eq 'LocalService') -or ($serviceAccount -eq 'NetworkService')) + { + $builtInAccount = $serviceAccount + } + elseif ($serviceAccount -match '^[a-zA-Z0-9]+\\[a-zA-Z0-9]+\$$') + { + $GroupManagedServiceAccount = $serviceAccount + } + else + { + # Password cannot be null + $Password = ConvertTo-SecureString '' -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential($serviceAccount, $Password) + } + $serviceResource = @{ - Name = $Name - Ensure = 'Present' - Path = $serviceCimInstance.PathName - StartupType = $startupType - BuiltInAccount = $builtInAccount - State = $service.Status.ToString() - DisplayName = $service.DisplayName - Description = $serviceCimInstance.Description - DesktopInteract = $serviceCimInstance.DesktopInteract - Dependencies = $dependencies + Name = $Name + Ensure = 'Present' + Path = $serviceCimInstance.PathName + StartupType = $startupType + BuiltInAccount = $builtInAccount + GroupManagedServiceAccount = $GroupManagedServiceAccount + Credential = $Credential + State = $service.Status.ToString() + DisplayName = $service.DisplayName + Description = $serviceCimInstance.Description + DesktopInteract = $serviceCimInstance.DesktopInteract + Dependencies = $dependencies } } else From 4a2357d709befd12ff95ee081b176ab0b8a8f7a4 Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Mon, 26 May 2025 09:25:24 +0200 Subject: [PATCH 02/12] Fix syntax --- .../DSC_xServiceResource/DSC_xServiceResource.psm1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index 64390329..b77119b2 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -79,6 +79,11 @@ function Get-TargetResource default { $serviceCimInstance.StartName } } + # Initialize variables + $builtInAccount = $null + $GroupManagedServiceAccount = $null + $Credential = $null + # Evaluate user type only based on the format of the string (as stated in the note) if (($serviceAccount -eq 'LocalSystem') -or ($serviceAccount -eq 'LocalService') -or ($serviceAccount -eq 'NetworkService')) { @@ -91,7 +96,7 @@ function Get-TargetResource else { # Password cannot be null - $Password = ConvertTo-SecureString '' -AsPlainText -Force + $Password = ConvertTo-SecureString 'DummyPassword' -AsPlainText -Force $Credential = New-Object System.Management.Automation.PSCredential($serviceAccount, $Password) } From b193d016a18fee6341920e3cacea08828b403a6f Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Mon, 26 May 2025 12:39:45 +0200 Subject: [PATCH 03/12] Fix unit testing --- tests/Unit/DSC_xServiceResource.Tests.ps1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/Unit/DSC_xServiceResource.Tests.ps1 b/tests/Unit/DSC_xServiceResource.Tests.ps1 index da6a5642..570e2b98 100644 --- a/tests/Unit/DSC_xServiceResource.Tests.ps1 +++ b/tests/Unit/DSC_xServiceResource.Tests.ps1 @@ -271,12 +271,17 @@ try Test-GetTargetResourceDoesntThrow -GetTargetResourceParameters $getTargetResourceParameters -TestServiceCimInstance $testServiceCimInstance + # Password cannot be null + $Password = ConvertTo-SecureString 'DummyPassword' -AsPlainText -Force + # Create a PSCredential object for the custom startup account + $testServiceCredential = New-Object System.Management.Automation.PSCredential($testServiceCimInstance.StartName, $Password) + $expectedValues = @{ Name = $getTargetResourceParameters.Name Ensure = 'Present' Path = $testServiceCimInstance.PathName StartupType = $convertToStartupTypeStringResult - BuiltInAccount = $testServiceCimInstance.StartName + Credential = $testServiceCredential.Username State = $testService.Status DisplayName = $testService.DisplayName Description = $testServiceCimInstance.Description From e629048d3ca8bf00b2088ab8c4aaf24562c6f7ad Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Mon, 26 May 2025 12:41:54 +0200 Subject: [PATCH 04/12] Fix unit testing --- tests/Unit/DSC_xServiceResource.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/DSC_xServiceResource.Tests.ps1 b/tests/Unit/DSC_xServiceResource.Tests.ps1 index 570e2b98..5df76a3c 100644 --- a/tests/Unit/DSC_xServiceResource.Tests.ps1 +++ b/tests/Unit/DSC_xServiceResource.Tests.ps1 @@ -281,7 +281,7 @@ try Ensure = 'Present' Path = $testServiceCimInstance.PathName StartupType = $convertToStartupTypeStringResult - Credential = $testServiceCredential.Username + Credential = $testServiceCredential State = $testService.Status DisplayName = $testService.DisplayName Description = $testServiceCimInstance.Description From bacaeb6ada465db52ee6e0955f7960955c8a481d Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Mon, 26 May 2025 16:31:37 +0200 Subject: [PATCH 05/12] Fix unit testing --- tests/Unit/DSC_xServiceResource.Tests.ps1 | 25 +++++++++-------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/tests/Unit/DSC_xServiceResource.Tests.ps1 b/tests/Unit/DSC_xServiceResource.Tests.ps1 index 5df76a3c..7b026332 100644 --- a/tests/Unit/DSC_xServiceResource.Tests.ps1 +++ b/tests/Unit/DSC_xServiceResource.Tests.ps1 @@ -271,22 +271,17 @@ try Test-GetTargetResourceDoesntThrow -GetTargetResourceParameters $getTargetResourceParameters -TestServiceCimInstance $testServiceCimInstance - # Password cannot be null - $Password = ConvertTo-SecureString 'DummyPassword' -AsPlainText -Force - # Create a PSCredential object for the custom startup account - $testServiceCredential = New-Object System.Management.Automation.PSCredential($testServiceCimInstance.StartName, $Password) - $expectedValues = @{ - Name = $getTargetResourceParameters.Name - Ensure = 'Present' - Path = $testServiceCimInstance.PathName - StartupType = $convertToStartupTypeStringResult - Credential = $testServiceCredential - State = $testService.Status - DisplayName = $testService.DisplayName - Description = $testServiceCimInstance.Description - DesktopInteract = $testServiceCimInstance.DesktopInteract - Dependencies = [System.Object[]] $testService.ServicesDependedOn.Name + Name = $getTargetResourceParameters.Name + Ensure = 'Present' + Path = $testServiceCimInstance.PathName + StartupType = $convertToStartupTypeStringResult + Credential.Username = $testService.StartName + State = $testService.Status + DisplayName = $testService.DisplayName + Description = $testServiceCimInstance.Description + DesktopInteract = $testServiceCimInstance.DesktopInteract + Dependencies = [System.Object[]] $testService.ServicesDependedOn.Name } Test-GetTargetResourceResult -GetTargetResourceParameters $getTargetResourceParameters -ExpectedValues $expectedValues From 31e0cbe085832d48a1721d2722197986d3e4f4c4 Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Mon, 26 May 2025 21:38:41 +0200 Subject: [PATCH 06/12] fix unit testing --- tests/Unit/DSC_xServiceResource.Tests.ps1 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/Unit/DSC_xServiceResource.Tests.ps1 b/tests/Unit/DSC_xServiceResource.Tests.ps1 index 7b026332..5472e5de 100644 --- a/tests/Unit/DSC_xServiceResource.Tests.ps1 +++ b/tests/Unit/DSC_xServiceResource.Tests.ps1 @@ -272,16 +272,16 @@ try Test-GetTargetResourceDoesntThrow -GetTargetResourceParameters $getTargetResourceParameters -TestServiceCimInstance $testServiceCimInstance $expectedValues = @{ - Name = $getTargetResourceParameters.Name - Ensure = 'Present' - Path = $testServiceCimInstance.PathName - StartupType = $convertToStartupTypeStringResult - Credential.Username = $testService.StartName - State = $testService.Status - DisplayName = $testService.DisplayName - Description = $testServiceCimInstance.Description - DesktopInteract = $testServiceCimInstance.DesktopInteract - Dependencies = [System.Object[]] $testService.ServicesDependedOn.Name + Name = $getTargetResourceParameters.Name + Ensure = 'Present' + Path = $testServiceCimInstance.PathName + StartupType = $convertToStartupTypeStringResult + Credential = New-Object PSCredential $testServiceCimInstance.StartName, (ConvertTo-SecureString 'DummyPassword' -AsPlainText -Force) + State = $testService.Status + DisplayName = $testService.DisplayName + Description = $testServiceCimInstance.Description + DesktopInteract = $testServiceCimInstance.DesktopInteract + Dependencies = [System.Object[]] $testService.ServicesDependedOn.Name } Test-GetTargetResourceResult -GetTargetResourceParameters $getTargetResourceParameters -ExpectedValues $expectedValues From 75e6469ae201a25a2fe791a2ba443ceb475da68c Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Mon, 26 May 2025 22:59:14 +0200 Subject: [PATCH 07/12] Fix Test-TargetResource --- .../DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index b77119b2..6245599f 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -632,7 +632,7 @@ function Test-TargetResource { $expectedStartName = ConvertTo-StartName -Username $Credential.UserName - if ($serviceResource.BuiltInAccount -ine $expectedStartName) + if ($serviceResource.Credential.UserName -ine $expectedStartName) { Write-Verbose -Message ($script:localizedData.ServiceCredentialDoesNotMatch -f $Name, $Credential.UserName, $serviceResource.BuiltInAccount) return $false From 9e2469c9256a655d541f46c997cd0111f99da438 Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Tue, 27 May 2025 11:13:37 +0200 Subject: [PATCH 08/12] Fix check in Test-TargetResource --- .../DSC_xServiceResource/DSC_xServiceResource.psm1 | 12 ++++++++++-- .../en-US/DSC_xServiceResource.strings.psd1 | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index 6245599f..34b671aa 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -632,9 +632,17 @@ function Test-TargetResource { $expectedStartName = ConvertTo-StartName -Username $Credential.UserName - if ($serviceResource.Credential.UserName -ine $expectedStartName) + # Check that credential resource exist and that the username matches the expected start name + if ($serviceResource.Credential) { - Write-Verbose -Message ($script:localizedData.ServiceCredentialDoesNotMatch -f $Name, $Credential.UserName, $serviceResource.BuiltInAccount) + if ($serviceResource.Credential.UserName -ine $expectedStartName) + { + Write-Verbose -Message ($script:localizedData.ServiceCredentialDoesNotMatch -f $Name, $Credential.UserName, $serviceResource.Credential.UserName) + return $false + } + } else + { + Write-Verbose -Message ($script:localizedData.ServiceCredentialIsEmpty -f $Name, $Credential.UserName) return $false } } diff --git a/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 b/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 index 6bfb21e8..16c50f70 100644 --- a/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 +++ b/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 @@ -21,6 +21,7 @@ ConvertFrom-StringData @' ServiceStartupTypeDoesNotMatch = The start mode of service {0} does not match the expected start mode. ServicePropertyDoesNotMatch = The service property {0} of service {1} does not match the expected value. The expected value is {2}. The actual value is {3}. ServiceCredentialDoesNotMatch = The start name of service {0} does not match the expected username from the given credential. The expected value is {1}. The actual value is {2}. + ServiceCredentialIsEmpty = The start name of service {0} does not match the expected username from the given credential. The expected value is {1}. The actual value is empty. GroupManagedServiceCredentialDoesNotMatch = The start name of service {0} does not match the expected username from the given Group Managed Service Account. The expected value is {1}. The actual value is {2}. ServiceDeletionSucceeded = The service {0} has been successfully deleted. ServiceDeletionFailed = Failed to delete service {0}. From 1019149fd41d92d839d4c118297e517564c42a59 Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Tue, 27 May 2025 11:30:05 +0200 Subject: [PATCH 09/12] Syntax --- .../DSC_xServiceResource/DSC_xServiceResource.psm1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index 34b671aa..0e05a234 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -632,9 +632,10 @@ function Test-TargetResource { $expectedStartName = ConvertTo-StartName -Username $Credential.UserName - # Check that credential resource exist and that the username matches the expected start name + # Check that credential resource exist if ($serviceResource.Credential) { + # Check that the username matches the expected start name if ($serviceResource.Credential.UserName -ine $expectedStartName) { Write-Verbose -Message ($script:localizedData.ServiceCredentialDoesNotMatch -f $Name, $Credential.UserName, $serviceResource.Credential.UserName) From 7f4174411d4168a87186c20fc215517474ad886f Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Tue, 27 May 2025 12:09:14 +0200 Subject: [PATCH 10/12] Fix Test-TargetResource --- .../DSC_xServiceResource/DSC_xServiceResource.psm1 | 14 +++++++------- .../en-US/DSC_xServiceResource.strings.psd1 | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index 0e05a234..0343734f 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -622,9 +622,9 @@ function Test-TargetResource { $expectedStartName = ConvertTo-StartName -Username $GroupManagedServiceAccount - if ($serviceResource.BuiltInAccount -ine $expectedStartName) + if ($serviceResource.GroupManagedServiceAccount -ine $expectedStartName) { - Write-Verbose -Message ($script:localizedData.GroupManagedServiceCredentialDoesNotMatch -f $Name, $GroupManagedServiceAccount, $serviceResource.BuiltInAccount) + Write-Verbose -Message ($script:localizedData.GroupManagedServiceCredentialDoesNotMatch -f $Name, $GroupManagedServiceAccount, $serviceResource.GroupManagedServiceAccount) return $false } } @@ -633,7 +633,11 @@ function Test-TargetResource $expectedStartName = ConvertTo-StartName -Username $Credential.UserName # Check that credential resource exist - if ($serviceResource.Credential) + if ($null -eq $serviceResource.Credential) + { + Write-Verbose -Message ($script:localizedData.ServiceCredentialIsEmpty -f $Name, $Credential.UserName) + return $false + } else { # Check that the username matches the expected start name if ($serviceResource.Credential.UserName -ine $expectedStartName) @@ -641,10 +645,6 @@ function Test-TargetResource Write-Verbose -Message ($script:localizedData.ServiceCredentialDoesNotMatch -f $Name, $Credential.UserName, $serviceResource.Credential.UserName) return $false } - } else - { - Write-Verbose -Message ($script:localizedData.ServiceCredentialIsEmpty -f $Name, $Credential.UserName) - return $false } } diff --git a/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 b/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 index 16c50f70..52b5a1e7 100644 --- a/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 +++ b/source/DSCResources/DSC_xServiceResource/en-US/DSC_xServiceResource.strings.psd1 @@ -20,8 +20,8 @@ ConvertFrom-StringData @' ServiceStartupTypeMatches = The start mode of service {0} matches the expected start mode. ServiceStartupTypeDoesNotMatch = The start mode of service {0} does not match the expected start mode. ServicePropertyDoesNotMatch = The service property {0} of service {1} does not match the expected value. The expected value is {2}. The actual value is {3}. - ServiceCredentialDoesNotMatch = The start name of service {0} does not match the expected username from the given credential. The expected value is {1}. The actual value is {2}. ServiceCredentialIsEmpty = The start name of service {0} does not match the expected username from the given credential. The expected value is {1}. The actual value is empty. + ServiceCredentialDoesNotMatch = The start name of service {0} does not match the expected username from the given credential. The expected value is {1}. The actual value is {2}. GroupManagedServiceCredentialDoesNotMatch = The start name of service {0} does not match the expected username from the given Group Managed Service Account. The expected value is {1}. The actual value is {2}. ServiceDeletionSucceeded = The service {0} has been successfully deleted. ServiceDeletionFailed = Failed to delete service {0}. From a91b6ba85471b9fe646e226b946d600cf9194ce8 Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Tue, 27 May 2025 13:39:31 +0200 Subject: [PATCH 11/12] Fix regex to match gMSA --- .../DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 index 0343734f..e9142e9c 100644 --- a/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 +++ b/source/DSCResources/DSC_xServiceResource/DSC_xServiceResource.psm1 @@ -89,7 +89,7 @@ function Get-TargetResource { $builtInAccount = $serviceAccount } - elseif ($serviceAccount -match '^[a-zA-Z0-9]+\\[a-zA-Z0-9]+\$$') + elseif ($serviceAccount -match '^[\w-]+\\[\w-]+\$$') { $GroupManagedServiceAccount = $serviceAccount } From 880fcdd03b67612969fd3285485c6e605366f06c Mon Sep 17 00:00:00 2001 From: Alexandre JARDON <28548335+webalexeu@users.noreply.github.com> Date: Tue, 27 May 2025 15:27:39 +0200 Subject: [PATCH 12/12] fix unit testing --- tests/Unit/DSC_xServiceResource.Tests.ps1 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Unit/DSC_xServiceResource.Tests.ps1 b/tests/Unit/DSC_xServiceResource.Tests.ps1 index 5472e5de..1769b43b 100644 --- a/tests/Unit/DSC_xServiceResource.Tests.ps1 +++ b/tests/Unit/DSC_xServiceResource.Tests.ps1 @@ -1446,7 +1446,7 @@ try Name = $script:testServiceName Ensure = 'Present' State = 'Running' - BuiltInAccount = $script:testCredential1.UserName + Credential = $script:testCredential1 DisplayName = 'TestDisplayName' Description = 'Test service description' Dependencies = @( 'TestServiceDependency1', 'TestServiceDependency2' ) @@ -1678,13 +1678,13 @@ try } $serviceResourceWithGroupManagedServiceAccount = @{ - Name = $script:testServiceName - Ensure = 'Present' - State = 'Running' - BuiltInAccount = $script:gMSAUser1 - DisplayName = 'TestDisplayName' - Description = 'Test service description' - Dependencies = @( 'TestServiceDependency1', 'TestServiceDependency2' ) + Name = $script:testServiceName + Ensure = 'Present' + State = 'Running' + GroupManagedServiceAccount = $script:gMSAUser1 + DisplayName = 'TestDisplayName' + Description = 'Test service description' + Dependencies = @( 'TestServiceDependency1', 'TestServiceDependency2' ) } Mock -CommandName 'Get-TargetResource' -MockWith { return $serviceResourceWithGroupManagedServiceAccount }