|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Net framework 3.0 for XP update causing HP 42xx printers to fail.PC's. Those PC's which also have HP LJ4 or 42xx series printers are all having problems now. When they print, all the pages print overlayed on a single page. We are seeing this on a large number of PC's. I believe the problem is related because MSXML 6.0 was launched from this update, and it updated the universal print driver dll files. If we replace the print driver with the same one they had, then the problem persists. If we update it to the latest driver from HP, the problem goes away. The problem is that I have 500 PC's located around the country and I don't want to manually update the various drivers on all of these. We have these drivers/queues on all these PC's so someone in California can print to a printer in Florida versus faxing or mailing. Is there an easy fix? A DLL to copy? A registry setting I can push? Are your clients printing through windows servers? If so, update the
drivers on the windows servers and the driver update should propagate to the clients the next time they use the printer. Mike Ober. <edavid3***@gmail.com> wrote in message Show quote news:1172771740.626438.8560@j27g2000cwj.googlegroups.com... >I approved the .Net 3.0 update in WSUS 2.0 yesterday for a group of > PC's. Those PC's which also have HP LJ4 or 42xx series printers are > all having problems now. When they print, all the pages print > overlayed on a single page. We are seeing this on a large number of > PC's. > > I believe the problem is related because MSXML 6.0 was launched from > this update, and it updated the universal print driver dll files. > > If we replace the print driver with the same one they had, then the > problem persists. If we update it to the latest driver from HP, the > problem goes away. > > The problem is that I have 500 PC's located around the country and I > don't want to manually update the various drivers on all of these. We > have these drivers/queues on all these PC's so someone in California > can print to a printer in Florida versus faxing or mailing. > > Is there an easy fix? A DLL to copy? A registry setting I can push? > Thank you, but no. They are printing directly to the printer. We do
not utilize Windows print queues. Well, here is the fix I came up with. Between 3 people about 15 hours
of work to fix this .NET bug; call %windir%\system32\cscript %windir%\system32\prnport.vbs -a -r IP_172.26.16.99 -h 172.16.16.99 -o lpr -2e rundll32 printui.dll,PrintUIEntry /if /b "TEMP" /f c:\fixlocation \secure\XPprinterfix\hpc4200b.inf /r "IP_172.26.16.99" /m "HP LaserJet 4200 PCL 5e" rundll32 printui.dll,PrintUIEntry /q /dl /n TEMP I take it back. That doesn't work either. It bombs out with a memory
error on 10% of the machines and then on the rest it sets the default to print on labels. It also doesn't fix HP LJ 4 printers or other older ones. Seems the new HP Universal Print Drivers (UPD) work, though. Here is a script which gets most of my printers; install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 4200 PCL 5e" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 4250 PCL 5e" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 5" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 4" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 6P" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 4050" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 8000 Series PCL 5e" sleep 60 install /ni /h /q /tm /npf /u /pqmigrate"HP LaserJet 8100 Series PCL 6" The script below works when the user is NON-admin. The previous one
required admin rights. rem The sleeps are here because if we didn't sleep we'd end up with all installs running rem all at the exact same time. call %windir%\system32\cscript %windir%\system32\prnport.vbs -a -r IP_172.26.16.10 -h 172.26.16.10 -o lpr -2e rundll32 printui.dll,PrintUIEntry /if /b "dummy" /f c:\zentemp\secure \HP_UPD\hpmcpdpb.inf /r "IP_172.26.16.10" /m "HP Universal Printing PCL 5" /u install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4200 PCL 5e" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4250 PCL 5e" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4 Plus" sleep 60 install /ni /h /q /tm /npf /ru/u /pqmigrate"HP LaserJet 5" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 6P" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4050" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4050 Series PCL 5e" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 8000 Series PCL 5e" sleep 60 install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 8100 Series PCL 6" rundll32 printui.dll,PrintUIEntry /q /dl /n dummy The key here is to install the print driver FIRST by means other than the install.exe. And then tell install.exe to use the driver we've already installed via the /u. This allows one to script it via Zenworks or SMS. I am posting these because I know I'm not alone and there are many others facing this problem. Hopefully this is of some use to others. It's pretty impressive that you've figured it out, and I'm sure there will
be other people who will appreciate this information being out there. Robin S. ----------------------------- <edavid3***@gmail.com> wrote in message Show quote news:1173137789.305903.157240@8g2000cwh.googlegroups.com... > The script below works when the user is NON-admin. The previous one > required admin rights. > > rem The sleeps are here because if we didn't sleep we'd end up with > all installs running > rem all at the exact same time. > > call %windir%\system32\cscript %windir%\system32\prnport.vbs -a -r > IP_172.26.16.10 -h 172.26.16.10 -o lpr -2e > rundll32 printui.dll,PrintUIEntry /if /b "dummy" /f c:\zentemp\secure > \HP_UPD\hpmcpdpb.inf /r "IP_172.26.16.10" /m "HP Universal Printing > PCL 5" /u > > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4200 PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4250 PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4 Plus" > sleep 60 > > install /ni /h /q /tm /npf /ru/u /pqmigrate"HP LaserJet 5" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 6P" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4050" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4050 Series > PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 8000 Series > PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 8100 Series > PCL 6" > > rundll32 printui.dll,PrintUIEntry /q /dl /n dummy > > > The key here is to install the print driver FIRST by means other than > the install.exe. And then tell install.exe to use the driver we've > already installed via the /u. > > This allows one to script it via Zenworks or SMS. I am posting these > because I know I'm not alone and there are many others facing this > problem. Hopefully this is of some use to others. > > Instead of using sleep, use
Start /wait. Here's the first line rewritten: start/wait "Part 1" install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4200 PCL 5e" The "Part 1" is required because you have quote marks in your command line. The start command uses the first "quoted" string as the title of the new window. Mike Ober. <edavid3***@gmail.com> wrote in message Show quote news:1173137789.305903.157240@8g2000cwh.googlegroups.com... > The script below works when the user is NON-admin. The previous one > required admin rights. > > rem The sleeps are here because if we didn't sleep we'd end up with > all installs running > rem all at the exact same time. > > call %windir%\system32\cscript %windir%\system32\prnport.vbs -a -r > IP_172.26.16.10 -h 172.26.16.10 -o lpr -2e > rundll32 printui.dll,PrintUIEntry /if /b "dummy" /f c:\zentemp\secure > \HP_UPD\hpmcpdpb.inf /r "IP_172.26.16.10" /m "HP Universal Printing > PCL 5" /u > > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4200 PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4250 PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4 Plus" > sleep 60 > > install /ni /h /q /tm /npf /ru/u /pqmigrate"HP LaserJet 5" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 6P" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4050" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 4050 Series > PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 8000 Series > PCL 5e" > sleep 60 > > install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet 8100 Series > PCL 6" > > rundll32 printui.dll,PrintUIEntry /q /dl /n dummy > > > The key here is to install the print driver FIRST by means other than > the install.exe. And then tell install.exe to use the driver we've > already installed via the /u. > > This allows one to script it via Zenworks or SMS. I am posting these > because I know I'm not alone and there are many others facing this > problem. Hopefully this is of some use to others. > > On Mar 6, 8:10 am, "Michael D. Ober" <ober***@.alum.mit.edu.nospam> Actually, the problem is the install.exe calls another process, doeswrote: > Instead of using sleep, use > > Start /wait. Here's the first line rewritten: > > start/wait "Part 1" install /ni /h /q /tm /npf /ru /u /pqmigrate"HP LaserJet > 4200 PCL 5e" > not wait, and immediately returns control. So the /wait does wait for install.exe to complete but it doesn't wait for the shelled process to complete. That's the reason the first install is using rundll32 - so non admins get the drivers installed in the scope of Zen/SMS. Then followups run the install with /ru and /u which still launch the external process in the USERS context. But this works because at this point the driver is already installed. The sleeps make this process take forever. I schedule it to run at night though. It does have one issue where the default paper type might be changed on some printers due to differences in the print drivers. And you CAN NOT change it & make it stick. So we are testing on these printers uninstalling and reinstalling using the rundll32. That M$ XPS driver that got installed with .NET 3.0 / MSXML 6 really sucks. |
|||||||||||||||||||||||