Once we create an UDL File and run it on 64 Bit OS, it will list down all the 64 bit OLE DB providers installed on the machine.

The reason behind for this is simple. When you double click on a UDL file on a 64 bit machine, it’ll enumerate only the 64 bit OLE DB Providers and if we have the 32 bit Ole DB providers installed, we will not be able to find that in the enumerated list.

Create a udl file with the name test.udl under the path, C:\. 

When we have created a UDL file on a 64 bit machine and try to open it,  the following 

"C:\Program Files\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile  C:\test.udl

Command will be called through C:\windows\system32\rundll32.exe.

Here both Oledb32.dll and rundll32.exe are 64 bit and will not enumerate the 32bit Dlls.

 

Then how to run the UDL which lists down the 32bit Dlls? 

We can find the 32bit version of Oledb32.dll under the path: C:\Program Files (x86)\Common Files\System\Ole DB

and 32 bit version of rundll32.exe under the path: C:\WINDOWS\SysWOW64.

 

We’ll need to  execute the command below from a command line or Start/Run :

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl

Check the paths of rundll32.exe and oledb32.dll while running this command! 

Here you have your 32 bit OLE DB Providers.