 <p>With no client driver at all, you can simply execute the <code>psql</code> command-line then read and process its output. This is particularly useful when invoking it as <code>psql -qAt</code> and/or using <code>\copy</code>.</p> <p>Otherwise you <em>must</em> have some kind of client driver. Powershell has no built-in support code for the PostgreSQL protocol, so it therefore <em>cannot</em> communicate with PostgreSQL without some kind of client driver. <a href="http://www.npgsql.org" rel="nofollow">nPgSQL</a> would be the most obvious choice since it integrates well in .NET and is composed only of .NET assemblies. You could probably bundle nPgSQL up as a Powershell extension... but <a href="https://github.com/palpha/Simple-PostgreSQL-module-for-PowerShell" rel="nofollow">as usual, someone already did that</a>.</p> <p>Otherwise you probably want to install psqlODBC, which is a simple <code>msiexec</code> to install then <a href="http://stackoverflow.com/q/9217650/398670">usable using the usual ODBC support</a>.</p> <p>(The only reason Powershell can talk to MS SQL without installing additional drivers is that drivers for MS SQL are built in).</p>