Jalankan cmdlet Backup-SqlDatabase dari jarak jauh

1

Ketika saya menjalankan baris skrip berikut secara lokal pada mesin SQL Server, itu dijalankan dengan sempurna:

Backup-SqlDatabase -ServerInstance $serverName -Database $sqldbname -BackupFile "$($backupFolder)$($dbname)_db_$($addinionToName).bak"

$ serverName berisi nama pendek contoh SQL Server. SQL Server 2012, jadi cmdlet baru ini bekerja seperti pesona.

Di sisi lain, ketika saya mencoba melakukan cadangan DB dari mesin agen TeamCity seperti ini (Melalui cmdlet Invoke-Command):

function BackupDB([String] $serverName, [String] $sqldbname, [String] $backupFolder, [String] $addinionToName)
{
    Import-Module SQLPS -DisableNameChecking

    Backup-SqlDatabase -ServerInstance $serverName -Database $sqldbname -BackupFile "$($backupFolder)$($dbname)_db_$($addinionToName).bak"
}

Invoke-Command -computername $SQLComputerName -Credential $credentials -ScriptBlock ${function:BackupDB} -ArgumentList $SQLInstanceName, $DatabaseName, $BackupDirectory, $BakId

menghasilkan kesalahan:

Gagal terhubung ke server $ serverName. + KategoriInfo: Tidak Dinyatakan: (:) [Cadangan-SqlDatabase], ConnectionFailureException + FullyQualifiedErrorId: Microsoft.SqlServer.Management.Common.ConnectionFailureException, Microsoft.SqlServer.M anagement.PowerShell.PackShSand database database

Apa cara yang benar untuk menjalankan cmdlet Backup-SqlDatabase dari jarak jauh?

Maxim V. Pavlov
sumber

Jawaban:

1

Anda cukup menginstal tiga modul dari paket Fitur SQL yang menyediakan fungsionalitas SQLPS dan menggunakannya tanpa Invoke. Dapatkan dan pasang dalam urutan ini:

Microsoft® System Jenis CLR untuk Microsoft® SQL Server® 2012 Microsoft®
SQL Server® 2012 Obyek Manajemen Bersama Microsoft® Windows
PowerShell Extensions untuk Microsoft® SQL Server® 2012

dari sini . Setelah ini, Anda dapat menjalankannya secara lokal dan mengakses server SQL jarak jauh kembali ke SQL 2000. Baca di sini untuk bantuan.

Stoinov
sumber