CommonTasks.psd1

@{
    RootModule        = 'CommonTasks.psm1'
    ModuleVersion     = '0.12.0'
    GUID              = '63e8bf79-62d3-4249-8fe6-9a766fbe8481'
    Author            = 'DSC Community'
    CompanyName       = 'DSC Community'
    Copyright         = 'Copyright the DSC Community contributors. All rights reserved.'
    Description       = 'DSC composite resource for https://github.com/dsccommunity/DscWorkshop'
    PowerShellVersion = '5.1'
    FunctionsToExport = '*'
    CmdletsToExport   = '*'
    VariablesToExport = '*'
    AliasesToExport   = '*'

    PrivateData       = @{

        PSData = @{
            Prerelease   = ''
            Tags         = @('DesiredStateConfiguration', 'DSC', 'DSCResource')
            LicenseUri   = 'https://github.com/dsccommunity/CommonTasks/blob/main/LICENSE'
            ProjectUri   = 'https://github.com/dsccommunity/CommonTasks'
            IconUri      = 'https://dsccommunity.org/images/DSC_Logo_300p.png'
            ReleaseNotes = '## [0.12.0] - 2026-02-24
 
### 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.
 
'

        }
    }
}