The Salesforce ODBC driver enables you to work with Salesforce data in Windows PowerShell. Note that the procedure outlined in this blog is the same for any ODBC driver, so it's still relevant even if you are using PowerShell with another ODBC driver.
The Salesforce ODBC driver is available to download from the Easysoft web site:
For installation instructions, refer to the Salesforce ODBC driver documentation.
Before you can use the Salesforce ODBC driver to connect PowerShell to Salesforce, you need to configure an ODBC data source. An ODBC data source stores the connection details for the target database (in this case, Salesforce) and the ODBC driver that is required to connect to it (in this case, the Salesforce ODBC driver).
To create a Salesforce ODBC driver data source:
Setting | Value |
---|---|
DSN | Salesforce |
User Name | The name of your Salesforce user. For example, myuser@mydomain.com . |
Password | The password for your Salesforce user. |
Token |
The security token for your Salesforce 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 Salesforce emails the security token to the email address associated with your Salesforce user account. If you have not received a security token, you can regenerate it. Salesforce will then email the new security token to you. To regenerate your security token, log in to Salesforce and then choose Setup from the user menu. Search for "security token" in the Quick Find box. Choose 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. |
In a PowerShell window, enter this code to retrieve some ODBC data:
PS C:\> $connectionstring = 'DSN=MyODBCDataSource'
PS C:\> $sql = 'select top 1 * from account'
PS C:\> $connection = New-Object System.Data.Odbc.OdbcConnection($connectionstring)
PS C:\> $connection.open()
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)
1
PS C:\> $connection.close()
PS C:\> $table
Id : 001i000000AOq3NAAT IsDeleted : 0 MasterRecordId : Name : United Oil & Gas Corp. Type : Customer - Direct ParentId : BillingStreet : 1301 Avenue of the Americas New York, NY 10019 USA BillingCity : New York BillingState : NY BillingPostalCode : BillingCountry : United States BillingStateCode : NY BillingCountryCode : US BillingLatitude : . . .