Get-DbaReplServer
View SourceSynopsis
Retrieves replication configuration and server role information from SQL Server instances
Description
Returns a ReplicationServer object that shows whether each SQL Server instance is configured as a distributor, publisher, or both in the replication topology. This helps DBAs quickly identify server roles and distribution database configurations when troubleshooting replication issues or documenting replication environments. The function reveals which databases are enabled for replication, though these may not necessarily be actively replicated.
Note: The ReplicationDatabases property gets the databases enabled for replication in the connected instance of Microsoft SQL Server/.
Not necessarily the databases that are actually replicated.
Syntax
Get-DbaReplServer
[-SqlInstance] <DbaInstanceParameter[]>
[[-SqlCredential] <PSCredential>]
[-EnableException]
[<CommonParameters>]
Examples
Example: 1
PS C:\> Get-DbaReplServer -SqlInstance sql2016
Gets the replication server object for sql2016 using Windows authentication
Example: 2
PS C:\> Get-DbaReplServer -SqlInstance sql2016 -SqlCredential repadmin
Gets the replication server object for sql2016 using SQL authentication
Required Parameters
-SqlInstance
The target SQL Server instance or instances
| Property | Value |
|---|---|
| Alias | |
| Required | True |
| Pipeline | true (ByValue) |
| Default Value |
Optional Parameters
-SqlCredential
Login to the target instance using alternative credentials. Accepts PowerShell credentials (Get-Credential).
Windows Authentication, SQL Server Authentication, Active Directory - Password, and Active Directory - Integrated are all supported.
For MFA support, please use Connect-DbaInstance.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value |
-EnableException
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.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value | False |
Outputs
Microsoft.SqlServer.Replication.ReplicationServer
Returns one ReplicationServer object per SQL Server instance, providing information about the instance’s role in the replication topology.
Default display properties (via Select-DefaultView):
- ComputerName: The computer name of the SQL Server instance
- InstanceName: The SQL Server instance name
- SqlInstance: The full SQL Server instance name (computer\instance)
- IsDistributor: Boolean indicating if the instance is configured as a Distributor
- IsPublisher: Boolean indicating if the instance is configured as a Publisher
- DistributionServer: The name of the Distributor server (if configured)
- DistributionDatabase: The name of the distribution database (if configured)
Additional properties available (from SMO ReplicationServer object):
- DistributorInstalled: Boolean indicating if a Distributor is installed
- DistributorAvailable: Boolean indicating if the Distributor is accessible
- WorkingDirectory: The Publisher’s working directory location
- DistributionDatabases: Collection of configured distribution databases
- DistributionPublishers: Collection of Publishers using this Distributor
- ReplicationDatabases: Collection of databases enabled for replication
- RegisteredSubscribers: Collection of registered Subscriber instances
- AgentCheckupInterval: The Distribution Agent checkup frequency setting
- ConnectionContext: The SQL Server connection context object All properties from the base SMO ReplicationServer object are accessible using Select-Object *.
dbatools