One of the great new feature with Group Policy Preferences is the ability to map printers based on a various number of criteria such as group membership, AD Site or even IP Address range to name a few. This allows for some powerful senariosÂ such as being able to map all the printers physically near a user based on the computers IP address. Note: ThisÂ assumes that the networking team allocates the same subnets to certain computers near each other (e.g. a building or floor) but I have found this is often the case.
One of the problems that occur when you map printers with Group Policy Preferences is that if the user has a roaming profile configured and they then logon to a computer that is located in another area they willÂ have all also have their old printers from the previous area. Now user might not really notice these printer mappingÂ building up over timeÂ but they can soon amass a large number of mappings that makes their computer run slowÂ to logon.
Question? So how do you map all the printers in one location but not have them follow you to another location if you are using a roaming profile?
Answer?Â Is a two step solution which I will go through below. There is also an optional third step that address the problem maintaining default printer mappings once a user gets back to their normal location.
Step 1. The first part is just to create a simple printer mapping that maps the printer targeted by the IP address of the users current computer.
Figure1. Create New Shared Printer
The images belo shows the printer â€œ\\server\printer1â€ being mapped for the users that logon to a computer that is in the 10.1.1.0/24 subnet. It is important to note that we are talking about the IP address range of the computer that you want to map the printerÂ not the IP address range of the printer server or the printer NICÂ itself.
Figure 2. Target setting to only be mapped for computers between 10.1.1.0 to 10.1.1.255
Figure 3. Resulting printer mapping
Step 2. The second step is to delete the printer mapping if the IP address of the printer does not fall within the IP address range that you want the printer to be mapped. To do this we start by copying the existing printer mapping that we made in step 1. This avoids making any typoâ€™s in either the printer queue name of the IP addresses.
Figure 4. Copying the existing printer mapping made in step 1.
Figure 5. Paste the setting into an unused part of the pane
Figure 6. Both printer mapping entries
Now we make the changes to the action on theÂ second printer mappingÂ targeting so that it will remove the printer mapping when theÂ user logs onto a computer in another area.
Figure 7. Open the properties of the second printer
Figure 8. Change the Action to â€œDeleteâ€
Figure 9. Go back to the targeting and change it to an â€œIs Notâ€ between â€œ10.1.1.0â€ and â€œ10.1.1.255â€
Figure 10. New target rule
Figure 11. Two printer entries to map and then clean up the printer queues for a user based on their location.
Step 3. Maintaining Default Printer Mappings
You have now configured dynamic printer mapping for your user based on location of the user. However this solution does have one problem/annoyance, user normally like to set a default printer.Â If a user was to logon to a workstation in another location then return to their normal desk their default printer will have been reset as it will have been removed. To get around this problem we have to add another rult toÂ the targeting on the Delete printer option so it does NOT delete if the printer is configured as the default printer. To do this weÂ check the registry location that the default printer is saved and test to see if the printer we are deleting is the default printer.
So go back to the targeting optionÂ for the Delete printer action and add another test that will check to see if the printer is the default printer.
Figure 12. Add a new Item of type â€œRegistry Matchâ€
Figure 13. Configured Registry Match Setting
Change the Match Type to â€œMatch value dataâ€ and the Value data match type to â€œSubstring matchâ€ as the value we are looking for will contain other information as well that we donâ€™t care about. Make sure the Hive is set to â€œHKEY_CURRENT_USERâ€ and the Key Path is set to â€œSoftware\Microsoft\Windows NT\CurrentVersion\Windowsâ€. The Value name â€œDeviceâ€ is where in the registry the default printer information is saved. We then set the Substring to â€œ\\server\printer1â€ which is the UNC path to the printer queue. Note: The substring value has to be exactly the same as the value set in the Path for the printer mapping.
There, now you know how to use Group Policy Preferences to map and remove networkÂ for users based on their physical location while avoiding the build up of mapping if yourÂ user haveÂ roaming profiles while still preserving their default printer.