iPrint User Printer Support for Windows 8 and later

  • 7016874
  • 30-Sep-2015
  • 30-Sep-2020

Environment

Novell iPrint Client for Windows

Situation

In the past, iPrint User printers were not supported with Windows 8 and later platforms.  User Printers are particularly useful with Terminal Services.

Resolution

NOTE: The information in this TID is obsolete with the iPrint client 6.16 and later.  See TID 7018881 to learn how USER printers are enabled with the newer iPrint client with v3 or v4 drivers.

Note: This solution will not work with Version 4 drivers.  In general, drivers which shipped with the Windows 8/10 OS are version 4 drivers.  If a Version 4 driver is used with this solution, the printer will still print, but it will be installed as a Workstation printer and not a User printer.

Novell has created a workaround solution so that User Printers  with non-Version 4 drivers can be used on Windows 8 and later machines (including Terminal Servers) regardless of what shows in the iprint.ini or Terminal Services tab of the iPrint Client.
  • Create the UserPrinters.vbs script
    • Show known file extensions.
      • Go to the Control Panel ->Appearance and Personalization -> Folder Options -> click the View tab.  Under Advanced settings clear the "Hide extensions for known file types" check box. Click OK.
    • Highlight the entire script contents within the Additional Information section of this TID. 
    • Copy/paste into Notepad. 
    • Save the file as UserPrinters.vbs in the C:\NDPS directory.
  • Run the script.
    • Open a CMD prompt in "Run as Administrator" mode.
    • Type the following:
      • cd c:\ndps
      • cscript UserPrinters.vbs --create
  • Refresh the Desktop to see the folder "Printers".
  • Install the iPrint printer using the /ipp page, iCM, iprntcmd, ZENworks, etc.
After the User Printer is installed, double-click the folder “Printers†to view and modify the User Printer’s settings.

Notes:
  • If you need to delete the “Printers†folder, run the following command
    • cscript UserPrinters.vbs --delete
  • The user can perform all the operations like changing printer settings, deleting printer, etc from the “Printers†folder.  All the operations can be performed from the Printers folder. Printer’s folder will display only list of printers and no other devices.

Cause

Changes to Windows 8 and later have prevented the ability to create User printers in the way Novell has done in the past.  This TID changes the way in which User printers are created.

Additional Information

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject ("Scripting.FileSystemObject")
Set stdout = fso.GetStandardStream (1)
Set stderr = fso.GetStandardStream (2)
 
 Dim iErrNumber : iErrNumber = 0
    Dim sErrDescription, sMsgText, iErrorCode
    On Error Resume Next 'in case exe fails
     
   
 
     strErrorCode = WshShell.Run("fsutil dirty query %systemdrive%",0,True)
 
    If strErrorCode = 0 Then
        stdout.WriteLine ""
        If Err.Number <> 0 Then
        MsgBox"You must use the following convention for executing script" & vbNewLine & "cscript [Script Filepath] [option]", ,"Novell iPrint" 
        End If         
    Else
       MsgBox"You must run the script as an administrator.", ,"Novell iPrint"    
       WScript.Quit 1
    End If
     
 
  If WScript.Arguments.length = 1 Then
  
     sparam = WScript.Arguments.Item(0)
  LCase(sparam)
 
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
strComputer & "\root\default:StdRegProv")
 
 
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{2227A280-3AEA-1069-A2DE-08002B30309D}"
strIprintPath = "SOFTWARE\Novell-iPrint\Settings"
strValueName =  "EnableUserPrinterInstallationForWin8AndAbove"
 
 
 
If oReg.EnumKey(HKEY_LOCAL_MACHINE,strIprintPath,arrSubKeys) = 0 Then
 if oReg.GetDWORDValue(HKEY_LOCAL_MACHINE,strIprintPath,strValueName,dwValue) = 0 then
 
 else
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strIprintPath,strValueName,1
end if
 
Else
MsgBox"iPrint Client is not installed,please install client to proceed", ,"Novell iPrint" 
WScript.Quit 1
End If
 
 
 
If StrComp(sparam  ,"--create") = 0 Then
If oReg.EnumKey(HKEY_LOCAL_MACHINE,strKeyPath,arrSubKeys) = 0 Then
 
stdout.WriteLine "  The shortcut ""Printers"" already exists on the Desktop."
Else
oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
stdout.WriteLine "  A shortcut ""Printers"" is created on the desktop to display the list of printers. Refresh the desktop to view the shortcut"
End If
 
 
 
 
ElseIf StrComp(sparam  ,"--delete") = 0 Then
If oReg.EnumKey(HKEY_LOCAL_MACHINE,strKeyPath,arrSubKeys) = 0 Then
oReg.DeleteKey HKEY_LOCAL_MACHINE,strKeyPath
stdout.WriteLine "  The shortcut is successfully deleted."
Else
stdout.WriteLine "  The shortcut is already deleted"
End If
If oReg.EnumKey(HKEY_LOCAL_MACHINE,strIprintPath,arrSubKeys) = 0 Then
if oReg.GetDWORDValue(HKEY_LOCAL_MACHINE,strIprintPath,strValueName,dwValue) = 0 then
oReg.DeleteValue HKEY_LOCAL_MACHINE,strIprintPath,strValueName
end if
End If
 
 
ElseIf StrComp(sparam  ,"--help") = 0 Then
stdout.WriteLine " Usage    : cscript [script Filepath] [option]"
stdout.WriteLine " --create : Creates the Printers folder on the desktop."
stdout.WriteLine " --delete : Deletes the Printers folder on the desktop."
 
Else
stdout.WriteLine "  Usage    : cscript [script Filepath] [option]"
stdout.WriteLine "  --create : Creates the Printers folder on the desktop."
stdout.WriteLine "  --delete : Deletes the Printers folder on the desktop."
stdout.WriteLine "  --help   : Displays the available options."
End If
 
Else
stdout.WriteLine "  Usage    : cscript [script Filepath] [option]"
stdout.WriteLine "  --create : Creates the Printers folder on the desktop."
stdout.WriteLine "  --delete : Deletes the Printers folder on the desktop."
stdout.WriteLine "  --help   : Displays the available options."
 
 
End If