SqlServerDsc.psd1
|
@{ # Script module or binary module file associated with this manifest. RootModule = 'SqlServerDsc.psm1' # Version number of this module. ModuleVersion = '17.4.0' # ID used to uniquely identify this module GUID = '693ee082-ed36-45a7-b490-88b07c86b42f' # Author of this module Author = 'DSC Community' # Company or vendor of this module CompanyName = 'DSC Community' # Copyright statement for this module Copyright = 'Copyright the DSC Community contributors. All rights reserved.' # Description of the functionality provided by this module Description = 'This module contains commands and DSC resources for deployment and configuration of Microsoft SQL Server, SQL Server Reporting Services and Power BI Report Server.' # Minimum version of the Windows PowerShell engine required by this module PowerShellVersion = '5.0' # Minimum version of the common language runtime (CLR) required by this module CLRVersion = '4.0' # Functions to export from this module FunctionsToExport = @('Add-SqlDscFileGroup','Add-SqlDscNode','Add-SqlDscRSUrlReservation','Add-SqlDscTraceFlag','Assert-SqlDscAgentOperator','Assert-SqlDscLogin','Backup-SqlDscDatabase','Complete-SqlDscFailoverCluster','Complete-SqlDscImage','Connect-SqlDscDatabaseEngine','ConvertFrom-SqlDscDatabasePermission','ConvertFrom-SqlDscServerPermission','ConvertTo-SqlDscDatabasePermission','ConvertTo-SqlDscDataFile','ConvertTo-SqlDscEditionName','ConvertTo-SqlDscFileGroup','ConvertTo-SqlDscServerPermission','Deny-SqlDscServerPermission','Disable-SqlDscAgentOperator','Disable-SqlDscAudit','Disable-SqlDscDatabaseSnapshotIsolation','Disable-SqlDscLogin','Disable-SqlDscRsSecureConnection','Disconnect-SqlDscDatabaseEngine','Enable-SqlDscAgentOperator','Enable-SqlDscAudit','Enable-SqlDscDatabaseSnapshotIsolation','Enable-SqlDscLogin','Enable-SqlDscRsSecureConnection','Get-SqlDscAgentAlert','Get-SqlDscAgentOperator','Get-SqlDscAudit','Get-SqlDscBackupFileList','Get-SqlDscCompatibilityLevel','Get-SqlDscConfigurationOption','Get-SqlDscDatabase','Get-SqlDscDatabasePermission','Get-SqlDscDateTime','Get-SqlDscInstalledInstance','Get-SqlDscLogin','Get-SqlDscManagedComputer','Get-SqlDscManagedComputerInstance','Get-SqlDscManagedComputerService','Get-SqlDscPreferredModule','Get-SqlDscRole','Get-SqlDscRSConfiguration','Get-SqlDscRSPackage','Get-SqlDscRSSetupConfiguration','Get-SqlDscRSUrlReservation','Get-SqlDscRSVersion','Get-SqlDscRSWebPortalApplicationName','Get-SqlDscServerPermission','Get-SqlDscServerProtocol','Get-SqlDscServerProtocolName','Get-SqlDscServerProtocolTcpIp','Get-SqlDscSetupLog','Get-SqlDscStartupParameter','Get-SqlDscTraceFlag','Grant-SqlDscServerPermission','Import-SqlDscPreferredModule','Initialize-SqlDscFailoverCluster','Initialize-SqlDscImage','Initialize-SqlDscRebuildDatabase','Install-SqlDscFailoverCluster','Install-SqlDscPowerBIReportServer','Install-SqlDscReportingService','Install-SqlDscServer','Invoke-SqlDscQuery','Invoke-SqlDscScalarQuery','New-SqlDscAgentAlert','New-SqlDscAgentOperator','New-SqlDscAudit','New-SqlDscDatabase','New-SqlDscDatabaseSnapshot','New-SqlDscDataFile','New-SqlDscFileGroup','New-SqlDscLogin','New-SqlDscRole','Remove-SqlDscAgentAlert','Remove-SqlDscAgentOperator','Remove-SqlDscAudit','Remove-SqlDscDatabase','Remove-SqlDscLogin','Remove-SqlDscNode','Remove-SqlDscRole','Remove-SqlDscRSUrlReservation','Remove-SqlDscTraceFlag','Repair-SqlDscPowerBIReportServer','Repair-SqlDscReportingService','Repair-SqlDscServer','Request-SqlDscRSDatabaseRightsScript','Request-SqlDscRSDatabaseScript','Restore-SqlDscDatabase','Resume-SqlDscDatabase','Revoke-SqlDscServerPermission','Save-SqlDscSqlServerMediaFile','Set-SqlDscAgentAlert','Set-SqlDscAgentOperator','Set-SqlDscAudit','Set-SqlDscConfigurationOption','Set-SqlDscDatabaseDefault','Set-SqlDscDatabaseOwner','Set-SqlDscDatabasePermission','Set-SqlDscDatabaseProperty','Set-SqlDscRSDatabaseConnection','Set-SqlDscRSUrlReservation','Set-SqlDscRSVirtualDirectory','Set-SqlDscServerPermission','Set-SqlDscStartupParameter','Set-SqlDscTraceFlag','Suspend-SqlDscDatabase','Test-SqlDscAgentAlertProperty','Test-SqlDscBackupFile','Test-SqlDscConfigurationOption','Test-SqlDscDatabaseProperty','Test-SqlDscIsAgentAlert','Test-SqlDscIsAgentOperator','Test-SqlDscIsDatabase','Test-SqlDscIsDatabasePrincipal','Test-SqlDscIsLogin','Test-SqlDscIsLoginEnabled','Test-SqlDscIsRole','Test-SqlDscIsSupportedFeature','Test-SqlDscRSInstalled','Test-SqlDscServerPermission','Uninstall-SqlDscPowerBIReportServer','Uninstall-SqlDscReportingService','Uninstall-SqlDscServer','Update-SqlDscServer','Update-SqlDscServerEdition') # Cmdlets to export from this module # Use wildcard to avoid PSDesiredStateConfiguration 2.0.7 filtering class-based DSC resources (see #2109). CmdletsToExport = '*' # Variables to export from this module VariablesToExport = @() # Aliases to export from this module AliasesToExport = @('Disable-SqlDscRSTls','Enable-SqlDscRSTls','Install-SqlDscBIReportServer','Install-SqlDscPBIReportServer','Repair-SqlDscBIReportServer','Repair-SqlDscPBIReportServer','Test-SqlDscAgentAlert','Uninstall-SqlDscBIReportServer','Uninstall-SqlDscPBIReportServer') DscResourcesToExport = @('SqlAgentAlert','SqlAudit','SqlDatabase','SqlDatabasePermission','SqlPermission','SqlRSSetup','SqlAG','SqlAGDatabase','SqlAgentFailsafe','SqlAgentOperator','SqlAGListener','SqlAGReplica','SqlAlias','SqlAlwaysOnService','SqlConfiguration','SqlDatabaseDefaultLocation','SqlDatabaseMail','SqlDatabaseObjectPermission','SqlDatabaseRole','SqlDatabaseUser','SqlEndpoint','SqlEndpointPermission','SqlLogin','SqlMaxDop','SqlMemory','SqlProtocol','SqlProtocolTcpIp','SqlReplication','SqlRole','SqlRS','SqlScript','SqlScriptQuery','SqlSecureConnection','SqlServiceAccount','SqlSetup','SqlTraceFlag','SqlWaitForAG','SqlWindowsFirewall') RequiredAssemblies = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. PrivateData = @{ PSData = @{ # Set to a prerelease string value if the release should be a prerelease. Prerelease = 'preview0021' # Tags applied to this module. These help with module discovery in online galleries. Tags = @('DesiredStateConfiguration', 'DSC', 'DSCResourceKit', 'DSCResource', 'SqlServer', 'PowerBI', 'ReportingServices', 'ReportServer') # A URL to the license for this module. LicenseUri = 'https://github.com/dsccommunity/SqlServerDsc/blob/main/LICENSE' # A URL to the main website for this project. ProjectUri = 'https://github.com/dsccommunity/SqlServerDsc' # A URL to an icon representing this module. IconUri = 'https://dsccommunity.org/images/DSC_Logo_300p.png' # ReleaseNotes of this module ReleaseNotes = '## [17.4.0-preview0021] - 2026-01-05 ### Added - Added public command `Request-SqlDscRSDatabaseScript` to generate T-SQL scripts for creating report server databases. Wraps the `GenerateDatabaseCreationScript` CIM method and supports configuring database name, language (LCID), and SharePoint mode ([issue #2017](https://github.com/dsccommunity/SqlServerDsc/issues/2017)). - Added public command `Request-SqlDscRSDatabaseRightsScript` to generate T-SQL scripts for granting permissions on report server databases. Wraps the `GenerateDatabaseRightsScript` CIM method and supports configuring database name, user name, remote connections, and Windows/SQL authentication types ([issue #2019](https://github.com/dsccommunity/SqlServerDsc/issues/2019)). - Added public command `Set-SqlDscRSDatabaseConnection` to set the report server database connection for SQL Server Reporting Services or Power BI Report Server. Wraps the `SetDatabaseConnection` CIM method and supports Windows, SQL Server, and Service Account authentication types ([issue #2021](https://github.com/dsccommunity/SqlServerDsc/issues/2021)). - Added public command `Set-SqlDscRSVirtualDirectory` to set the virtual directory for Reporting Services applications. Wraps the `SetVirtualDirectory` CIM method and supports ReportServerWebService, ReportServerWebApp, and ReportManager applications ([issue #2015](https://github.com/dsccommunity/SqlServerDsc/issues/2015)). - Added public commands `Get-SqlDscRSUrlReservation`, `Add-SqlDscRSUrlReservation`, `Remove-SqlDscRSUrlReservation`, and `Set-SqlDscRSUrlReservation` to manage URL reservations for SQL Server Reporting Services or Power BI Report Server. These commands wrap the `ListReservedUrls`, `ReserveUrl`, and `RemoveURL` CIM methods respectively. The `Set-SqlDscRSUrlReservation` command provides a declarative approach to set URL reservations to an exact list, removing any existing reservations not in the specified list ([issue #2016](https://github.com/dsccommunity/SqlServerDsc/issues/2016)) ([issue #2024](https://github.com/dsccommunity/SqlServerDsc/issues/2024)). - Added public command `Get-SqlDscRSConfiguration` to retrieve the `MSReportServer_ConfigurationSetting` CIM instance for SQL Server Reporting Services or Power BI Report Server. Supports auto-detection of the Reporting Services version or explicit version specification. The returned CIM instance can be piped to `Enable-SqlDscRsSecureConnection` or `Disable-SqlDscRsSecureConnection` ([issue #2022](https://github.com/dsccommunity/SqlServerDsc/issues/2022)). - Added public command `Get-SqlDscRSWebPortalApplicationName` to get the Reporting Services web portal application name based on the SQL Server version. Returns ''ReportServerWebApp'' for SQL Server 2016 (version 13) and later, or ''ReportManager'' for earlier versions. Accepts the setup configuration object from `Get-SqlDscRSSetupConfiguration` via pipeline. - Added public command `Enable-SqlDscRsSecureConnection` to enable secure connection for SQL Server Reporting Services or Power BI Report Server by setting the secure connection level to 1. Accepts the configuration CIM instance from pipeline, supports `-WhatIf`/`-Confirm`, and `-PassThru` to return the configuration object ([issue #2022](https://github.com/dsccommunity/SqlServerDsc/issues/2022)). - Added public command `Disable-SqlDscRsSecureConnection` to disable secure connection for SQL Server Reporting Services or Power BI Report Server by setting the secure connection level to 0. Accepts the configuration CIM instance from pipeline, supports `-WhatIf`/`-Confirm`, and `-PassThru` to return the configuration object ([issue #2023](https://github.com/dsccommunity/SqlServerDsc/issues/2023)). - Added private function `Invoke-RsCimMethod` to invoke CIM methods on Reporting Services configuration instances with consistent error handling. This function is used by `Enable-SqlDscRsSecureConnection`, `Disable-SqlDscRsSecureConnection`, and the `SqlRS` resource. - Added private function `Get-HResultMessage` to translate common Windows HRESULT error codes into human-readable messages. Used by `Invoke-RsCimMethod` to provide actionable error messages when Reporting Services CIM methods fail without detailed error information. - `Invoke-ReportServerSetupAction` - Now uses `Format-Path` with `-ExpandEnvironmentVariable` to expand environment variables in all path parameters (`MediaPath`, `LogPath`, `InstallFolder`) ([issue #2085](https://github.com/dsccommunity/SqlServerDsc/issues/2085)). - Added public command `Get-SqlDscServerProtocolTcpIp` to retrieve TCP/IP address group information for SQL Server instances. Returns `ServerIPAddress` objects containing port configuration including `TcpPort`, `TcpDynamicPorts`, `Enabled`, and `Active` properties. Supports filtering by specific IP address group name and accepts pipeline input from `Get-SqlDscServerProtocol`. - `SqlResourceBase` - Added `Protocol` property to specify the network protocol (`tcp`, `np`, `lpc`) when connecting to SQL Server instances ([issue #2041](https://github.com/dsccommunity/SqlServerDsc/issues/2041)). - Added `Port` property to specify the TCP port number when connecting to SQL Server instances ([issue #2041](https://github.com/dsccommunity/SqlServerDsc/issues/2041)). - `Connect-SqlDscDatabaseEngine` - Added `Protocol` parameter to specify the network protocol when connecting. - Added `Port` parameter to specify the TCP port number when connecting. Connection strings now support the format `[protocol:]hostname[\instance][,port]`. - `SqlDatabase` - Added new class-based resource to create, modify, or remove databases on a SQL Server instance. Supports a comprehensive set of database properties that can be configured with `Set-SqlDscDatabaseProperty` ([issue #2174](https://github.com/dsccommunity/SqlServerDsc/issues/2174)). - `Install-SqlDscServer` - Added parameter `AllowDqRemoval` to the `Upgrade` parameter set ([issue #2155](https://github.com/dsccommunity/SqlServerDsc/issues/2155)). - `Test-SqlDscIsSupportedFeature` - Added DQ, DQC, and MDS features as discontinued starting with SQL Server 2025 (17.x) and later versions ([issue #2380](https://github.com/dsccommunity/SqlServerDsc/issues/2380)). - Added public command `Get-SqlDscRSPackage` to retrieve package information for SQL Server Reporting Services or Power BI Report Server. Supports getting version information from an executable file ([issue #2082](https://github.com/dsccommunity/SqlServerDsc/issues/2082)). - Added public command `Get-SqlDscBackupFileList` to read the list of database files contained in a SQL Server backup file. Useful for planning file relocations during restore operations ([issue #2026](https://github.com/dsccommunity/SqlServerDsc/issues/2026)). - Added public command `Test-SqlDscBackupFile` to verify the integrity of a SQL Server backup file ([issue #2026](https://github.com/dsccommunity/SqlServerDsc/issues/2026)). - Added public command `Restore-SqlDscDatabase` to restore SQL Server databases from backup files. Supports full, differential, transaction log, and file restores with options for file relocation (both simple path-based and explicit RelocateFile objects), point-in-time recovery, NoRecovery/Standby modes, and various performance tuning options ([issue #2026](https://github.com/dsccommunity/SqlServerDsc/issues/2026)). - Added public command `Backup-SqlDscDatabase`. Supports full, differential, and transaction log backups with options for compression, copy-only, checksum, and retention ([issue #2365](https://github.com/dsccommunity/SqlServerDsc/issues/2365)). - Added public command `Invoke-SqlDscScalarQuery` to execute scalar queries using `Server.ConnectionContext.ExecuteScalar()`. Server-level, lightweight execution that does not require any database to be online ([issue #2423](https://github.com/dsccommunity/SqlServerDsc/issues/2423)). - Added public command `Get-SqlDscDateTime` to retrieve current date and time from SQL Server instance. Supports multiple T-SQL date/time functions to eliminate clock-skew and timezone issues between client and server ([issue #2423](https://github.com/dsccommunity/SqlServerDsc/issues/2423)). - Added public command `Backup-SqlDscDatabase` to perform database backups using SMO''s `Microsoft.SqlServer.Management.Smo.Backup` class. Supports full, differential, and transaction log backups with options for compression, copy-only, checksum, and retention. Accepts both Server and Database objects via pipeline ([issue #2365](https://github.com/dsccommunity/SqlServerDsc/issues/2365)). - `Set-SqlDscServerPermission` - Added integration tests for negative test scenarios including invalid permission names and non-existent principals. - `SqlPermission` - Added integration tests for server role permissions to complement the existing login permission tests. - `New-SqlDscDatabase` - Added comprehensive set of settable database properties that were previously only available in `Set-SqlDscDatabaseProperty` ([issue #2190](https://github.com/dsccommunity/SqlServerDsc/issues/2190)). - Added public command `Resume-SqlDscDatabase` to bring a database online using SMO `Database.SetOnline()`. Supports Server and Database pipeline input ([issue #2191](https://github.com/dsccommunity/SqlServerDsc/issues/2191)). - Added public command `Suspend-SqlDscDatabase` to take a database offline using SMO `Database.SetOffline()`. Supports Server and Database pipeline input; includes `Force` to disconnect active users ([issue #2192](https://github.com/dsccommunity/SqlServerDsc/issues/2192)). - `Remove-SqlDscLogin` - Added parameter `-KillActiveSessions` to automatically terminate any active sessions for a login before dropping it ([issue #2372](https://github.com' } # End of PSData hashtable } # End of PrivateData hashtable } |