dsccommunity / dsccommunity/ComputerManagementDsc
8.4.0 and 8.5.0 : package doesn't idempotently handle uninstall; executionpolicy issues.
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 338
- Forks
- 80
- PR merge metrics
- No merged PRs in 30d
Description
Details of the scenario you tried and the problem that is occurring
In 8.5.0, powershellexecutionpolicy doesn't seem to work at all.
I found this, because in 8.4.0, there's an idempotency bug in which package when told to ensure something is Absent, will crash if it's absent. That may or may not be present in 8.5.0 as well, but my code didn't get that far in 8.5.0, I had to go back to 8.2.0.
Verbose logs showing the problem
For the package issue:
PowerShell DSC resource DSC_WindowsCapability failed to execute
Test-TargetResource functionality with error message: Specified Windows Capability
'OpenSSH.Server~~~~0.0.1.0' not found.
Sure, not found... but I'm asking it to, ya know, not be there, so we're good?
And ftr:
> Get-WindowsCapability -Online | where {$_.Name -like '*SSH*'}
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
Suggested solution to the issue
- package should be idempotent
- powershellexecutionpolicy should work
The DSC configuration that is used to reproduce the issue (as detailed as possible)
I'm using DSC primarily from Chef. I had originally thought this was a chef bug and filed one, but then I realized it was specific to ComputerManagementDsc 8.4.0 / 8.5.0 - going back to 8.2.0 solved the problem. Below is the relevant chef code, but feel free to give me things to run for testing and I will be happy to do so.
This fails in 8.5.0 for me
dsc_resource 'set execution policy' do
resource :powershellexecutionpolicy
module_name 'ComputerManagementDsc'
property :executionpolicyscope, 'LocalMachine'
property :executionpolicy, 'RemoteSigned'
end
This fails in 8.4.0 and I expect fails in 8.5.0 but I can't test:
dsc_resource 'uninstall ssh-server' do
resource :windowscapability
module_name 'ComputerManagementDsc'
property :name, 'OpenSSH.Server~~~~0.0.1.0'
property :ensure, 'Absent'
notifies :stop, 'service[ssh]', :before
end
The operating system the target node is running
OsName : Microsoft Windows 10 Pro
OsOperatingSystemSKU : 48
OsArchitecture : 64-bit
WindowsVersion : 2009
WindowsBuildLabEx : 19041.1.amd64fre.vb_release.191206-1406
OsLanguage : en-US
OsMuiLanguages : {en-US}
Version and build of PowerShell the target node is running
Name Value
---- -----
PSVersion 5.1.19041.1237
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1237
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Version of the DSC module that was used ('dev' if using current dev branch)
8.4.0 / 8.5.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing both reports through the powershellexecutionpolicy and windowscapability resources on the stated Windows and PowerShell versions. Inspect DSC_WindowsCapability Test-TargetResource and the package handling for an absent capability, then verify that an absent OpenSSH.Server capability remains successful and that the execution policy configuration completes as requested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell
- Domain
- devops, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100