Author | Klaas Vandenberghe (@PowerDbaKlaas) |
Availability | Windows, Linux, macOS |
Want to see the source code for this command? Check out Get-DbaInstanceProtocol on GitHub.
Want to see the Bill Of Health for this command? Check out Get-DbaInstanceProtocol.
Retrieves SQL Server network protocol configuration and status from target computers.
Retrieves the configuration and status of SQL Server network protocols (TCP/IP, Named Pipes, Shared Memory, VIA) by querying the WMI ComputerManagement namespace. This is essential for troubleshooting connectivity issues, auditing network configurations for security compliance, and managing protocol settings across multiple SQL Server instances.
The returned protocol objects include Enable() and Disable() methods, allowing you to manage protocol states directly without opening SQL Server Configuration Manager. This is particularly useful for automating security hardening by disabling unnecessary protocols or standardizing configurations across your environment.
Requires Local Admin rights on destination computer(s).
Get-DbaInstanceProtocol
[[-ComputerName] <DbaInstanceParameter[]>]
[[-Credential] <PSCredential>]
[-EnableException]
[<CommonParameters>]
PS C:\> Get-DbaInstanceProtocol -ComputerName sqlserver2014a
Gets the SQL Server related server protocols on computer sqlserver2014a.
PS C:\> 'sql1','sql2','sql3' | Get-DbaInstanceProtocol
Gets the SQL Server related server protocols on computers sql1, sql2 and sql3.
PS C:\> Get-DbaInstanceProtocol -ComputerName sql1,sql2
Gets the SQL Server related server protocols on computers sql1 and sql2.
PS C:\> (Get-DbaInstanceProtocol -ComputerName sql1 | Where-Object { $_.DisplayName -eq 'Named Pipes' }).Disable()
Disables the VIA ServerNetworkProtocol on computer sql1.
If successful, return code 0 is shown.
Specifies the target computer(s) where SQL Server instances are running. Accepts computer names, fully qualified domain names, or IP addresses.
Use this when you need to check network protocol configurations on remote SQL Server machines for connectivity troubleshooting or security audits.
Alias | cn,host,Server |
Required | False |
Pipeline | true (ByValue) |
Default Value | $env:COMPUTERNAME |
Credential object used to connect to the computer as a different user.
Alias | |
Required | False |
Pipeline | false |
Default Value |
By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message.
This avoids overwhelming you with "sea of red" exceptions, but is inconvenient because it basically disables advanced scripting.
Using this switch turns this "nice by default" feature off and enables you to catch exceptions with your own try/catch.
Alias | |
Required | False |
Pipeline | false |
Default Value | False |