I have a WCF service hosted on a Windows Service application and it should return all installed printers on the machine it is hosted on. I have used System.Drawing.Printing.PrinterSettings.InstalledPrinters to retrieve the list of installed printers but I don't know why in Windows Vista it doesn't return all printers.
The host Windows service is run using an account which is a member of Administrators group, has "Log on as a Service" privilege and added app.Manifest with the "requireAdministrator" execution level.
UPDATE: If I use the InstalledPrinters property on a windows application in Vista it returns all printers!