DSCResources/DSC_SqlProtocol/en-US/about_SqlProtocol.help.txt
.NAME
SqlProtocol .DESCRIPTION The `SqlProtocol` DSC resource manages the SQL Server protocols for a SQL Server instance. For more information about protocol properties look at the following articles: * [TCP/IP Properties (Protocols Tab)](https://docs.microsoft.com/en-us/sql/tools/configuration-manager/tcp-ip-properties-protocols-tab). * [Shared Memory Properties](https://docs.microsoft.com/en-us/sql/tools/configuration-manager/shared-memory-properties). * [Named Pipes Properties](https://docs.microsoft.com/en-us/sql/tools/configuration-manager/named-pipes-properties). ## Requirements * Target machine must be running Windows Server 2012 or later. * Target machine must be running SQL Server Database Engine 2012 or later. * Target machine must have access to the SQLPS PowerShell module or the SqlServer PowerShell module. * If a protocol is disabled that prevents the cmdlet `Restart-SqlService` from contacting the instance to evaluate if it is a cluster. If this is the case then the parameter `SuppressRestart` must be used to override the restart. It is the same if a protocol is enabled that was previously disabled and no other protocol allows connecting to the instance, then the parameter `SuppressRestart` must also be used. * When connecting to a Failover Cluster where the account `SYSTEM` does not have access then the correct credential must be provided in the built-in parameter `PSDscRunAsCredential`. If not the following error can appear; `An internal error occurred`. ## Known issues All issues are not listed here, see [here for all open issues](https://github.com/dsccommunity/SqlServerDsc/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+SqlProtocol). .PARAMETER InstanceName Key - String Specifies the name of the SQL Server instance to enable the protocol for. .PARAMETER ProtocolName Key - String Allowed values: SharedMemory, NamedPipes, TcpIp Specifies the name of network protocol to be configured. .PARAMETER ServerName Write - String Specifies the host name of the SQL Server to be configured. If the SQL Server belongs to a cluster or availability group specify the host name for the listener or cluster group. Default value is $env:COMPUTERNAME. .PARAMETER Enabled Write - Boolean Specifies if the protocol should be enabled or disabled. .PARAMETER ListenOnAllIpAddresses Write - Boolean Specifies to listen on all IP addresses. Only used for the TCP/IP protocol, ignored for all other protocols. .PARAMETER KeepAlive Write - UInt16 Specifies the keep alive duration in milliseconds. Only used for the TCP/IP protocol, ignored for all other protocols. .PARAMETER PipeName Write - String Specifies the name of the named pipe. Only used for the Named Pipes protocol, ignored for all other protocols. .PARAMETER SuppressRestart Write - Boolean If set to $true then the any attempt by the resource to restart the service is suppressed. The default value is $false. .PARAMETER RestartTimeout Write - UInt16 Timeout value for restarting the SQL Server services. The default value is 120 seconds. .PARAMETER HasMultiIPAddresses Read - Boolean Returns $true or $false whether the instance has multiple IP addresses or not. .EXAMPLE 1 This example will enable the TCP/IP protocol, set the protocol to listen on all IP addresses, and set the keep alive duration. The resource will be run as the account provided in $SystemAdministratorAccount. Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $SystemAdministratorAccount ) Import-DscResource -ModuleName 'SqlServerDsc' node localhost { SqlProtocol 'ChangeTcpIpOnDefaultInstance' { InstanceName = 'MSSQLSERVER' ProtocolName = 'TcpIp' Enabled = $true ListenOnAllIpAddresses = $false KeepAlive = 20000 PsDscRunAsCredential = $SystemAdministratorAccount } } } .EXAMPLE 2 This example will enable the Named Pipes protocol and set the name of the pipe. The resource will be run as the account provided in $SystemAdministratorAccount. Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $SystemAdministratorAccount ) Import-DscResource -ModuleName 'SqlServerDsc' node localhost { SqlProtocol 'ChangeTcpIpOnDefaultInstance' { InstanceName = 'MSSQLSERVER' ProtocolName = 'NamedPipes' Enabled = $true PipeName = '\\.\pipe\$$\TESTCLU01A\MSSQL$SQL2014\sql\query' PsDscRunAsCredential = $SystemAdministratorAccount } } } .EXAMPLE 3 This example will enable the Shared Memory protocol. The resource will be run as the account provided in $SystemAdministratorAccount. Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $SystemAdministratorAccount ) Import-DscResource -ModuleName 'SqlServerDsc' node localhost { SqlProtocol 'ChangeTcpIpOnDefaultInstance' { InstanceName = 'MSSQLSERVER' ProtocolName = 'SharedMemory' Enabled = $true PsDscRunAsCredential = $SystemAdministratorAccount } } } .EXAMPLE 4 This example will disable the TCP/IP protocol. The resource will be run as the account provided in $SystemAdministratorAccount. Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $SystemAdministratorAccount ) Import-DscResource -ModuleName 'SqlServerDsc' node localhost { SqlProtocol 'ChangeTcpIpOnDefaultInstance' { InstanceName = 'MSSQLSERVER' ProtocolName = 'TcpIp' Enabled = $false PsDscRunAsCredential = $SystemAdministratorAccount } } } .EXAMPLE 5 This example will disable the Named Pipes protocol. The resource will be run as the account provided in $SystemAdministratorAccount. Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $SystemAdministratorAccount ) Import-DscResource -ModuleName 'SqlServerDsc' node localhost { SqlProtocol 'ChangeTcpIpOnDefaultInstance' { InstanceName = 'MSSQLSERVER' ProtocolName = 'NamedPipes' Enabled = $false PsDscRunAsCredential = $SystemAdministratorAccount } } } .EXAMPLE 6 This example will disable the Shared Memory protocol. The resource will be run as the account provided in $SystemAdministratorAccount. Configuration Example { param ( [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] $SystemAdministratorAccount ) Import-DscResource -ModuleName 'SqlServerDsc' node localhost { SqlProtocol 'ChangeTcpIpOnDefaultInstance' { InstanceName = 'MSSQLSERVER' ProtocolName = 'SharedMemory' Enabled = $false PsDscRunAsCredential = $SystemAdministratorAccount } } } |