I have been on a client's site racking my brains for quite a while in regards to a printer deployment issue. The current setup that i was working with was a Virtualized Windows 2008 Print Server, Windows 7 clients. We were using group policy to deploy the printer. It was a very random issue. Sometimes the printer would deploy to the computer and sometimes it wouldn't. There was no consistency to the problem, however when the printer didn't deploy if you tried to manually add the printer to the computer with an administrators login you would get the following error message :
Connect to Printer
Windows cannot connect to the printer. The specified port is unknown.
Various websites suggested checking various GP policy settings on the deployment rights, such as turning off UAC and elevating printer rights to install non assigned printers etc. None of these fixed the issue. I tested it by blocking all policies to the computer and just trying to deploy the printer and no other settings, but it failed. I also tried deploying the printer Via Batch script which generated the same error message and Visual Basic script also caused an error.
After many investigations, such as clean built machines, user profiles, cleaning DNS, static DNS entries, permission checking, network topology, group policy changes, registry tweaks all of which didnt work, i finally found a fix for the issue. In fact it was nothing I was doing wrong it was a Microsoft programming error that could be fixed with the following hotfix :
This resolved the issue on my clients site and was a welcome relief. The client runs Windows Server Update Services, so i looked on the catalogue for the hotfix to deploy this as part of the automatic windows update. Unfortantely the hotfix is not listed in the catalogue and needs to be deployed individually.
How to Deploy Microsoft Hotfix Kb2748246
Firstly please remember to test the deployment on a offline system before deploying it to your live environment. The following requisites are required to deploy this software :
- To apply this hotfix, you must be running Windows 7 Service Pack 1 (SP1) or Windows Server 2008 R2 SP1.
- Hotfix Downloaded and placed in a network location where it can be installed from (authenticated computers needs read access)
- An area where a log file can be updated can be same as above (authenticated computers need read/write access)
So deploy this hotfix we create a batch file with the following text :
if not exist "C:\Windows\servicing\Packages\Package_for_KB2748246~31bf3856ad364e35~x86~~126.96.36.199.mum" goto Deploy
wusa.exe "\\[network location of where hotfix has been downloaded]\Windows6.1-KB2748246-x86.msu" /quiet
echo %ComputerName% "Has Run the install Process" >> "\\[network location of where log file will be held]\Install.txt"
What the text above does its checks the local machine for a file that installs with the hotfix. If the file exists then the hotfix has already been run and it does not run the install again. if the file doesnt exist the hotfix needs to be applied and it does this. It also adds an entry in a text file with its name saying it has deployed the hotfix.
Once you have your batch file and the hotfix saved in the correct location, you need to create a Group Policy and attached it to a Organisation unit in Active directory that contains the computers you wish to deply to. Once you have created the GP, Add the file to the batch file to the start up script in the group policy : Computer Configurations > Policies > Windows settings > scripts > startup.
All you need to do is wait for the group policy to replicate and then restart the computers and it should deploy.
Once its deployed you may require 1 more gpupdate and/or reboot to allow the printer to appear for the users.