x64 マシンで問題なくこのスクリプトを使用しました。 x86 呼び出しの問題は、x64 インスタンスでは x64 PowerShell からのみアクセスできるレジストリ キーをスクリプトが検索することです。 x64 呼び出しの場合は、受け取ったエラー メッセージであるため、スナップインの登録を試すことができます。管理者として実行...
これを変更:
cd $sqlpsPath
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
これに:
cd $sqlpsPath
$framework=$([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory())
Set-Alias installutil "$($framework)installutil.exe"
installutil Microsoft.SqlServer.Management.PSSnapins.dll
installutil Microsoft.SqlServer.Management.PSProvider.dll
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
さらに良い解決策は、 add-pssnapin を使用せず、代わりに sqlps をモジュールに変換することです。ここにブログ投稿があります:http://sev17.com/2010 /07/10/make-a-sqlps-module
SQL Server 2012 の更新 - 上記のブログの代わりにインストールできる sqlps モジュールが同梱されています:http://www.microsoft.com/en-us/download/details.aspx?id=35580