次の SQL Server 2008 R2 powershell プラグインをロードするスクリプトを使用しています
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
次に、次のようにinvoke-sqlを使用します。
Invoke-Sqlcmd -Query "select * from table" -ServerInstance xyz -Database abc -username xxxxxx -password yyyyyyy
メソッドを使用して、データベースで多数のアップグレード スクリプトを実行しています。私はこれを開発/テスト環境で非常に喜んで使用していましたが、本番環境で試してみたところ、サーバー構成に違いがあることがわかりました。私たちの製品サーバーでは、セキュリティ上の理由 (明らかにワーム攻撃) のために名前付きパイプが無効になっており、DBA は有効にしたくありません。
これは私が受け取るエラーであり、調査によると、名前付きパイプの問題であることがわかっています。それらも有効にすると機能し始めます。
INFO ERROR: Invoke-Sqlcmd : サーバーとの接続は正常に確立されましたが、ログイン プロセス中にエラーが発生しました。(プロバイダー: 共有メモリ プロバイダー、エラー: 0 - パイプの反対側にプロセスがありません。)
名前付きパイプを必要としないようにスクリプトを切り替える方法があるかどうかは誰にもわかりませんか? または、これはinvoke-sqlcmdの組み込みの接続方法であり、タックを変更する必要があります(もしあれば提案)。