< Back

Copy-DbaLinkedServer

Mon Jan 13, 2020 9:36 am

NAME Copy-DbaLinkedServer



SYNOPSIS

Copy-DbaLinkedServer migrates Linked Servers from one SQL Server to another. Linked Server logins and passwords

are migrated as well.





SYNTAX

Copy-DbaLinkedServer [-Source] <DbaInstanceParameter> [[-SourceSqlCredential] <Pscredential>] [-Destination]

<Sqlcollaborative.Dbatools.Parameter.DbaInstanceParameter[]> [[-DestinationSqlCredential] <Pscredential>]

[[-LinkedServer] <System.Object[]>] [[-ExcludeLinkedServer] <System.Object[]>] [-UpgradeSqlClient <Switch>]

[-Force <Switch>] [-EnableException <Switch>] [<CommonParameters>]





DESCRIPTION

By using password decryption techniques provided by Antti Rantasaari (NetSPI, 2014), this script migrates SQL

Server Linked Servers from one server to another, while maintaining username and password.



Credit: https://blog.netspi.com/decrypting-mssq ... passwords/





PARAMETERS

-Destination [<Sqlcollaborative.Dbatools.Parameter.DbaInstanceParameter[]>]

Destination SQL Server (2005 and above). You must have sysadmin access to both SQL Server and Windows.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-DestinationSqlCredential [<Pscredential>]

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.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-EnableException [<Switch>]

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.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-ExcludeLinkedServer [<System.Object[]>]

The linked server(s) to exclude - this list is auto-populated from the server



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-Force [<Switch>]

By default, if a Linked Server exists on the source and destination, the Linked Server is not copied over.

Specifying -force will drop and recreate the Linked Server on the Destination server.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-LinkedServer [<System.Object[]>]

The linked server(s) to process - this list is auto-populated from the server. If unspecified, all linked

servers will be processed.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-Source [<DbaInstanceParameter>]

Source SQL Server (2005 and above). You must have sysadmin access to both SQL Server and Windows.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-SourceSqlCredential [<Pscredential>]

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.



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



-UpgradeSqlClient [<Switch>]

Upgrade any SqlClient Linked Server to the current Version



Required? false

Position? named

Default value

Accept pipeline input? False

Accept wildcard characters? false



<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,

ErrorAction, ErrorVariable, WarningAction, WarningVariable,

OutBuffer, PipelineVariable, and OutVariable. For more information, see

about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).



INPUTS



OUTPUTS



NOTES





Tags: WSMan, Migration, LinkedServer

Author: Chrissy LeMaire (@cl), netnerds.net



Website: https://dbatools.io

Copyright: (c) 2018 by dbatools, licensed under MIT

License: MIT https://opensource.org/licenses/MIT



Requires: sysadmin access on SQL Servers

Limitations: This just copies the SQL portion. It does not copy files (i.e. a local SQLite database, or

Microsoft Access DB), nor does it configure ODBC entries.



-------------------------- EXAMPLE 1 --------------------------



PS C:\\>Copy-DbaLinkedServer -Source sqlserver2014a -Destination sqlcluster



Copies all SQL Server Linked Servers on sqlserver2014a to sqlcluster. If Linked Server exists on destination, it

will be skipped.

-------------------------- EXAMPLE 2 --------------------------



PS C:\\>Copy-DbaLinkedServer -Source sqlserver2014a -Destination sqlcluster -LinkedServer SQL2K5,SQL2k -Force



Copies over two SQL Server Linked Servers (SQL2K and SQL2K2) from sqlserver to sqlcluster. If the credential

already exists on the destination, it will be dropped.



RELATED LINKS

https://dbatools.io/Copy-DbaLinkedServer