Link to home
Start Free TrialLog in
Avatar of Beldoran
Beldoran

asked on

Enable Advanced Printing Feature via registry or script

We have a print server (Windows 2003) and a third party printer quota software package.

Every time we reboot our server this software package resets the "Enable Advanced Printing Feature" setting on all of our printers.

Does anyone know of a way of setting this to enabled?
Suitable soultions include
- Registry hacks
- VBscript
- command line tools

We do not want to run any macro or key generation tools. Altering the printer directly is the preferred option.

We may have just missed an obvious registry key but we are stumped.
ASKER CERTIFIED SOLUTION
Avatar of Alan Huseyin Kayahan
Alan Huseyin Kayahan
Flag of Sweden image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
     and another option (risky a little bit)
          *Create a system restore point
          *Check the "Enable advanced printing" box.
          *Create a user in computer with admin rights.
          *After you tracked down the registry values that change when you check and apply "enable advanced printing", navigate to the registry key (the folder that contains it in left folder), right-click it, then click permissions.
         *Add the new admin user with full rights here, then note down the other user entries like System (ignore administrators)
        * Click "advanced" in permissions window, and remove the inheritance checkbox. When prompted, choose copy.
       * Now back to permissions window, remove administrators group, then give only "read" permission to all entries except the new admin you created.
       * Restart the computer and see if "Enable advanced printing" is gone or not.

Regards
Avatar of Beldoran
Beldoran

ASKER

Thankyou for the response. As this server is also our main domain controller with other mission critical functions as well, I have been reluctant to 'play' with it. We reboot it only once a month maybe less depending on the severity of the updates needed.

I did try to use regmon on a workstation but did not get what I was after. It may be that I was doing something wrong. I will try again and post the results tomorrow.

Well, after using Regmon again I remember why I did not find what I wanted in the past (thousands of keys get changed or updated with each apply). This time I persisted and tracked it down to two important keys. It seems that one bit of one key was what was needed but the other key was a changeId key.

If I manually change the bit I need the changeID does not update and it seems that the clients will not see the change because the cahngeID has not updated.

After further research I narrowed it down to using the spooler API and a structure called "PRINTER_INFO_2" with the field being an INT32 field called Attributes (Only one bit needs changing 0x1000). Once I had this I did a few more searches I found that "printui.dll" can be used to alter the printer info structure. Unfortunatelty the help for this did not seem to include the ability to enable the advance printing. So I tried the settings that were available just in case.

Doing this I found that turning off the "RawOnly" attribute actually enables the advanced printing features! I really love it when things are so obvious, so as a help for anyone else with this issue I have included the relevant commands below.

To Enable Advanced Printing Features
RUNDLL32 PRINTUI.DLL,PrintUIEntry /Xs /n "printer name" attributes -RawOnly

To Disable Advanced Printing Features
RUNDLL32 PRINTUI.DLL,PrintUIEntry /Xs /n "printer name" attributes +RawOnly

Thanks for setting me back on the path MrHusy