Recommended Posts

Im having an issue following HP's Drvier preconfiguration guide

Im using the latest version of the universal print driver and thus have a file called hpcpu215.cfm saved in the %systemroot%\system32\spool\drivers \x64\3\ path

Install the driver

Select one of my printers and choose the new driver

Settings work as expected, this is the tab shown under the printer:


working.thumb.png.573f1e9189866acd1652a112ebd1db9b.png

I then use this Powershell script to change the driver on all of my other printers

    $driver = "HP Universal Printing PCL 6 (v6.6.0)"
    
    $printers = gwmi win32_printer
    
    foreach($printer in ($printers|Where{$_.DriverName -like 'HP Universal Printing PCL 6 (v6.2.1)'})){
            $name = $printer.name
            & rundll32 printui.dll PrintUIEntry /Xs /n $name DriverName $driver
    }

Which changes the drivers as expected;

However, when i then go into the settings of that printer; the driver is no longer using my preconfigurations.

notworking.thumb.png.9f2b1583661c272388161e35fb88d08f.png

Been tearing my hair out on this, if anyone has any ideas that would be amazing.


 

Link to comment
https://www.neowin.net/forum/topic/1365798-hp-universal-print-driver-preconfig/
Share on other sites

I am guessing you are a windows shop.  if you are a windows shop, I hope you are running active directory.  If you are running active directory, perhaps you should run a print server.  If you run a print server all of your issues go away as it would be a central repository for drivers (all clients look to the server for the drivers) and it can also default all settings to whatever you choose them to be.  1 and done kind of thing.

2 minutes ago, sc302 said:

I am guessing you are a windows shop.  if you are a windows shop, I hope you are running active directory.  If you are running active directory, perhaps you should run a print server.  If you run a print server all of your issues go away as it would be a central repository for drivers (all clients look to the server for the drivers) and it can also default all settings to whatever you choose them to be.  1 and done kind of thing.

Hi

Yes we are

 

This is on one of the print servers. 

 

I have precondigured the hp UPD to default to B&W, and disable mopier mode. 

 

We have over 400 printers and are slowly changing models, so without this it's a lot of manual work. Sadly for some reason it's not working. 

When you setup the windows print server printer object properties, go to advanced, printing defaults.  You will be able to select the default behavior of the printer driver there, when computers connect to the printer object they will get the defaults you have applied to that object.  The driver drop down is also available to choose whatever driver you wish to push out.  And if you are using the print server role, you can go to "deployed printers" and have it create a group policy to deploy that printer to the computers in your environment.  Alternatively you can use group policy preferences to push the printer objects out (with whatever driver you choose) or delete the printers.  The printers can be deployed as a user object or computer object and it can be based on a group or an OU or a combination of the both.  Or you could use kix, or you could use printui.dll to connect to those printers or remove those printers.  

 

FYI, those drivers are not on a local computer connected to a print server.  Those drivers are on a local computer.  

 

The driver properties would read Printer on Print server if it were connecting to a print server.  You are doing this very manually.

 

 

 

Thats not really what i need; 

 

Sorry

 

We have 12 Terminal server hosts; one of our applications requires the printers to be installed locally

 

which means we have 400 printers on each of the servers (400 x 12 ) .

 

Its a pain when we change printers; what i am doing should work but doesnt

 

And the issue is with the HP UPD Preconfig (HP Park) not the actual admin of the drivers etc

Well it could be done my way as well.  

 

But you should be using a terminal server universal print driver, not that.  

 

uniprint 

https://www.uniprint.net/en/

 

screwdrivers

https://www.tricerat.com/solution/screwdrivers/

 

These allow pass through to the client printer without the need to install every different printer on the planet that they may have (home printers or office printers)

 

that universal print driver is not what you should be using.   I believe 2012 comes with its own rendition to this because printing is so terribly managed on terminal servers. 

 

 

Also, very much yes, you can absolutely do it the way I suggest for terminal servers. If you do it the way I suggest and have rds pass the printer object through to the client, it would use the clients settings.  Even a thin client of if it has a local printer setup on it. Or you could simply have the gpo on the user object based on group membership to connect to the proper printer on the print server with the correct settings. 

 

But I would use uniprint or screwdrivers or the built in one that comes with windows (if you are on a version that supports it) esp if not on thin clients.  That is a terminal server/Citrix server universal print driver, not what you are using which is a universal print driver for printers (which really screws with the terminology as universal print drivers for terminal servers came out with windows 2000 server to help manage ts printers).   No need to install a million drivers, no need for a million printer objects for users to fish through.  

