Windows Server - Terminal Services - Set Default Printer with a Local Script
Hi, this article is to share a sample code to set a local printer as default when you don't map printer from a RDP or ICA session.
The non-mapping allow to have a faster longing and allow to restrict where the user can print from the remote application.
Script's example
Set objNetwork = CreateObject("Wscript.Network")
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.UserName
strComputerDN = objSysInfo.ComputerName
Set objGroup1 = GetObject("LDAP://CN=DELL334,OU=Printer,DC=contoso,DC=com")
If (objGroup1.IsMember("LDAP://" & strUserDN) = True) Then
objNetwork.SetDefaultPrinter "DELL334"
Else
Set objGroup2 = GetObject("LDAP://CN=DELL335,OU=Printer,OU=Printer,DC=contoso,DC=com")
If (objGroup2.IsMember("LDAP://" & strUserDN) = True) Then
objNetwork.SetDefaultPrinter "DELL335"
End If
End If
Place to place it
- In the User section in the login script, I do place it in the local GPO editor for each server.
Restriction
- In the script I call "objNetwork.SetDefaultPrinter "DELL335"", thus you need the printer named exactly "DELL335" in the Terminal Server with a local printqueue.
Tip
To get the LDAP's full name please use the Advanced Feature while in your AD User and Computer's console
Set the same security on the printer share as the mapping too, if you want to restrict the printer the user see.
Thanks
tip published following that thread; http://social.technet.microsoft.com/Forums/windowsserver/en-US/e1795b35-2fed-4369-8767-8286d0f78698/network-printer-driver-reinstalled-at-each-logon-with-rds?forum=winserverprint to help :o)
If that can help ! Have a nice day
See Also
Another important place to find a huge amount of Windows Server related articles is the TechNet Wiki itself. The best entry point is Windows Server Resources on the TechNet Wiki.