Сценарий Powershell с SQL Server 2012/2014

У меня есть сценарий PowerShell, который хорошо работает, когда я запускаю его на сервере с экземпляром SQL Server по умолчанию (MSSQLSERVER) но тот же сценарий завершается ошибкой на сервере с именованным экземпляром (MSSQL$instance)

Для экземпляра по умолчанию (MSSQLSERVER)

[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$service = Get-service -name 'MSSQLSERVER'
$status = $service.status
$CreateDB = "db-Test"

if ( $status -eq "Running" )
{ 
    'Success' | Out-File -FilePath c:\sqltest.log -Encoding ASCII

    $srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
    $db = New-Object Microsoft.SqlServer.Management.Smo.Database($srv, "$CreateDB")
    $db.Create()
    $db.CreateDate
}
else
{
    'Failed' | Out-File -FilePath c:\sqltest.log -Encoding ASCII
}

Выше сценарий работает очень хорошо. Но ниже скрипт выдает ошибку:

Для именованного экземпляра:

[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$service = Get-service -name 'MSSQL$instancename'
$status = $service.status
$CreateDB = "db-Test"

if ( $status -eq "Running" )
{ 
     'Success' | Out-File -FilePath c:\sqltest.log -Encoding ASCII

     $srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
     $db = New-Object Microsoft.SqlServer.Management.Smo.Database($srv, "$CreateDB")
     $db.Create()
     $db.CreateDate
}
else
{
     'Failed' | Out-File -FilePath c:\sqltest.log -Encoding ASCII
}

Выше скрипт для именованного экземпляра SQL выдает ошибку ниже:

New-Object: Исключение вызывает ".ctor" с аргументом (ами) "2": "Ошибка SetParent для базы данных" Netmagic-Test "."
В C: \ mssql-test.ps1: 11 char: 7
+ $ db = New-Object Microsoft.SqlServer.Management.Smo.Database ($ srv, "$ CreateDB")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId: ConstructorInvokedThrowException, Microsoft.PowerShell.Commands.NewObjectCommand

Вы не можете вызвать метод для выражения с нулевым значением.
В C: \ mssql-test.ps1: 12 char: 1
+ $ db.Create ()
+ ~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId: InvokeMethodOnNull

Экран ошибки

Спасибо,

вирусный

0 ответов

Другие вопросы по тегам