@sc302in an ideal world where companies actually used the recommended setup that would work, but a lot of companies don't and create thousands of printer objects and clog up the print server.

5 minutes ago, Matthew S. said:

@sc302in an ideal world where companies actually used the recommended setup that would work, but a lot of companies don't and create thousands of printer objects and clog up the print server.

Do you realize the time and effort another $1000 per server can save?  You have already invested this much what is a little more to do it right.  Or if you have a server with that tech built in, why would you do something so time consuming and difficult to support?  Or if it is local why not have group policy connect to the printer object on your print server per user? Or if the computers already have mapped printers why not just only install the printer driver on each host so that client default printer pass through would function?

Oh I'm not saying I don't agree with you, but really, even the company I work for doesn't use the built-in tech, hell we still use local profiles vs. remote...

  • 4 weeks later...

Hi Storm,

 

 Just in case you're still watching this thread,  I just wanted to confirm that this is happening here too. It looks to be a bug specifically in the v6.6.0 drivers. I've thrown my bag-of-tricks at it a number of times but the they keep sliding off. The only thing to suggest here is stepping back to the v6.5.0 drivers and then asking HP to look at it. I will as soon as I have time!

 

 The best I've got so far is that there's a caching mechanism being used nowadays and it looks a bit logistically tied up for the latest drivers. I haven't yet managed to find time to try all the angles and identify the breaking point but my gut feeling is that HP have dropped the ball on cross-testing the caching of settings properly for all deployment methods. right now, the .CFM drop method has interesting programmatic issues that people like yourself and I only notice from our front-line usage.

 

 FWIW -

 

 From what I've seen so far for the newer drivers;

 1) During the driver staging, the .CFM file gets copied to a .CFG file with a name related to the driver's name. The name is different for generic vs specific versions and also for the flavour of driver (PS vs PCL) so you get things like "hpcpuXYZ.cfg", "hpcpuXYZ_PS.cfg", "hpcpuXYZ_P6.cfg" appearing in the driver directory .

2) When the queue "instance" is created from the pre-staged driver, a copy of that generated  .CFG is added to "%ProgramData%\Hewlett-Packard\HP Print Settings" with an abstract name such as "HP<6-digits-in-lowercase-alphanumerics>.cfg" that links back to the print queue itself  via a registry entry.

 

 I've monitored those two stages separately with ProcMon and the pre-staging seems to open all the right files and should work. Watching the first instance of a print queue being created vs the second is interesting though from a coder's point of view.

 

 When the first instance of the queue is created, you can see the abstract files being created in %PROGRAMDATA% twice which suggests to my programmer head that the there's two code paths running in turn. The first code path fires to properly read the config files and set up the registry keys to initialise a working queue and leaves you with a working setup. The second code path (most probably what fires up secondarily and then also for every instance from then on) probably fires correctly but doesn't appear to actually do anything useful. (It seems to write the registry entries correctly but just lacks the code to prod the queue to reload the settings and leaves the queue working with whatever it had in memory at the time)

 

My gut-feeling is that HP have just whoopsied the code a bit... trying to explain it without hours of detailed work might take a while though...

 

My best advice is to step away from the v6.6.0 drivers if you can avoid them for the moment and just use the v6.5.0 until the dust settles.

 

Regards,

 

Keith

On 6/13/2018 at 5:53 AM, Storm said:

We have 12 Terminal server hosts; one of our applications requires the printers to be installed locally

 

which means we have 400 printers on each of the servers (400 x 12 ) .

