Ran into an interesting problem today with Windows 8, Printers, and CNames. We have a Windows 2008R2 print server and when Windows 8 clients would attempt to connect to a printer via the AD Directory they would get a generic error stating:
“Windows couldn’t connect to the printer. Check the printer name and try again. If this is a network printer, make sure that the printer is turned on, and that the printer address is correct.”
Connecting to the server via the FQDN UNC (\\cname.mydomain.local) and then clicking on the printer failed as well, but it gave me a little more information:
I had already modified the regKeys HKLM\System\CurrentControlSet\services\LanmanServer\Parameters\DisableStrictNameChecking and HKLM\SYSTEM\CurrentControlSet\Control\Print\DNSOneWire setting both to 1. I also saw a post requiring the CName to be added to the \windows\system32\drivers\etc\hosts file.
After all of those changes it still was not working on Windows 8 machines, however Windows 7 machines were working fine. On a whim I added the FQDN (printer.mydomain.local) to the hosts file and that fixed the issue.
I did some more testing and it looks like Windows 8 always maps to the printer using the AD Attribute serverName, which is the FQDN. Windows 7 uses the printer Attribute shortServerName.