You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[v0.12.0]
Changed
Documentation:
Added meaningful abstracts and "When to use" guidance sections to all 157
composite resource documentation files, replacing placeholder (###TBD###)
and incorrect descriptions.
Audited all parameter tables against the actual .schema.psm1 files and
fixed ~103 issues across ~73 resources: wrong Mandatory/Key attributes,
wrong DataTypes, missing parameters, empty parameter tables, copy-paste
description errors, typos (Enure, Booelan, Stringp[]), and obsolete
parameters (e.g. DnsServerSettings — 39 added, 19 removed).
Added "See also" cross-reference sections to 132 documentation files,
linking related resources within the same family (AD, DNS, SQL, Exchange,
SharePoint, DHCP, RemoteDesktop, etc.).
Populated missing sub-parameter detail tables for Hashtable[] parameters
in RemoteDesktopDeployment, RemoteDesktopCollections, SharePointSetup,
and OfficeOnlineServerSetup.
Added documentation links to ExchangeProvisioning, ExchangeConfiguration, and ExchangeDagProvisioning.
Expanded the YAML example in OfficeOnlineServerFarmConfig from 2 to 12
properties.
Removed leftover developer note from AddsDomainController
(InstallationMediaPath).
Added YAML references and examples for DfsReplicationGroupConnections, DfsReplicationGroupMembers, DfsReplicationGroupMemberships, DnsSuffixes, RemoteDesktopServers, and RenameNetworkAdapters.
Updated test YAML assets for DscDiagnostic and DscPullServer.
Updated MmaDsc from 1.3.0 to 1.4.1.
Fixed
DSC compilation errors were silently swallowed. Get-DscResource simply excluded
broken resources without reporting why, so the Pester tests never ran for
them — the only symptom was an unhelpful "Expected 1, but got 2" count mismatch.
DscResources.Tests.ps1 — Changed test case discovery to enumerate DSCResources
folders instead of relying on Get-DscResource output. This ensures every resource
gets a test case even if it fails to load, and the actual compilation step in
PS 5.1 surfaces the real error.
CompileDscConfiguration.ps1 — Wrapped the Invoke-Expression (configuration
definition)in its own try/catch and collected all errors from $Error in chronological
order. If the configuration function isn't created, the full error chain is thrown —
root cause first. This generically reports any error (invalid properties, missing
modules, syntax errors, etc.) without needing error-type-specific detection.
Performance improvement
The speedup comes from compiling all DSC resources in a single powershell.exe
process - instead of spawning a separate process per resource. The expensive
one-time initialization (module imports, New-DatumStructure,
Initialize-DscResourceMetaInfo) now runs only once. With more resources, the savings
scale linearly — each additional resource adds only its compilation time rather than
~45s of setup overhead.
PowerShellGet 2.2.5 exists in both RequiredModules and
C:\Program Files\WindowsPowerShell\Modules. When DSC scans all paths on PSModulePath,
it finds duplicate MOF schema definitions (MSFT_PSModule, MSFT_PSRepository) and emits
Write-Error for each — ugly but non-fatal.
Wrapped Get-DscResource and Initialize-DscResourceMetaInfo calls in try/catch
with -ErrorAction SilentlyContinue 2>$null to suppress both terminating exceptions
(e.g. empty PSModulePath entries) and non-terminating Write-Error output from the
duplicate CIM class detections. This was done in both DscResources.Tests.ps1 and
CompileDscConfigurations.ps1.