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?