2016-06-16 298 views
1

私は以下のエラーが表示さSQLPSは、Windowsサーバー2012R2とPowerShellのv4の"2"引数を持つ ".ctor"を呼び出す例外: "SetParentがデータベース 'XXX'に対して失敗しました。"

#Import SQL Server Module called SQLPS 
Import-Module SQLPS -DisableNameChecking 

#Your SQL Server Instance Name 
$Inst = "sql03" 
$Srvr = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $Inst 

#database PSDB with default settings 
#by assuming that this database does not yet exist in current instance 
$DBName = "PSDB" 
$db = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Database($Srvr, $DBName) 
$db.Create() 

#Confirm, list databases in your current instance 
$Srvr.Databases | 
Select Name, Status, Owner, CreateDate 

上のDBを作成するコマンドを実行すると問題があります。この問題を解決する方法を

New-Object : Exception calling ".ctor" with "2" argument(s): "SetParent failed for Database 'PSDB'. " 
At C:\test.ps1:11 char:7 
+ $db = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Database($Srvr, $D ... 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [New-Object], MethodInvocationException 
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand 

You cannot call a method on a null-valued expression. 
At C:\test.ps1:12 char:1 
+ $db.Create() 
+ ~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [], RuntimeException 
    + FullyQualifiedErrorId : InvokeMethodOnNull 

The following exception occurred while trying to enumerate the collection: "Failed to connect to server sql03.". 
At C:\test.ps1:15 char:1 
+ $Srvr.Databases | 
+ ~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], ExtendedTypeSystemException 
    + FullyQualifiedErrorId : ExceptionInGetEnumerator 

任意の提案を?

+1

正しいインスタンス名を持っていますか?つまり、SQL03のデフォルトインスタンスにアクセスしようとしていますか?私は "サーバーsql03に接続できませんでした。問題がある場所 – grambo25

+0

SQL03からコマンドを実行しています – MSalem

+0

同じWindowsサーバー上で複数のSQL Serverインスタンスを実行できます。 SSMS経由でSQL Serverに接続しようとすると、Server Nameフィールドには何が表示されますか? – grambo25

答えて

0

ローカルで作業している場合は交換してください:

$Srvr = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $Inst 

で:

$Srvr = new-object ('Microsoft.SqlServer.Management.Smo.Server') localhost 
関連する問題