If you don't want to use Group Policy for setting default printers for your users you can use VBScript.
I know that the preferred method of setting the printer is via GPO, but this gives you an alternative in the event that you find yourself in a position where you can't use GPO for whatever reason.
This works flawlessly and gives you great flexibility on how you set your users printers. This is especially pertinent in older versions of Windows RDS servers.
Here is how to set the default printer for a user once they log onto your domain. You can specify different printers for different Security Groups as well...
Option Explicit
Dim objNetwork, strDomain, strUser, objUser, objGroup, strGroupMemberships
' Get the domain and username from the WScript.Network object
Set objNetwork = CreateObject("WScript.Network" )
strDomain = objNetwork.UserDomain
strUser = objNetwork.UserName
' Instantiate the user object from the data above
Set objUser = GetObject("WinNT://" & strDomain & "/" & strUser)
' Run through the users groups
For Each objGroup In objUser.Groups
If objGroup.Name = "Downstairs Xerox B&W Default Printer" Then
objNetwork.SetDefaultPrinter "Xerox Black and White"
End If
If objGroup.Name = "Upstairs Xerox Upstairs Default Printer" Then
objNetwork.SetDefaultPrinter "Xerox Upstairs"
End If
Next
Once you have saved the above script in a shared network folder as something like SetDefaultprinter.vbs you can run it from your standard user log on script like so:
cscript.exe \\ServerName\SharedFolderName\SetDefaultprinter.vbs












