Eu tive problemas semelhantes ao fazer com que o invoke-sqlcmd funcionasse sem instalar o SQL Server Management Studio. O que eu descobri é que o mínimo (sem SSMS) necessário para executar o invoke-sqlcmd são três arquivos:
Extensões do Microsoft® Windows PowerShell para o SQL Server® 2008 R2
Objetos de gerenciamento compartilhado do Microsoft® SQL Server® 2008 R2
Tipos de CLR do Microsoft® System para o SQL Server® 2008 R2
encontrado aqui: link
Em seguida, abra o Powershell e digite:
set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil
installutil -i "C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
installutil -i "C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll"
Add-PSSnapin -Name SqlServerProviderSnapin100
Add-PSSnapin -Name SqlServerCmdletSnapin100
Se você instalou os arquivos de 64 bits, precisará executar:
set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil
installutil -i "C:\Program Files\Microsoft SQL Server0\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
installutil -i "C:\Program Files\Microsoft SQL Server0\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll"
Add-PSSnapin -Name SqlServerProviderSnapin100
Add-PSSnapin -Name SqlServerCmdletSnapin100
Além disso, verifique se você está usando a versão correta do Powershell, pois a versão de 64 bits do Powershell não pode usar a versão de 32 bits do "Microsoft.SqlServer.Management.PSSnapins.dll" e do "Microsoft.SqlServer.Management". PSProvider.dll "