I was setting up a print server yesterday, when I tried to add the print server role it failed with this error;
Unable to obtain feature list error 0x800f0902
Solution
Internet searching was pointing to a problem with the ‘Task Scheduler Service’ and suggested stopping that, which I was unable to do. It turns out my server had just finished Windows updates, and needed to reboot, (it was a new deployment). Post reboot it was fine.
Related Articles, References, Credits, or External Links
Yes these days we would prefer to use GPO or GPP to do this, but some printers simply refuse to be farmed out this way, and a lot of clients don’t want to install their network printers in that manner.
Con2prt is a very old piece of software it’s part of the Windows NT4 ZAK (Yep it’s that old!). Its purpose in life is to connect clients to printers. So how can we do that based on location? We use a system variable, you may or may not be familiar with system variables (%username% and %userprofile% are commonly used). We will create one called Location and set it to a value e.g. accounts-office. Then when you log into a machine with this variable set to accounts-office you get all the printers in the accounts office.
It’s a great solution for schools where pupils travel all over the school/campus and always need the printer in the classroom they are in.
Solution
1. First download con2prt and put it in a shared folder on your network that has Read/Execute rights (For the rest of this example, I’ll useprintservercon2prt).
2. The easiest way to get an environment variable on the target machines is to create a Group Policy Preference to create it. Go to your domain controller, Start > Administrative tools > Group Policy management console > either create a new policy and link it to the OU containing your target COMPUTERS or edit an existing policy. Then navigate to:
[box]Computer configuration > Preferences > Windows Settings > Environment[/box]
Create a new system variable called Location, and set it to a sensible value that reflects the machines location.
3. Then either get the clients to reboot, wait a couple of hours, or manually run “gpupdate /force” on them. You can check on the client machines if the system variable was successful, by looking in the system properties > Advanced system settings > Advanced > Environment Variables > And check that Location has been created with the correct value we created above.
4. OR drop to command line and issue an “echo %Location%” command, make sure it returns the correct value.
5. Now install the printer on your print server, and share it on the network (Remember if it’s an x64 bit server, and your clients are x32 you will need to ALSO import the x32 bit drivers. (Printer Properties > Sharing > Additional Drivers).
6. Now make sure the user has a login script > In the example below I’ve set it in AD on the user object (So the login script will live in the NETLOGON share of your domain controller(s)). But you can specify login scripts with group policy, (User Configuration > Policies > Windows Settings > Scripts > Logon) should you prefer.
7. Edit/Amend the script using the example below, (Note: always start with the /F option to remove printers, or users will travel round collecting more and more printers, that will never get removed!).
8. Then when the user logs in, the printers will install in the background.
Note: If they see and error that says “Do you Trust This Printer” then you will need to do this.
Related Articles, References, Credits, or External Links
I’ve touched on this briefly in KB0000389, I suggest you read through that first so you understand what the requirements are to deploy a GPP instead of the GPO’s you are probably used to.
Solution
1. First thing to do is install the printer that needs deploying on a print server. Make sure if your clients are NOT x64 bit that you also add the x86 drivers for your clients to use.
2. The following is a “Gotcha” (especially on HP printers), on the Printer Properties page, General tab > Select “Print Processor” > Ensure it’s set to winprint and RAW.
3. On a domain controller, Start > administrative tools > Group Policy Editor > Either edit an existing policy or create a new one (Remember its a computer policy you need to link it to something with computers in it, if you link it to a users OU nothing will happen).
4. Give the policy a sensible name.
5. Edit the policy you have just created.
6. Navigate to > Computer Configuration > Preferences > Control Panel Settings > Printers > In the right hand window, right click > New > TCP/IP Printer.
7. Select Create > I prefer to use the IP address of the printer but you can use the DNS name if you wish > The Local Name is what the client will see > Enter the Path to the printer (In UNC format) > You can also enter a location and comment if you wish > Apply > OK.
8. All being well you should see the printer listed.
9. Now for another “Gotcha” in the same policy navigate to > Computer Configuration > Policies > Administrative Templates > Printers > Locate the “Point and Print Restrictions” policy.
10. Change the settings for this policy so that it is disabled.
12. Close the Policy editor, then either reboot the clients, wait a couple of hours, or manually run “gpupdate /force” on them.
Related Articles, References, Credits, or External Links