Ho usato questo script senza problemi su macchine x64. Il problema con la chiamata x86 è che lo script cerca le chiavi di registro che su un'istanza x64 sono accessibili solo da PowerShell x64. Per l'invocazione x64 potresti provare a registrare gli snapin poiché questo è il messaggio di errore che stai ricevendo. Esegui come amministratore...
Cambia questo:
cd $sqlpsPath
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
a questo:
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
Una soluzione ancora migliore è non usare add-pssnapin invece di trasformare sqlps in un modulo. Ho un post sul blog qui:http://sev17.com/2010 /07/10/creare-un-modulo-sqlps
Aggiornamento per SQL Server 2012:ora viene fornito un modulo sqlps che puoi installare al posto del blog precedente:http://www.microsoft.com/en-us/download/details.aspx?id=35580