none
Dialog box for adding printers RRS feed

  • Question

  • I'm just trying to create a script which I'm not 100% sure if it will work with VBS.  There is already a script in place which selects their default printer depending on a user group but for some I need to enhance this to enable them to make a selection.

    So far I have the following

    On Error Resume Next
     
     strMenu="Select an office" & VbCrLf &_
     "1 Office1"  & VbCrLf &_
     "2 Office2" & VbCrLf &_
     "3 Office3" & VbCrLf &_
     "4 Office4"
     
     rc=InputBox(strMenu,"Menu",1)
     If IsNumeric(rc) Then
         Select Case rc
            Case 1 
                 WScript.Echo "Office1"
            Case 2
                 WScript.Echo "Office2"
            Case 3
                 WScript.Echo "Office3"
    Case 4
                 WScript.Echo "Office4"

             Case Else
                 wscript.echo "That's not on the menu."
         End Select
         Else
         WScript.Echo "Invalid option. Numbers only."
     End If

    It works, and I'll amend the echo's to set the default but it would be nice if I could get radio buttons or something to make it look a bit prettier.

    Anybody got any ideas please?

    Wednesday, January 8, 2014 3:58 PM

Answers

All replies

  • Wednesday, January 8, 2014 4:02 PM
  • I did look at HTA, but wasn't quite sure how to add them in HTA
    Wednesday, January 8, 2014 4:17 PM
  • I did look at HTA, but wasn't quite sure how to add them in HTA

    Your search engine can help you there. I queried for 'HTA radio buttons' and this is the first result:

    http://technet.microsoft.com/en-us/library/ee692602.aspx


    Don't retire TechNet! - (Don't give up yet - 12,575+ strong and growing)

    Wednesday, January 8, 2014 4:21 PM
  • What happened to actually training users in how to use Windows.  Windows comes with a really nice application for choosing printers.  If yu configure location awareness then the local printers are what is shown.

    For years we have trined users in how to use Windows.  We have never had users that had to have their printers force fed to them.

    Place s hortcut on the desktop that starts the Printer applet.


    ¯\_(ツ)_/¯

    Wednesday, January 8, 2014 4:21 PM
  • What happened to actually training users in how to use Windows.  Windows comes with a really nice application for choosing printers.  If yu configure location awareness then the local printers are what is shown.

    For years we have trined users in how to use Windows.  We have never had users that had to have their printers force fed to them.

    Place s hortcut on the desktop that starts the Printer applet.


    ¯\_(ツ)_/¯

    Yep unfortunately we can't use location awareness because they are all TS sessions
    Wednesday, January 8, 2014 4:27 PM
  • I did look at HTA, but wasn't quite sure how to add them in HTA

    Your search engine can help you there. I queried for 'HTA radio buttons' and this is the first result:

    http://technet.microsoft.com/en-us/library/ee692602.aspx


    Don't retire TechNet! - (Don't give up yet - 12,575+ strong and growing)

    Ok thanks, why didn't I find that? :)

    All I need to do now then is work out what does what and get each individual selection do a different function such as add printer and set default

    Wednesday, January 8, 2014 4:31 PM
  • This will also let you display and manage the printer dialog as well as setting and attaching printers.

    add-type -AssemblyName PresentationFramework
    $printDialog = New-Object System.Windows.Controls.PrintDialog
    $printDialog.ShowDialog()
    


    ¯\_(ツ)_/¯

    Wednesday, January 8, 2014 5:17 PM
  • The Scripting Guy also has a series of articles on using HTAs and printer setup:

    http://blogs.technet.com/b/heyscriptingguy/archive/2007/04/06/how-can-i-let-users-choose-a-default-printer-from-a-list-of-printers.aspx


    ¯\_(ツ)_/¯

    Wednesday, January 8, 2014 5:19 PM
  • Ok thanks for the posts.  I would love to use location awareness but I can't think of how I can get the TS session to recognise where the user is.  All the TS's are located in one office on one IP range.  All the users are based in various other offices on thin clients on different IP ranges.  I can't see how I can get the TS to recognise the originating IP.

    http://blogs.technet.com/b/heyscriptingguy/archive/2007/04/06/how-can-i-let-users-choose-a-default-printer-from-a-list-of-printers.aspx  I had a look at this but this seems to populate the currently added printers which could be about 20 printers as each office have a couple each

    add-type -AssemblyName PresentationFramework
    $printDialog = New-Object System.Windows.Controls.PrintDialog
    $printDialog.ShowDialog() 

    How would I add this into the hta file?

    Thursday, January 9, 2014 4:15 PM
  • This is helpful if you are set up correctly and are not on WS2003.

    http://blogs.technet.com/b/askperf/archive/2009/10/10/windows-7-windows-server-2008-r2-location-aware-printing.aspx


    ¯\_(ツ)_/¯

    Thursday, January 9, 2014 4:34 PM
  • All on 2008 but this again only seems to be if the printer and client machine is in the same office.  Will need to find a way of populating the client IP.  Currently looking at a few including this

    Set objShell = WScript.CreateObject("WScript.Shell")
    strClientName = objShell.ExpandEnvironmentStrings("%clientname%")
     
    If strClientName <> "Console" Then
        strCommand = "cmd /c @echo off & nslookup " & strClientName
     
        Set objShell = CreateObject("WScript.Shell")
        Set objWshScriptExec = objShell.Exec(strCommand)
        Set objStdOut = objWshScriptExec.StdOut
        strOutput = objStdOut.ReadAll
     
        Set objRegEx = CreateObject("VBScript.RegExp")
        objRegEx.Global = True   
        objRegEx.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
        Set colMatches = objRegEx.Execute(strOutput)  
     
        If colMatches.Count > 1 Then
            strIP = colMatches(1)
            WScript.Echo strIP
        End If
    End If

    But currently not displaying anything :(

    Thursday, January 9, 2014 4:39 PM
  • just successfully managed to return the result with netstat -n | find ":3389"  but again unsure how to convert this into a script.

    Ideally I could just use this to gather the IP and automatically set the printer based on that IP range and not worry about giving an option

    Thursday, January 9, 2014 4:52 PM
  • If all offices are part of the organization then you will have entries in sites and subnets.  Each subnet has a location setting.  This is what controls the USER to printer access.  When this is set the printers local to the office are what is displayed.

    IF we use NLA then you need to set up the NLA server and all of the rest of the configuration.  NLA is an even richer set of location specific stings based on IP/subnet and is completely transparent once configured.

    You cannot discover the remote IP when connected through a VPN server.  It only works if you are directly routed.  3398 is the IP of the terminal server and not the client.  The client port is  very high number and is not available in the TS session from  netstat.

    "location" is designed to give you exactly what you are trying to do. This is and has been a part of Windows since W2K.


    ¯\_(ツ)_/¯

    Thursday, January 9, 2014 7:01 PM
  • All on 2008 but this again only seems to be if the printer and client machine is in the same office.  Will need to find a way of populating the client IP.  Currently looking at a few including this

    Set objShell = WScript.CreateObject("WScript.Shell")
    strClientName = objShell.ExpandEnvironmentStrings("%clientname%")
     
    If strClientName <> "Console" Then
        strCommand = "cmd /c @echo off & nslookup " & strClientName
     
        Set objShell = CreateObject("WScript.Shell")
        Set objWshScriptExec = objShell.Exec(strCommand)
        Set objStdOut = objWshScriptExec.StdOut
        strOutput = objStdOut.ReadAll
     
        Set objRegEx = CreateObject("VBScript.RegExp")
        objRegEx.Global = True   
        objRegEx.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
        Set colMatches = objRegEx.Execute(strOutput)  
     
        If colMatches.Count > 1 Then
            strIP = colMatches(1)
            WScript.Echo strIP
        End If
    End If

    But currently not displaying anything :(

    %clientname% is only usable if the client is directly connected and not via a VPN.  NSLookup cannot find remote clients in most cases so you will get no results.


    ¯\_(ツ)_/¯

    Thursday, January 9, 2014 7:07 PM
  • just successfully managed to return the result with netstat -n | find ":3389"  but again unsure how to convert this into a script.

    Ideally I could just use this to gather the IP and automatically set the printer based on that IP range and not worry about giving an option

    On a terminal server you will get many lines with that netstat. Every connected user will be connected to 3398. How are you going to tell which one is the current user. Look in the Gallery and you will find many examples of ways to identify a TS client session in script.  None gert you the IP of remotely connected clients.


    ¯\_(ツ)_/¯

    Thursday, January 9, 2014 7:09 PM
  • The following module along with this command will get you the client IP in all cases.

    http://gallery.technet.microsoft.com/scriptcenter/e8c3af96-db10-45b0-88e3-328f087a8700

    Get-RDSessionStatus 

    The module contains all of the API calls available to RDS.  If it is not in this module then it is does not exist.

    To be sure I downloaded this copy and just ran it over a remote RDS session.  It correctly determined my desktop IP and I am behind a router that hides the private network.


    ¯\_(ツ)_/¯

    Thursday, January 9, 2014 7:33 PM
  • With regards the sites and subnets, none of them are in AD so stuck with this.

    The Get-RDSessionStatus sounds good, but then guess I'm going over to using Powershell to do all the scripting.

    I've just imported the script on that page and run a test.  The report doesn't seem to signify an IP.  Does shows ClientAddress which some show as an IP6 address.

    I would need to build this into the script somehow I'm thinking with this

    (New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")

    (Get-WmiObject -ComputerName . -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'").SetDefaultPrinter()

    Apologies if I sound stupid



    Friday, January 10, 2014 3:04 PM
  • Ok right I think I've got this sorted back on vbscript.

    I've got the script done, just can't work out how to jump to the end.  I have a section that maps from a particular group membership using

    Select Case strGroupName
    
    Case "office1"
    objnetwork.setdefaultprinter "\\print\printer1"
    
    Case "office2"
    objnetwork.setdefaultprinter "\\print\printer2"
    
    End Select
    
    

    Then it rolls into the menu options which should only kick in if they aren't a member of the group

    strMenu=Please select an office" & VBCRlf & VBCRlf &_
    "1 - Office 1"
    "2 - Office 2"
    Basically if they are a member of a group then it should run the first section then end.  If not, then run the second.


    Tuesday, January 14, 2014 2:56 PM
  • Ok I think I've got round it for now just by creating a 'No Default' group and using that on a case select.

    Is there a way so that when a user logs on for the first time the printers get added, the printers then stay, so that next time they log on they don't have to re-add.  There is potentially 20 printers and therefore the logon script is slow.  Thinking that surely if they have added once, they should stay

    Tuesday, January 14, 2014 4:56 PM
  • Ok I think I've got round it for now just by creating a 'No Default' group and using that on a case select.

    Is there a way so that when a user logs on for the first time the printers get added, the printers then stay, so that next time they log on they don't have to re-add.  There is potentially 20 printers and therefore the logon script is slow.  Thinking that surely if they have added once, they should stay

    You are not adding any printers in your script. You are just assigning a default printer. Once assigned it will not change.

    All of this is why you need to do it using the normal Windows methods (GP).


    ¯\_(ツ)_/¯

    Tuesday, January 14, 2014 5:04 PM
  • Sorry I've got a load more lines above that I haven't included.

    Would GPO's map it quicker then and keep them there rather than using the VBS?

    Tuesday, January 14, 2014 5:07 PM
  • Yes.


    ¯\_(ツ)_/¯

    Tuesday, January 14, 2014 5:08 PM
  • Ok thanks.  That's my answer then.  Takes a load of the script.  Quite impressed myself with putting sub routines in once I got back chance to have a look at it today.

    Will test with GPO's tomorrow

    Tuesday, January 14, 2014 5:12 PM
  • Ok GPO's work and script then works, but hopefully last bit is to get the menu to loop should an incorrect character be entered

    On Error Resume Next
     
     strMenu="Select an office" & VbCrLf &_
     "1 Office1"  & VbCrLf &_
     "2 Office2" & VbCrLf &_
     "3 Office3" & VbCrLf &_
     "4 Office4"
     
     rc=InputBox(strMenu,"Menu",1)
     If IsNumeric(rc) Then
         Select Case rc
            Case 1 
                 WScript.Echo "Office1"
            Case 2
                 WScript.Echo "Office2"
            Case 3
                 WScript.Echo "Office3"
    Case 4
                 WScript.Echo "Office4"
    
             Case Else
                 wscript.echo "That's not on the menu."
         End Select
         Else
         WScript.Echo "Invalid option. Numbers only."
     End If


    Wednesday, January 15, 2014 2:45 PM
  • Here's one way you could do it:


    Dim Menu
    Menu = "Select an office:" & vbNewLine _
      &  vbNewLine _
      & "1 Office1" & vbNewLine _
      & "2 Office2" & vbNewLine _
      & "3 Office3" & vbNewLine _
      & "4 Office4"
     
    Dim ValidReplies, Reply, Valid
    ValidReplies = Array("","1","2","3","4")
    Do
      Reply = InputBox(Menu, "Menu", "1")
      Valid = ValueInArray(Reply, ValidReplies)
      Select Case Reply
        Case ""
          WScript.Echo "Canceled"
        Case "1"
          WScript.Echo "Office1"
        Case "2"
          WScript.Echo "Office2"
        Case "3"
          WScript.Echo "Office3"
        Case "4"
          WScript.Echo "Office4"
        Case Else
          WScript.Echo "Invalid selection"
      End Select
    Loop Until Valid
    
    Function ValueInArray(ByVal Value, ByVal Arr)
      Dim Result, I
      Result = False
      For I = 0 To UBound(Arr)
        If Arr(I) = Value Then
          Result = True
          Exit For
        End If
      Next
      ValueInArray = Result
    End Function
    

    This uses an array of valid replies and the ValueInArray function at the bottom to check whether the user entered a valid reply.

    Bill


    Wednesday, January 15, 2014 3:50 PM
    Moderator
  • Thanks

    I'm getting Syntax error on 

    Function ValueInArray(ByVal Value, ByVal Arr)
    Wednesday, January 15, 2014 4:25 PM
  • I'm getting Syntax error

    I just copied and pasted my exact code I posted, above, into a new .vbs file and saved it, and it ran without errors. So you must be doing something different.

    Bill

    Wednesday, January 15, 2014 4:42 PM
    Moderator
  • Hmmm, oddly I've just copied to a new and works but in my main script just get error on that line all the time.

    Did just try adding yours into a sub to match in with my rest and failed

    sub MainMenu Dim Menu Menu = "Select an office:" & vbNewLine _ & vbNewLine _ & "1 Office1" & vbNewLine _ & "2 Office2" & vbNewLine _ & "3 Office3" & vbNewLine _ & "4 Office4" Dim ValidReplies, Reply, Valid ValidReplies = Array("","1","2","3","4") Do Reply = InputBox(Menu, "Menu", "1") Valid = ValueInArray(Reply, ValidReplies) Select Case Reply Case "" WScript.Echo "Canceled" Case "1" WScript.Echo "Office1" Case "2" WScript.Echo "Office2" Case "3" WScript.Echo "Office3" Case "4" WScript.Echo "Office4" Case Else WScript.Echo "Invalid selection" End Select Loop Until Valid Function ValueInArray(ByVal Value, ByVal Arr) Dim Result, I Result = False For I = 0 To UBound(Arr) If Arr(I) = Value Then Result = True Exit For End If Next ValueInArray = Result End Function

    End Sub



    Wednesday, January 15, 2014 4:47 PM
  • This is the whole bit, I've probably done something stupid

    On Error Resume Next
    
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objNetwork = CreateObject("Wscript.Network")
    
    'find user name
    
    strUserPath = "LDAP://" & objSysInfo.UserName
    Set objUser = GetObject(strUserPath)
    
    'find user group's
    
    For Each strGroup in objUser.MemberOf
    strGroupPath = "LDAP://" & strGroup
    Set objGroup = GetObject(strGroupPath)
    strGroupName = objGroup.CN
    
    [map network drive]
    
    objNetwork.MapNetworkDrive "U:", "\\file\data"
     
    
    [map from group membership]
    
    Select Case strGroupName
    
    
    Case "Printer Budleigh 1"
    		objNetwork.SetDefaultPrinter "\\print\Budleigh - Printer 1"
    
    Case "Printer Exeter 1"
    		objNetwork.SetDefaultPrinter "\\print\Exeter - Printer 1"
    
    Case "Printer Exeter 2"
    		objNetwork.SetDefaultPrinter "\\print\Exeter - Printer 2"
    		
    Case "Printer Exeter 3"
    		objNetwork.SetDefaultPrinter "\\print\Exeter - Printer 3"
    
    Case "Printer Exmouth 1"
    		objNetwork.SetDefaultPrinter "\\print\Exmouth - Printer 1"
    
    Case "Printer Exmouth 2"
    		objNetwork.SetDefaultPrinter "\\print\Exmouth - Printer 2"
    
    Case "Printer Exmouth 3"
    		objNetwork.SetDefaultPrinter "\\print\Exmouth - Printer 3"
    
    Case "Printer Exmouth 4"
    		objNetwork.SetDefaultPrinter "\\print\Exmouth - Printer 4"
    
    Case "Printer Exmouth 5"
    		objNetwork.SetDefaultPrinter "\\print\Exmouth - Printer 5"
    
    Case "Printer Honiton 1"
    		objNetwork.SetDefaultPrinter "\\print\Honiton - Printer 1"
    
    Case "Printer Honiton 2"
    		objNetwork.SetDefaultPrinter "\\print\Honiton - Printer 2"
    
    Case "Printer Honiton 3"
    		objNetwork.SetDefaultPrinter "\\print\Honiton - Printer 3"
    
    Case "Printer Honiton 4"
    		objNetwork.SetDefaultPrinter "\\print\Honiton - Printer 4"
    
    Case "Printer Ottery 1"
    		objNetwork.SetDefaultPrinter "\\print\Ottery - Printer 1"
    
    Case "Printer Seaton 1"
    		objNetwork.SetDefaultPrinter "\\print\Seaton - Printer 1"
    
    Case "Printer Sidmouth 1"
    		objNetwork.SetDefaultPrinter "\\print\Sidmouth - Printer 1"
    
    Case "Printer Sidmouth 2"
    		objNetwork.SetDefaultPrinter "\\print\Sidmouth - Printer 2"
    
    Case "Printer Taunton 1"
    		objNetwork.SetDefaultPrinter "\\print\Taunton - Printer 1"
    
    Case "Printer No Default"
    		
    Menu = "Please select an office" & VbNewLine _
     & vbNewLine _
     & "1 - Budleigh"  & VbNewLine _
     & "2 - Exeter" & VbNewLine _
     & "3 - Exmouth" & VbNewLine _
     & "4 - Honiton" & VbNewLine _
     & "5 - Ottery" & VbNewLine _
     & "6 - Seaton" & VbNewLine _
     & "7 - Sidmouth" & VbNewLine _
     & "8 - Taunton"
     
     
     Dim ValidReplies, Reply, Valid
     ValidReplies = Array("","1","2","3","4","5","6","7","8")
     Do
    	Reply = InputBox(Menu, "Menu", "1")
    	Valid = ValueInArray (Reply, ValidReplies)
    	
         Select Case reply
            Case 1 		
    			objNetwork.SetDefaultPrinter "\\print\Budleigh - Printer 1"
            Case 2
    			Exeter
            Case 3
    			Exmouth
    		Case 4
    			Honiton
    		Case 5
    			Ottery
    		Case 6	
    			objNetwork.SetDefaultPrinter "\\print\Seaton - Printer 1"
    		Case 7
    			Sidmouth
    		Case 8		
    			objNetwork.SetDefaultPrinter "\\print\Taunton - Printer 1"
            Case Else 
    			wscript.echo "Invalid Selection"
    		End Select
    	 Loop Until Valid
    	 
    	 
    	 
    	 
    	 Function ValueInArray(ByVal Value, ByVal Arr)
    		Dim Result, I
    		Result = False
    		For I = 0 To UBound(Arr)
    			If Arr(I) = Value Then
    				Result = True
    				Exit For
    			End If
    		Next
    		ValueInArray = Result
    	End Function
         
     End If
    
    end select
    
    next


    Wednesday, January 15, 2014 5:03 PM
  • Hi,

    As you have noticed, you normally can't just copy and paste one script into another and expect it to somehow magically work. More often than not, the code must be adjusted accordingly. My example is intended only as a short, self-contained example of one way to do input checking using the VBScript InputBox function. If you study my example carefully, you will be able to incorporate its functionality into your own script.

    Bill

    Wednesday, January 15, 2014 5:07 PM
    Moderator
  • One other tip: Don't use the line On Error Resume Next at the top of your script. Using that line of code will mask all errors in the entire script, making troubleshooting much more difficult.

    Bill

    Wednesday, January 15, 2014 5:10 PM
    Moderator
  • Yep, something with the function I'm assuming. Will have to have a dig around
    Wednesday, January 15, 2014 5:11 PM
  • Am I right in thinking that you can call functions the same as sub?

    Therefore if this function is called ValueInArray, I could call it on some of my other menu options in the script by calling ValueInArray?

    Wednesday, January 15, 2014 5:25 PM
  • I think it would be helpful if you studied about how VBScript works.

    There is a good VBScript Primer section in the Windows 2000 Scripting Guide. There are also lots of other resources available to help you learn VBScript (use your search engine).

    Bill

    Wednesday, January 15, 2014 5:28 PM
    Moderator
  • Am I right in thinking that you can call functions the same as sub?

    Therefore if this function is called ValueInArray, I could call it on some of my other menu options in the script by calling ValueInArray?

    You are continuing to guess at what to do.  THis is very frustrating to you and to us. 

    1.  You cannot place a function inside of a loop or control structure.
    2.  You have numerous syntax errors that need to be addressed.

    If you would take the time to use the learning tools here to actually leanr how VBScript works you would find this is not all that hard.


    ¯\_(ツ)_/¯

    Wednesday, January 15, 2014 5:30 PM
  • I would say that you are way overcomplicating this.  If you set sites/subnets in AD and set the subnets to the office names you can get that office name from aDSSystemInfo which will now be populated with the office name.

    Here is an example of ways to do this that are different.  We can put all info in a dictionary and just look it up.  We can do a disctionary of dictionaries and look things up by two criteria.  THe criteria can even be stored in a parallel group structure.

    ' create a dictionary of printers.
    Set dct = CreateObject("Scripting.Dictionary")
    dct.Add("Printer Budleigh 1","\\print\Budleigh - Printer 1")
    dct.Add("Printer Exeter 1","\\print\Exeter - Printer 1")
    dct.Add("Printer Exeter 2","\\print\Exeter - Printer 2")
    dct.Add("Printer Exeter 3","\\print\Exeter - Printer 3")
    dct.Add("Printer Exmouth 1","\\print\Exmouth - Printer 1")
    dct.Add("Printer Exmouth 2","\\print\Exmouth - Printer 2")
    dct.Add("Printer Exmouth 3","\\print\Exmouth - Printer 3")
    dct.Add("Printer Exmouth 4","\\print\Exmouth - Printer 4")
    dct.Add("Printer Exmouth 5","\\print\Exmouth - Printer 5")
    dct.Add("Printer Honiton 1","\\print\Honiton - Printer 1")
    dct.Add("Printer Honiton 2","\\print\Honiton - Printer 2")
    dct.Add("Printer Honiton 3","\\print\Honiton - Printer 3")
    dct.Add("Printer Honiton 4,"\\print\Honiton - Printer 4")
    dct.Add("Printer Ottery 1","\\print\Ottery - Printer 1")
    dct.Add("Printer Seaton 1","\\print\Seaton - Printer 1")
    dct.Add("Printer Sidmouth 1","\\print\Sidmouth - Printer 1")
    dct.Add("Printer Sidmouth 2" ,"\\print\Sidmouth - Printer 2")
    dct.Add("Printer Taunton 1","\\print\Taunton - Printer 1")
    
    Set objSysInfo = CreateObject("ADSystemInfo")
    MsgBox objSysInfo.SiteName
    
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    
    Set objNetwork = CreateObject("Wscript.Network")
    objNetwork.MapNetworkDrive "U:", "\\file\data"
    
    'find user group's
    For Each strGroup in objUser.MemberOf
    
        strGroupPath = "LDAP://" & strGroup
        Set objGroup = GetObject(strGroupPath)
        strGroupName = objGroup.CN
        strPrinter = dct(objGroup.CN)
        ' set printer here
        
    Next
    
    

    With the above you do not need to p[rompt the user for anything.  Just set the printers as needed based on SITENAME.

    Activer Directory was designed to do all of this.  It Is not necessary to do all of this.  If you are on a TS then the user would already have the printer connected andit would be available in TS.


    ¯\_(ツ)_/¯

    Wednesday, January 15, 2014 7:51 PM
  • Ok I think I'll have to abandon the idea and have to find another way to solve the problem or find an outside source to do it for me.

    Clearly trying to learn and get in working when I have 5 spare minutes in a busy live environment isn't working.

    Thanks for all the help and apologies for wasting any time.

    Wednesday, January 15, 2014 10:03 PM