2016-09-20 22 views
0

My Scriptは、ローカルのWindows 10マシン上でPowerShellコンソールで実行されます。PowershellリモートPowershell接続経由でサーバー上のSQL Serverデータベースのローカル* .bakバックアップを作成するためのスクリプト

これは私のコードです:

# Import the SQL Server Module.  
Import-Module Sqlps -DisableNameChecking; 

# To check whether the module is installed. 
Get-Module -ListAvailable -Name Sqlps; 

$directory = "C:\Users\max.mueller\Documents\Backups\" 

$SQLServer = "MMSQLServer\Instance" 
$SQLDBName = "DBNAME" 
$uid ='admin' 
$pwd = '123456' 

# Connect to database and generate a local output file - works 
$SqlQuery = "SELECT * from customers;" 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = False; User ID = $uid; Password = $pwd;" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = $SqlQuery 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 

$DataSet.Tables[0] | out-file "C:\Users\max.mueller\Documents\Backups\test.txt" 

#do a backup: does not work 
$secpasswd = ConvertTo-SecureString $pwd -AsPlainText -Force 
$mycreds = New-Object System.Management.Automation.PSCredential ($uid, $secpasswd) 

Backup-SqlDatabase -ServerInstance $SQLServer -Database $SQLDBName -BackupFile "C:\Users\max.mueller\Documents\Backups\MyRemoteBackUp.bak" # -SqlCredential $mycreds 

興味深いのは、私はSQL SELECTクエリを実行し、結果をエクスポートできることです。

Backup-SqlDatabase : Fehler beim Herstellen einer Verbindung mit dem Server " Server\Instance".
In Zeile:39 Zeichen:1
+ Backup-SqlDatabase -ServerInstance $SQLServer -Database $SQLDBName -B ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Backup-SqlDatabase], ConnectionFailureException
+ FullyQualifiedErrorId : Microsoft.SqlServer.Management.Common.ConnectionFailureException,Microsoft.SqlServer.Management.PowerShell.BackupSqlDatabaseCommand

それはドイツのSQL Serverです:私はbackup-sqlDatabaseでバックアップを実行しようとすると、しかし、私は、次のエラーメッセージが表示されます。サーバーに接続中に翻訳がエラー "..."

問題はどうなっていますか?ユーザー/ passwod

使用証明書SqlCredentialないに合格し、ユーザー名とパスワードを入力する必要がありますので、事前

+0

てみ-Credential が手動でちょうどテスト目的 – Jimbo

+0

をするために、今のパスワードを入力します(「管理者」-資格を取得)最後のコマンドで-sqlcredentialフラグをコメントアウトした理由はありますか? – BenH

+0

私は何の意味もない別のパラメータ設定を試みたので、私はSQLのcrendtialフラグをコメントアウトしました。私は現在のWindows/Domain Userを使ってデータベースにアクセスしません。 –

答えて

0

おかげで、あなたは、リモートマシンにバックアップを実行します。

コマンドは次のとおりです。

Backup-SqlDatabase -ServerInstance $SQLServer -Database $SQLDBName -BackupFile $fname -Credential $mycreds 

ファイル名の$ fnameのではなく、SQL Serverサービスアカウントが許可R/W上を持っている必要があり

ローカルマシンで、サーバー(リモート・マシン)でありますそれ以外の場合はバックアップのフォルダがエラーを起こします

Q-私のマシンにローカルにバックアップを保存することは可能ですか?リモートSQL Serverにバックアップを保存することはできますか?

Aバックアップをローカルマシンに保存することはできません。

いますが、ローカルフォルダにリモートバックアップをコピーすることができます(権限がある場合)

関連する問題