I had similar issues getting invoke-sqlcmd to work without installing SQL Server Management Studio. What I found is that the bare minimum (without SSMS) needed to run invoke-sqlcmd are three files:
Microsoft® Windows PowerShell Extensions for SQL Server® 2008 R2
Microsoft® SQL Server® 2008 R2 Shared Management Objects
Microsoft® System CLR Types for SQL Server® 2008 R2
found here: http://www.microsoft.com/en-us/download/details.aspx?id=16978
Then open up Powershell and enter:
set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil
installutil -i "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
installutil -i "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll"
Add-PSSnapin -Name SqlServerProviderSnapin100
Add-PSSnapin -Name SqlServerCmdletSnapin100
If you installed the 64-bit files you will need to run:
set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil
installutil -i "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
installutil -i "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll"
Add-PSSnapin -Name SqlServerProviderSnapin100
Add-PSSnapin -Name SqlServerCmdletSnapin100
Also, make sure you are using the correct version of Powershell as the 64-bit version of Powershell cannot use the 32-bit version of "Microsoft.SqlServer.Management.PSSnapins.dll" and "Microsoft.SqlServer.Management.PSProvider.dll"