Skip to content

v0.12.0

Latest

Choose a tag to compare

@dscbot dscbot released this 24 Feb 09:01
6a7e3fd

[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.