[〜#〜] ssdt [〜#〜] とともにVS2015をインストールし、 [〜#〜] ssms [〜#〜] および SqlServer PowerShellモジュール(invoke-sqlcmd
コマンドを含む)、まだAzure SQL Data Warehouseに対してクエリを実行しようとすると:
invoke-sqlcmd -Query "Select top 5 * from customer" -ConnectionString "Server=tcp:my.database.windows.net,1433;Database=Customer; Authentication=Active Directory Integrated; Encrypt=True; "
次のエラーが表示されます。
invoke-sqlcmd : Unable to load adalsql.dll (Authentication=ActiveDirectoryIntegrated). Error code: 0x2. For more information, see
http://go.Microsoft.com/fwlink/?LinkID=513072
At line:1 char:1
+ invoke-sqlcmd -Query "Select top 5 * from vwOffer" -ConnectionStrin ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
+ FullyQualifiedErrorId : SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
invoke-sqlcmd :
At line:1 char:1
+ invoke-sqlcmd -Query "Select top 5 * from vwOffer" -ConnectionStrin ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd], ParserException
+ FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptComman
adalsql.dll を直接インストールしようとすると、A higher version already exists
というメッセージが表示され、dllの両方のバージョンがここにあることがわかります。
C:\Windows\SysWOW64\adalsql.dll
C:\Windows\System32\adalsql.dll
それでも、invoke-sqlcmdはそれを見つけることができません。 (A)invoke-sqlcmdがそれを見つけることができるように既存のdllを登録する方法、または(B)再インストールできるようにアンインストールする方法はありますか?
ちなみに、Iamは32ビットSQLCMD.exeでActive Directory Authenticatoinを使用できるため、32ビットdllが正常に機能していることがわかります。正しくロードされていないのは64ビットdllだけです...
それで、この問題も私を悩ませました。どのように発生したのかはわかりませんが、SSMSの最新バージョンをインストールしたときに発生したのは偶然かもしれません。私の修正は:
[プログラムの追加と削除]に移動します
小さな検索ウィンドウで「sql」と入力するか、「SQL Server用のActive Directory認証ライブラリ」を検索します。
注:Visual Studio 2019をインストールしている場合、これはWindowsのインストール済みプログラムリストに含まれません。コマンドから
MsiExec.exe /I{6BF11ECE-3CE8-4FBA-991A-1F55AA6BE5BF}
を呼び出すことで、同じインストーラーを実行できます。プロンプト。
あの小さな男をアンインストールする
ここに移動して、最新のADALライブラリをダウンロードします(x64を選択):
https://www.Microsoft.com/en-us/download/confirmation.aspx?id=48742
キックのために、再起動
これで、adalsql.dllが適切にロードされます。
私の場合、犯人はVS 2019でした。ADALSQLパッケージの新しいバージョンがあります。私にとっては、「C:\ ProgramData\Microsoft\VisualStudio\Packages\sql_adalsql、version = 16.0.61903.25110、chip = x64、language = en-US」というパスにあり、問題を解決するために必要なバージョンをアンインストールしてインストールしました。
お役に立てれば!
私の場合、追加/削除プログラムには、「Active Directory Authentication Library」のインストール済みインスタンスは表示されませんでした。それでも、 library をインストールしようとすると、新しいバージョンがインストールされたと言って失敗します。
レジストリエディタ(regedt32)を開き、次の検索機能を使用して、自分自身を解放しました。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer
adalsql
を探しています。
キーを含むことでヒットしました
DisplayName: Active Directory Authentication Library for SQL Server
DisplayVersion: 15.0.1300.359
重要なのは、関連するインストーラーへのパスです。私にとってはc:\windows\installer\4c334521.msi
。私はそのmsiを実行し、最終的に「アンインストール」できました。その後、上記の「ライブラリ」リンクからインストーラを実行すると、ようやく機能しました。