ドメイン資格情報を使用して SQL Server に接続できないという問題があります。SA資格情報を使用すると機能し、クエリは期待どおりに実行されます。しかし、ドメイン資格情報を使用すると、エラーが発生します。
スクリプトは次のとおりです。
$SQLServer = 'server.domain.com'
$SQLDBName = 'DBname'
$username = "DOMAIN\user"
$password = "password"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
#--> With SA, it works, with DOMAIN creds, it does not
#$SqlConnection.ConnectionString = "Server=$SQLServer; Database=$SQLDBName; User ID=sa; Password=SApassword;"
$SqlConnection.ConnectionString = "Server=$SQLServer; Database=$SQLDBName; User ID=$username; Password=$password;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = 'select count (*) from my.table'
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
そして、スクリプトを実行したときに表示されるエラーは次のとおりです。
"1" 個の引数を指定して "Fill" を呼び出し中に例外が発生しました: "SQL Server への接続を確立しているときに、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいことを確認してくださいSQL Server がリモート接続を許可するように構成されていること (プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)
C:\scripts\PowerShell\myscript.ps1:28 文字:1
+ $SqlAdapter.Fill($DataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~ ~~
+ CategoryInfo : NotSpecified: (:) []、MethodInvocationException
+ FullyQualifiedErrorId : SqlException
ドメイン内にないコンピューターから SQL Server に接続しているという事実を指摘しておく必要があります (したがって、どのような種類の認証パススルーも使用できません)。
ドメイン資格情報に接続できない理由についてのアイデアはありますか? 接続やファイアウォールなどのチェックに関するアドバイスを提供する他の投稿をフォローしました。これですべて正常に動作し、スクリプトは sa (ローカル) ユーザーとして完全に実行されます。ドメイン上にないだけです..