Salesforce SOQL from Windows PowerShell

The Salesforce ODBC Driver extends the number of applications that you can use Salesforce SOQL from. In this blog, we describe how to run SOQL statements from a Windows PowerShell session by using our ODBC driver.

To get started:

Before you can use the ODBC Driver to connect your application to, you need to configure an ODBC data source. An ODBC data source stores the connection details for the target database (e.g. and the ODBC driver that is required to connect to it (e.g. the ODBC driver).

  1. Start ODBC Administrator. To do this, in the Windows Run dialog box, type:
  2. In the ODBC Administrator, choose the System DSN tab, and then choose Add.
  3. In the Create New Data Source dialog box, choose Easysoft Salesforce SOQL ODBC Driver, and then choose Finish.
  4. Complete the Easysoft Salesforce SOQL ODBC Driver DSN Setup dialog box:
    Setting Value
    User Name The name of your user. For example,
    Password The password for your user.
    Token The security token for your user, if required.

    To find out whether you need to supply a security token, choose the Test button. If the connection attempt fails with an error which contains LOGIN_MUST_USE_SECURITY_TOKEN, you need to supply one. emails the security token to the email address associated with your user account. If you have not received a security token, you can regenerate it. will then email the new security token to you. To regenerate your security token, log in to and then choose Setup from the user menu. Search for "security token" in the Quick Find box. Click Reset Security Token in the Reset Security Token page. When you receive the token in your email client, copy it and then paste it into the Token field.

  5. Use the Test button to verify that you can successfully connect to

In a PowerShell window, enter this code to retrieve some ODBC data:

PS C:\> $connectionstring = 'DSN=MyODBCDataSource'
PS C:\> $sql = 'SELECT Account.Name, (SELECT Contact.LastName FROM Account.Contacts) FROM Account'
PS C:\> $connection = New-Object System.Data.Odbc.OdbcConnection($connectionstring)
PS C:\> $
PS C:\> $command = New-Object system.Data.Odbc.OdbcCommand($sql,$connection)
PS C:\> $adapter = New-Object system.Data.Odbc.OdbcDataAdapter($command)
PS C:\> $table = New-Object system.Data.datatable
PS C:\> $adapter.fill($table)
PS C:\> $connection.close()
PS C:\> $table

Name                                LastName
----                                --------
GenePoint Ltd                       Frank
United Oil & Gas, UK                James
United Oil & Gas, Singapore         D'Cruz
United Oil & Gas, Singapore         Ripley
Edge Communications                 Forbes
Edge Communications                 Gonzalez
Burlington Textiles Corp of America Rogers