Eu usei este script sem problemas em máquinas x64. O problema com a invocação x86 é que o script procura por chaves de registro que em uma instância x64 só podem ser acessadas a partir do x64 PowerShell. Para a invocação x64, você pode tentar registrar os snapins, pois essa é a mensagem de erro que você está recebendo. Executar como administrador...
Mude isso:
cd $sqlpsPath
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
para isso:
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
Uma solução ainda melhor é não usar add-pssnapin em vez de transformar o sqlps em um módulo. Tenho uma postagem no blog aqui:http://sev17.com/2010 /07/10/making-a-sqlps-module
Atualização para SQL Server 2012 - agora vem um módulo sqlps que você pode instalar em vez do blog acima:http://www.microsoft.com/en-us/download/details.aspx?id=35580