3

LAN上のリモートデータベースをネットワーク共有ドライブにバックアップしようとしています。.NETを使用して同じアプローチを使用してテストしましたが、機能しましたが、Jenkins継続的インテグレーションツールを使用せずにこのPowerShellスクリプトを使用することを計画しています。

$dbserver = "dbserver"
$location = "\\otherserver\Temp\"
$user = "user"
$pwd = "password"

$timestamp=((get-date).toString("yyyy_MM_dd_hh_mm"))
$file = $location + "jira_" + $timestamp + ".bak"

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null

$connection = New-Object "Microsoft.SqlServer.Management.Common.ServerConnection" 
$connection.ServerInstance =$dbserver
$connection.LoginSecure = $false
$connection.Login = $user 
$connection.Password = $pwd

$server = New-Object "Microsoft.SqlServer.Management.Smo.Server" $connection
$backup = New-Object "Microsoft.SqlServer.Management.Smo.backup"
$backup.Action = 'Database'

$device = New-Object ('Microsoft.SqlServer.Management.Smo.BackupDeviceItem') ($file, 'File')
#$device.DeviceType = 'File'
#$device.Name = $file

$backup.MediaDescription = "Disk"
$backup.Database= "jira"
$backup.Devices.Add($device)
$backup.SqlBackup 

例外は発生しませんが、コードのトラブルシューティングに役立つ情報も取得しません。利用可能なすべてのスロー、キャッチ、トライを使用して、私は得ることができるだけです。

MemberType          : Method
OverloadDefinitions : {System.Void SqlBackup(Microsoft.SqlServer.Management.Smo.Server srv)}
TypeNameOfValue     : System.Management.Automation.PSMethod
Value               : System.Void SqlBackup(Microsoft.SqlServer.Management.Smo.Server srv)
Name                : SqlBackup
IsInstance          : True
4

1 に答える 1

2

SqlBackupはメソッドです。メソッドを呼び出すときは、開き括弧と閉じ括弧を含める必要があります。

$backup.sqlbackup($server)

パーレンを省略すると、メソッドを呼び出す代わりにメソッドシグネチャが出力されます。メソッドシグネチャを省略してもエラーではないため、エラーは発生しません。

于 2012-11-30T03:39:18.757 に答える