Führen Sie das Cmdlet Backup-SqlDatabase remote aus

1

Wenn ich die folgende Skriptzeile lokal auf einem SQL Server-Computer ausführen, wird sie einwandfrei ausgeführt:

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

$ serverName enthält einen Kurznamen der SQL Server-Instanz. SQL Server ist 2012, daher funktionieren diese neuen Cmdlets wie ein Zauber.

Wenn ich dagegen versuche, eine DB-Sicherung von einem TeamCity-Agentencomputer wie diesem durchzuführen (durch 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

führt zu einem Fehler:

Verbindung zu Server $ Servername konnte nicht hergestellt werden.       + CategoryInfo: NotSpecified: (:) [Backup-SqlDatabase], ConnectionFailureException       + FullyQualifiedErrorId: Microsoft.SqlServer.Management.Common.ConnectionFailureException, Microsoft.SqlServer.M   anagement.PowerShell.BackupSqlDatabaseCommand

Was ist der richtige Weg, um das Backup-SqlDatabase-Cmdlet remote auszuführen?

Maxim V. Pavlov
quelle

Antworten:

1

Sie können einfach drei Module aus dem SQL Feature Pack installieren, das die SQLPS-Funktionalität bereitstellt, und sie ohne Invoke verwenden. Holen Sie sich und installieren Sie in dieser Reihenfolge:

Microsoft® System CLR-Typen für Microsoft® SQL Server® 2012 Microsoft®
Freigegebene Verwaltungsobjekte für SQL Server® 2012 Microsoft® Windows
PowerShell-Erweiterungen für Microsoft® SQL Server® 2012

von Hier . Danach können Sie sie lokal ausführen und auf entfernte SQL-Server zurück zu SQL 2000 zugreifen. Lesen Hier für etwas Hilfe.

Stoinov
quelle