Azure / Azure/GuestConfiguration

GuestConfiguration errors out if the generated MOF filename has periods in the filename before the '.mof'

Open
#296 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
PowerShell
Stars
8
Forks
13
PR merge metrics
No merged PRs in 30d

Description

#### Details of the scenario you tried and the problem that is occurring
The GuestConfiguration module errors out if the guest configuration package filename specified to `New-GuestConfigurationPackage` (by the `Name` parameter) includes periods in the package name. When the Guest Configuration package contains periods in the package name then the MOF file inside of the ZIP also includes periods in the filename, and when attempting to use the package with the `Get-GuestConfigurationPackageComplianceStatus` command , Guest Configuration mishandles this and tries to find the MOF using the wrong path.

This is particularly problematic because the guidance found here specifically suggests a package naming convention that will lead to users encountering this error condition: https://learn.microsoft.com/en-us/azure/governance/machine-configuration/how-to/create-policy-definition?source=recommendations#policy-lifecycle

#### Verbose logs showing the problem
```
Error: DSC document '/home/myaccount/.local/share/powershell/Modules/GuestConfiguration/4.5.0/gcworker/packages/UbuntuServer-20-04-LTS-CISv201-Section1-AuditAndSet-0.1.4/UbuntuServer-20-04-LTS-CISv201-Section1-AuditAndSet-0.1.mof' doesn't exist in assignment package.
Error: Metaconfig document '/home/myaccount/.local/share/powershell/Modules/GuestConfiguration/4.5.0/gcworker/packages/UbuntuServer-20-04-LTS-CISv201-Section1-AuditAndSet-0.1.4/UbuntuServer-20-04-LTS-CISv201-Section1-AuditAndSet-0.1.metaconfig.json' doesn't exist in assignment package.
Error: Failed to Run Consistency for 'UbuntuServer-20-04-LTS-CISv201-Section1-AuditAndSet-0.1.4' Error : Current configuration does not exist. Execute Start-DscConfiguration command with -Path parameter to specify a configuration file and create a current configuration first.

Write-Error: Job 29cd2220-d307-48a9-9123-267071dd52e6 : MIResult: 6 Error Message: Current configuration does not exist. Execute Start-DscConfiguration command with -Path parameter to specify a configuration file and create a current configuration
first. Message ID: OMI:MI_Result:6 Error Category: 0 Error Code: 1 Error Type:
```

#### Suggested solution to the issue
It looks like the GuestConfiguration code is making a bad assumption regarding periods being in the filename, and parsing based on that bad assumption. I assume the related code for parsing the path of the MOF needs revising.

#### The DSC configuration that is used to reproduce the issue (if applicable)
n/a - this issue is not configuration-dependent

#### The operating system the target node is running
Ubuntu Server 18.04 LTS

#### Version and build of PowerShell the target node is running
7.3.10 (7.4+ doesn't seem to work with GuestConfiguration, so we have intentionally avoided upgrading)

#### Version of the module that was used
4.5.0

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.