[解決済み] Invoke-Sqlcmd エラー : リモート DB サーバを呼び出すために powershell を実行すると、ユーザ xxxx のログインに失敗しました。
2022-02-10 03:39:47
質問
私は
Invoke-SqlCmd : Login failed for user 'DIR\MISAccount'.
パワーシェル・スクリプトを実行したとき。powershellスクリプトは.sqlファイルを読み込み、.sqlファイルに定義されたステートメントを実行します。ローカルマシンでパワーシェルと.sqlスクリプトをテストしました(アプリとデータベースは同じボックス内にあります)、スクリプトは期待通りに動作しています。
サーバー上でスクリプトを実行すると、エラーが発生します。ここでの違いは、パワーシェルがリモートDBサーバーを呼び出す必要があることです。私は以下をチェックしました。
アプリサーバーからSSMOで接続 - 動作しました。 アプリサーバーからCMD SQLCMDで接続 - 動作しました。 DBサーバーでpowershellスクリプトを実行 - 動作確認済み
上記のテストから、問題はPowershell(アプリサーバーで実行)からリモートDBサーバーへのクレデンシャルだと思うのですが、解決の糸口が見えません。どんな助けでも非常に感謝します。
パワーシェルスクリプトはこちら
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
$SqlFile = "E:\User\Script_CreateTable.sql"
$OutputFile = "E:\User\CreateTable.log"
$Path = "E:\User\Password.txt"
$uid = 'sa'
$ConnectionString = "Server=WINPRD212\PROD_INC;Database=AccountMEC;"
$pwd = Get-Content $Path | ConvertTo-SecureString
$pwd.MakeReadOnly()
$creds = New-Object System.Data.SqlClient.SqlCredential($uid,$pwd)
$con = New-Object System.Data.SqlClient.SqlConnection
$con.ConnectionString = $ConnectionString
$con.Credential = $creds
$con.Open()
Invoke-SqlCmd -InputFile $SqlFile -verbose
$con.Close()
解決方法は?
以下の方法で解決しました。
$creds = New-Object System.Management.Automation.PSCredential $uid,$pwd
$Password = $creds.GetNetworkCredential().Password
Invoke-SqlCmd -InputFile $SqlFile -Username 'sa' -Password $Password -ServerInstance 'WINPRD212\PROD_INC' -Database 'AccountMEC'
関連
-
[解決済み】Powershell: 引数 "xxx" を受け入れる位置パラメーターが見つからない。
-
[解決済み】PowerShellの関数で変数をインクリメントする
-
[解決済み] Powershellを使用します。PowerShellでパスを再読み込みする
-
[解決済み] Connect-VIServer は、渡された資格情報では動作しないが、統合された認証では動作する。
-
[解決済み] PowerShellで、変数が数値を保持しているかどうかをテストするにはどうすればよいですか?
-
[解決済み] [System.Web.Security.Membership]::GeneratePassword() - Type Not found
-
[解決済み] Get-ADUser -Identity
-
[解決済み] PowerShellで"%"(パーセント)は何をするのですか?
-
[解決済み] PowerShellスクリプトのファイルシステムの場所を取得するにはどうすればよいですか?
-
[解決済み] PowerShellで変数とその型がBooleanであることを宣言する方法は?[重複している]をクリックします。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Invoke-Command エラー "Parameter set cannot be resolved using specified named parameters".
-
[解決済み] Add-ADGroupMember が ID を持つオブジェクトを見つけられません。
-
[解決済み] Resolve-Pathコマンドレットは、具体的にどのような処理を行うのですか?
-
[解決済み] Get-ADUserとフィルタを含むForEach-Objectループ
-
[解決済み] Push-LocationとSet-Locationの使い分けは?
-
[解決済み] PowerShellの文字列補間構文
-
[解決済み] 'Connect-MsolService' はコマンドレット名として認識されません。
-
[解決済み] PowerShellでファイルをダウンロードする
-
[解決済み] Join-Pathを使って、2つ以上の文字列をファイルパスに結合するにはどうすればよいですか?
-
[解決済み] PowerShellスクリプトのファイルシステムの場所を取得するにはどうすればよいですか?