diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d598c5..2f6e547 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,8 @@ - Added PowerShell Dsc Resource Help Files. - AccountPolicy: - Improved and updated unit tests to Pester v4 format. +- Updated SecurityPolicyResourceHelper functions to use the full path to the secedit program when invoked. + [Issue #116](https://github.com/dsccommunity/SecurityPolicyDsc/issues/116). ### Fixed diff --git a/Tests/Unit/SecurityPolicyResourceHelper.tests.ps1 b/Tests/Unit/SecurityPolicyResourceHelper.tests.ps1 index 27a1fe0..7cb36b6 100644 --- a/Tests/Unit/SecurityPolicyResourceHelper.tests.ps1 +++ b/Tests/Unit/SecurityPolicyResourceHelper.tests.ps1 @@ -43,6 +43,7 @@ InModuleScope $script:subModuleName { { ConvertTo-LocalFriendlyName -Identity 'S-1-5-32-600' -Scope 'Set' } | Should throw } } + Describe 'SecurityPolicyResourceHelper\Invoke-Secedit' { Mock Start-Process @@ -60,6 +61,7 @@ InModuleScope $script:subModuleName { Assert-MockCalled -CommandName Start-Process -Exactly 1 } } + Describe 'SecurityPolicyResourceHelper\Get-UserRightsAssignment' { BeforeAll { $ini = "$PSScriptRoot\..\TestHelpers\TestIni.txt" @@ -80,6 +82,7 @@ InModuleScope $script:subModuleName { $result.section.Key1 | Should be 'Value1' } } + Describe 'SecurityPolicyResourceHelper\Test-IdentityIsNull' { It 'Should return true when Identity is null' { $IdentityIsNull = Test-IdentityIsNull -Identity $null @@ -95,6 +98,7 @@ InModuleScope $script:subModuleName { $IdentityIsNull | Should Be $false } } + Describe 'SecurityPolicyResourceHelper\Get-SecurityPolicy' { BeforeAll { $ini = "$PSScriptRoot\..\TestHelpers\sample.inf" @@ -146,6 +150,7 @@ InModuleScope $script:subModuleName { } } + Describe 'SecurityPolicyResourceHelper\Test ConvertTo-SDDLDescriptor' { It 'Should be BA' { $identity = "BUILTIN\Administrators" diff --git a/source/Modules/SecurityPolicyResourceHelper/SecurityPolicyResourceHelper.psm1 b/source/Modules/SecurityPolicyResourceHelper/SecurityPolicyResourceHelper.psm1 index 905a29d..63a1070 100644 --- a/source/Modules/SecurityPolicyResourceHelper/SecurityPolicyResourceHelper.psm1 +++ b/source/Modules/SecurityPolicyResourceHelper/SecurityPolicyResourceHelper.psm1 @@ -97,8 +97,10 @@ function Invoke-Secedit $arguments = $arguments + " /overwrite /quiet" } + $secEditCmd = Get-Command -Name 'secedit.exe' + Write-Verbose "secedit arguments: $arguments" - Start-Process -FilePath secedit.exe -ArgumentList $arguments -RedirectStandardOutput $seceditOutput ` + Start-Process -FilePath $secEditCmd.Path -ArgumentList $arguments -RedirectStandardOutput $seceditOutput ` -NoNewWindow -Wait } @@ -138,7 +140,8 @@ function Get-SecurityPolicy Write-Debug -Message ($localizedData.EchoDebugInf -f $currentSecurityPolicyFilePath) - secedit.exe /export /cfg $currentSecurityPolicyFilePath /areas $Area | Out-Null + $secEditCmd = Get-Command -Name 'secedit.exe' + & $secEditCmd.Path /export /cfg $currentSecurityPolicyFilePath /areas $Area | Out-Null } $policyConfiguration = @{}