You can find the installed programs in the computers registry. To connect to a remote computer's registry you'll have to have admin privileges on the computer. So the program that you create will have to basically run under a domain admin account.
You can use RegistryKey.OpenRemoteBase
Key to pull the key information from the registry.
http://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.openremotebasekey.aspxYou can basically take this example and replace the registry reading to read a remote computer instead of the local computer
http://www.dreamincode.net/code/snippet1995.htm