Get-OLEDBProvider.ps1
<#PSScriptInfo .VERSION 1.0.0 .GUID c713e0eb-2464-4428-8562-6f371dde791d .AUTHOR Jimmy Briggs .COMPANYNAME .COPYRIGHT .TAGS OLEDB Provider Connection Database .LICENSEURI .PROJECTURI https://github.com/jimbrig .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES Initial Release .PRIVATEDATA #> <# .SYNOPSIS Returns a list of OLEDB providers installed on the system. .DESCRIPTION Returns a list of OLEDB providers installed on the system. .NOTES ## About OLE DB Providers are used to connect to different data sources. This function returns a list of OLE DB Providers installed on the system. *NOTE: OLE DB providers are 32-bits and 64-bits aware/specific.* ## Properties The following properties are returned for each OLE DB Provider: - Name (`SOURCES_NAME`) - Description (`SOURCES_DESCRIPTION`) - CLSID (`SOURCES_CLSID`) - Type (`SOURCES_TYPE`) ## Types The following are the possible `SOURCES_TYPES` for an OLE DB Provider: - `0` - Binder - `1` - DataSource_MDP - `2` - DataSource_TDP - `3` - Enumerator .EXAMPLE Get-OLEDBProvider Default with no parameters. This will return the name, description, type, and CLSID (GUID) of each provider. .EXAMPLE Get-OLEDBProvider | ?{$_.SOURCES_DESCRIPTION.IndexOf('SQL Server') -ge 0} Returns the same information as the default, but only for providers that have 'SQL Server' in the description. .EXAMPLE Get-OLEDBProvider | Format-Table -AutoSize Returns the same information as the default, but in a table format. .EXAMPLE Get-OLEDBProvider | Format-List Returns the same information as the default, but in a list format. .EXAMPLE Get-OLEDBProvider | Out-GridView Returns the same information as the default, but in a grid view format. .EXAMPLE Get-OLEDBProvider | ConvertTo-Csv > .\OLEDBProviders.csv Returns the same information as the default, but in a CSV file in the current working directory. .LINK https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms711269(v=vs.85) .LINK https://learn.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbenumerator.getrootenumerator?view=dotnet-plat-ext-6.0 .LINK http://dbadailystuff.com/list-all-ole-db-providers-in-powershell .LINK https://github.com/josepmv/dbadailystuff/blob/master/list_all_OLEDB_Provider.ps1 #> [CmdletBinding()] Param () $providers = [System.Data.OleDb.OleDbEnumerator]::GetRootEnumerator() # New-Object System.Data.OleDb.OleDbEnumerator ForEach ($provider in $providers) { $p = New-Object PSObject For ($i = 0; $i -lt $provider.FieldCount; $i++) { $p | Add-Member -MemberType NoteProperty -Name $provider.GetName($i) -Value $provider.GetValue($i) } $p | Select-Object SOURCES_NAME, SOURCES_DESCRIPTION, SOURCES_TYPE, SOURCES_CLSID } |