Get_ODBC_DSNs_Providers

Snippet Name: Get_ODBC_DSNs_Providers

Tags:

Created Date: 2025-06-16 13:12:49
Last Modified Date: 2025-05-31 10:32:08

Dependencies:

DBA Notes:

Sample Output:

Title: Get ODBC DSNs Providers
Author: user
Via PowerShell, how can I get a list of ODBC server DSNs, as well as a list of installed providers

Author: ChatGPT
You can retrieve ODBC **System DSNs** and **User DSNs** along with installed ODBC **drivers** and **providers** using PowerShell.

### **Get ODBC DSNs (System & User)**
Use the `Get-ItemProperty` cmdlet to retrieve DSNs from the Windows registry:

```powershell
# Get System DSNs
$systemDSNs = Get-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"

# Get User DSNs (for current user)
$userDSNs = Get-ItemProperty -Path "HKCU:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"

# Display results
Write-Host "`nSystem DSNs:"
$systemDSNs.PSObject.Properties | ForEach-Object { Write-Host "$($_.Name) - $($_.Value)" }

Write-Host "`nUser DSNs:"
$userDSNs.PSObject.Properties | ForEach-Object { Write-Host "$($_.Name) - $($_.Value)" }
```

---

### **Get Installed ODBC Drivers**
To list installed ODBC drivers:

```powershell
# Get Installed ODBC Drivers
$drivers = Get-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"

Write-Host "`nInstalled ODBC Drivers:"
$drivers.PSObject.Properties | ForEach-Object { Write-Host "$($_.Name) - $($_.Value)" }
```

---

### **Get Installed OLE DB Providers**
For a list of installed **OLE DB providers**, query the COM objects:

```powershell
# Get Installed OLE DB Providers
$providers = New-Object -ComObject "ADOX.Catalog"
$providersList = $providers.ActiveConnection.ProviderNames

Write-Host "`nInstalled OLE DB Providers:"
$providersList | ForEach-Object { Write-Host $_ }
```

---

### **Alternative: Use `odbcconf.exe` to List DSNs**
If you want a command-line approach:

```powershell
cmd /c "odbcconf.exe /S /L"
```

This will return system DSNs and drivers.

Would you like a version that outputs structured data like JSON or CSV for easy manipulation?


Leave a Reply