Użyłem tego skryptu bez problemu na maszynach x64. Problem z wywołaniem x86 polega na tym, że skrypt szuka kluczy rejestru, które w instancji x64 są dostępne tylko z x64 PowerShell. W przypadku wywołania x64 możesz spróbować zarejestrować przystawki, ponieważ jest to komunikat o błędzie, który otrzymujesz. Uruchom jako administrator...
Zmień to:
cd $sqlpsPath
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
do tego:
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
Jeszcze lepszym rozwiązaniem jest nie używanie add-pssnapin zamiast zamiany sqlps na moduł. Mam post na blogu tutaj:http://sev17.com/2010 /07/10/tworzenie-modułu-sqlps
Aktualizacja dla SQL Server 2012 — teraz dostarcza moduł sqlps, który można zainstalować zamiast powyższego bloga:http://www.microsoft.com/en-us/download/details.aspx?id=35580