Any hope that you might have tested the printer redirection on RDS 2016?  I had a similar situation with an old DB program, however, after testing deployment to our new RDS 2016, the MS printer redirection driver worked like a charm and the old program was able to see the redirected printers as locals.....not sure what changed between RDS 2012 R2 and 2016, but something did.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Helium Browser 0.13.5.1 by Razvan Serea Helium is a private, fast, and honest Chromium-based web browser — built for people, with love. It offers the best privacy by default, unbiased ad-blocking, and a clean experience free from bloat and noise. Proudly based on Ungoogled-Chromium, Helium removes Google’s clutter while keeping a fast, efficient development pipeline. With thoughtful touches like native !bangs and split view, Helium is a people-first, fully open-source browser that puts control back in your hands. Privacy, security, and control come first. Ads, trackers, and third-party cookies are blocked automatically, HTTPS is enforced everywhere, and all Chromium extensions work seamlessly — while Google can’t track your activity. Helium’s 13,000+ offline-ready !bangs let you jump straight to sites or AI tools like ChatGPT instantly. Open-source, people-first, and unbiased, Helium delivers a browsing experience that’s fast, secure, and free from noise, ads, and compromises. Helium Browser key features: Performance Fast, efficient, and lightweight — built on Chromium’s optimized engine. Energy-saving and consistent — stays fast over time without slowing down. No bloat — stripped of unnecessary components for maximum speed. Minimalist interface — compact, clean, and distraction-free. Customizable toolbar — hide elements you don’t need. Smooth and stable — no flicker, lag, or animation glitches. Comfort-focused experience — intuitive and unobtrusive. Privacy & Security Best privacy by default — blocks ads, trackers, phishing, and third-party cookies. Unbiased ad-blocking — powered by community filters and uBlock Origin. No telemetry or analytics — zero background web requests on first launch. Strict HTTPS enforcement — warns for insecure sites. Passkeys supported — modern authentication made simple. No built-in password manager or cloud sync — your data stays yours. Extension Compatibility Full Chromium extension support — including MV2 extensions. Anonymized Chrome Web Store requests — Google can’t track extension installs. Extended MV2 support — maintained for as long as possible. Smart Features Native !bangs — browse faster using 13,000+ offline-ready shortcuts. AI integration — use !chatgpt and others directly from the address bar. Offline functionality — bangs work without an Internet connection. Philosophy People-first design — open source, transparent, and community-driven. No ads, no noise, no bias — privacy and honesty over profit. Helium Browser 0.13.5.1 changelog: 7019790c revision: bump to 5 (#2001) b65ab87b bump-platform: fallback to clone if tarball fails (#2002) 1ff4e281 merge: update to chromium 149.0.7827.196 (#2000) b71fd25a patches: refresh for chromium 149.0.7827.196 53235ce9 merge: update ungoogled-chromium to 149.0.7827.196 3c92902a Update to Chromium 149.0.7827.196 d0a8c29d domsub: exclude docs/help domains from substitution (#1983) 2a53b77d Fix typos in comments and docstrings (#3828) Download: Helium 64-bit | Portable 64-bit |~100.0 MB (Open Source) Download: Helium ARM64 | Portable ARM64 Links: Helium Home Page | macOS | Linux | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Xbox Insiders get Xbox 360 achievements and Gamertag character upgrades by Pulasthi Ariyasinghe Microsoft is continuing its fast-paced update schedule for Xbox Insiders. Today, the company announced a new slate of features it is rolling out to Xbox Insiders in the Alpha Skip-Ahead ring, which includes an expansion to the gamertag system, Xbox 360 achievements, and more. The unique Gamertag that Xbox users can choose for their profile is getting more characters. Instead of the 12-character limit, Insiders will now be able to get a Gamertag that's 15 characters long. The 12-character limit will still apply to Gamertags that are not unique or contain any non-Latin characters. Meanwhile, Microsoft is adding Xbox 360 game support to its Game Hubs. Selecting an installed Xbox 360 game on a modern Xbox console will now show achievement progress, captures, and other information. Achievement pop-ups are back for these classics too, which should be good news for achievement hunters. The next change is for Xbox players who can't wait to jump into their games when an update is required. "If a game requires an update and is available to stream through your Game Pass membership, you can start playing immediately with cloud gaming while the update downloads in the background," explains Microsoft. The final change of this Insider update is once again to the game cards. Insiders will find that all games, both released and upcoming, will now have a simple button to add to their profile's wishlist, making the process much easier from a single place. This Xbox update is rolling out today to Insiders in the Alpha Skip-Ahead ring. As usual, Microsoft aims to bring it to more Insiders over time before they reach all Xbox owners. Head here to find out how to join the Xbox Insider Program to get a chance to test these features and upcoming ones on both consoles and PC.
    • In the boot options in the UEFI is set to legacy or CMS? It needs to be set to UEFI if it's not already.
  • Recent Achievements

    • Dedicated
      Scoobystu earned a badge
      Dedicated
    • First Post
      Tom Schmidt earned a badge
      First Post
    • One Month Later
      D0nn13 earned a badge
      One Month Later
    • Rookie
      +ChiefOfNeo went up a rank
      Rookie
    • One Year In
      Tom Schmidt earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      463
    2. 2
      +Edouard
      177
    3. 3
      PsYcHoKiLLa
      123
    4. 4
      Michael Scrip
      81
    5. 5
      Xenon
      76
  • Tell a friend

    Love Neowin? Tell a friend!