powershell设置数据库IndexOutOfRangeException

时间:2015-08-18 09:35:07

标签: sql-server powershell

我尝试使用Microsoft.SqlServer.SMO在powershell中设置数据库名称。当我执行我的脚本时,它运行错误,出现以下错误文本:

format-default : Index was outside the bounds of the array.
    + CategoryInfo          : NotSpecified: (:) [format-default],  IndexOutOfRangeException
    + FullyQualifiedErrorId : System.IndexOutOfRangeException,Microsoft.PowerShell.Commands.FormatDefaultCommand

服务器设置如下

$srv = New-Object "Microsoft.SqlServer.Management.SMO.Server" $server 
$srv.ConnectionContext.LoginSecure=$false;
$srv.ConnectionContext.set_Login("login");
$srv.ConnectionContext.set_Password("password")  

$srv.Databases | Select name, 向我展示了正确的数据库,但在设置数据库时,

$db = $srv.Databases[$database]

抛出错误。

此脚本在其他sqlservers中有效。 针对这个问题的任何解决方案?

1 个答案:

答案 0 :(得分:0)

看起来脚本抛出错误的服务器上不存在数据库“CRD_DEV”。 那个或用户无权访问该数据库。

IndexOutOfRangeException被抛出,因为$srv.Databases中没有与“CRD_DEV”匹配的项目