无法将SQLPS CmdLet Backup-SQLDatabase与-InputObject参数一起使用

时间:2015-04-29 12:59:55

标签: sql sql-server powershell smo sqlps

遇到同样的超时问题here并尝试解决方法,我发现我收到错误:

Backup-SqlDatabase : Cannot bind parameter 'InputObject'. Cannot convert the "[instDW_QA0]" value of type "Microsoft.SqlServer.Management.Smo.Server" to type "Microsoft.SqlServer.Management.Smo.Server".
At line:21 char:50
+   Backup-SQLDatabase -Database msdb -InputObject $server -BackupAction Database  ...
+                                                  ~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Backup-SqlDatabase], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.SqlServer.Management.PowerShell.BackupSqlDatabaseCommand

运行简单脚本时:

$ServerName = "instDW_QA0"
$server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $ServerName
$server.ConnectionContext.StatementTimeout = 0
$db = $server.Databases["msdb"]
Backup-SQLDatabase -Database msdb -InputObject $server -BackupAction Database -CompressionOption ON -CopyOnly -Initialize

这发生在我尝试过的三台Win7机器上,但是脚本在所有服务器上运行正常(Win2012)我已经尝试过了。三台Win7机器混合了已安装的软件。一个安装了SQL 2008R2,2012和2014,另一个安装了2008R2和2012.一个安装了PS 2.0,另外两个安装了PS 3.0。服务器再次混合。所有都安装了PS 3.0,但有些有SQL2008R2和SQL2012,有些只有SQL2012,我试过它只有SQL2014,但它们都有效。唯一一致的差异是操作系统,Win7与Win2012,但这对我来说并不是一个潜在的原因。

错误本身令人困惑,它引用的两种类型是相同的。我在运行脚本之前尝试加载特定的SMO程序集版本(11和12),这似乎没有帮助。

有什么想法吗?提前谢谢。

0 个答案:

没有答案