Let’s say you’re running Windows 7 on a computer connected to a local network. There is a shared printer running on a different machine on the network. The drivers for the printer are installed on the remote machine, and the printer is shared.
You think that you’ll just sit down at your puter, use the Add Printer feature, connect to the remote printer, the driver will be copied over to your machine automagically, and you’ll be off and running. But then you see this:
Windows cannot connect to the printer. Operation could not be completed (error 0x0000007e).
There is a common solution you can find on the web involving creating a new local port and inserting the network path to the remote printer, but you may find that doesn’t work either!
The solution to your problem is very simple, and is even available as a Hotfix from Microsoft. You don’t really even need the hotfix, though. Here’s how you “fix the glitch”.
It turns out that this “cannot connect to printer” error (0x0000007e) is well-known to Microsoft. Check out this Technet forum thread entitled “Windows 7 Printer Problems”:
winerror 0x7e
126 ERROR_MOD_NOT_FOUND <–> 0xc0000135 STATUS_DLL_NOT_FOUNDWhen the printer was added to the server, the driver created a registry to copy this file which in not neccessary since the client already has the file.
During the connection process, the driver resets the path from \windows\system32 to the print drivers directory \windows\system32\spool\drivers\x64\3 (or w32x86\3) but never sets it back to default and the spooler process does not reset it either and looks for the color module mscms.dll in the drivers directory.
Look at the registry setting of the problem printers on the server
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\PRINTERNAME\CopyFiles
Is the module value \windows\system32\mscms.dll or just mscms.dll?
I think if you copy the mscms file to the drivers directory on the client you can workaround this issue. You could also remove the data from the Module value and verify creating the connection succeeds and printing is as expected.
Further down the thread, we find there is actually a hotfix available:
I suppose this is the solution: http://support.microsoft.com/?kbid=982728
It turns out this hotfix will be included in Windows 7 SP1!! Apparently Microsoft didn’t think it was important enough to test the fix thoroughly and release it early – despite the huge number of people having this problem if my search results are any indication.
You can request the hotfix if you really want to, or even wait for Windows 7 SP1, but the “workaround” is so simple that there’s no point in trying the other options:
- Go to the
C:\Windows\system32\
directory and find the file “mscms.dll
“ - Copy that file to:
C:\windows\system32\spool\drivers\x64\3\
if you are using 64-bit Windows 7C:\windows\system32\spool\drivers\w32x86\3\
if you are using 32-bit Windows 7
That’s it.
Now try to connect to the remote printer again. This time, it will work!
This error does not appear to depend on the type of printer you have, or what driver you use. On 10 computers, I saw the problem 5 times. It seems to be a toss-up as to whether it will happen or not.
Hopefully now you won’t have to spend 4 hours looking for the solution like I did!
If all else fails, you can always treat yourself to a new printer!
I had the same problem on a client workstation, but it turned out the C:\ drive on the workstation was out of space. I cleaned it up and reinstalled the shared printer and no more issues.
Thank you so much! This resolved the issue for me. You saved me 4 hours of work. 🙂
Thanks this works for me !!!
not helpful for me
i try it but steel not connect printer to client win 7, its connect to win xp but not in win 7 on same server
can u give me other solution
Thanks… this works for me !
Thanks… It worked
Never had any issues until Windows 2008 R2 update last Saturday night.
Windows 2008 R2 server and over 100 users with windows 7×64.
Applied this fix, still doesn’t work.
I have no idea if this fix would work in an environment where Win 2008 R2 is involved. For local network printers (like a home or home office setup without a server), it usually does the trick.
Thanks! This works for me =))
Thank! It fantastic for me, Work done!
Hi,
I have win 7 64 bit on my machine and the printer (canon imageclass D860 laser) is on my networked machine which is running win 7 32 bit. Would I use the above parameters to get it printing from my machine?
regard
Bob
I would give it a whirl and see what happens. But you might need to go onto the 32-bit print server and add the 64-bit driver for that printer.
Thanks bro…
Clicking “Print” from Mozilla Firefox used to bring up my Brother and my HP printer on USB1 and USB2 under Win 7, but no more. Although the Brother has now been set as the default printer, it is only the HP printer which can be selected for printing. I get the message “Windows cannot connect to the printer” message. Both printers are not on a network and are just connected via USB cables. HELP!
Can you print from anything besides Firefox? I would probably go into Control Panel -> Devices and Printers, right-click each printer, and Remove it. Then go to Brother’s (and/or HP’s) web site and download an official updated driver.
Unfortunately, printing problems are a dime a dozen these days and rarely make any sense. For example, with 10 computers a 1 network printer, 7 of them will work with the newest driver, but 3 of them will only work reliably with an older driver.
I frequently joke that if I could design a printer + driver that worked 100% of the time for 100% of people, I would be a billionaire overnight. 😉
Thanks, Scottie for help. Will delete the Brother and re-install and see what happens.