Client Management Suite

 View Only
  • 1.  query for printers by user

    Posted May 10, 2012 05:46 PM

    Ok I need to query for printer information and based on that run a set of task.

     

    for example is this printer installed if so then install this printer, check if it was default if so set new default and then delete old printer.

    I have this all written out but my queries are using wmic which won't work unless the user is an admin and I have to run the script as a user.

     

    Works great if you are an admin.

     

    Any ideas?

     

    here is a snip of what I do:

    echo **********************************************************************

    echo *                 487 - CAN-2430 check                               *

    echo **********************************************************************

    verify >nul

    echo %date%,%time%,errorlevel: %errorlevel%,487 Check for 2430: Begin >> %TMP%\altirislog\printers.log

    wmic PRINTER get name /format:list | findstr /i "CAN-2430" >> %TMP%\altirislog\printers.log 2>&1

    IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 GOTO :2430

    echo %date%,%time%,errorlevel: %errorlevel%,487 Check for 2430: End - Not Found >> %TMP%\altirislog\printers.log

    verify >nul

     

    :2430

    echo **********************************************************************

    echo *                 2430 - 2430 Printer Found                          *

    echo **********************************************************************

    echo %date%,%time%,errorlevel: %errorlevel%,487 Check for 2430: End - Found >> %TMP%\altirislog\printers.log

    echo %date%,%time%,errorlevel: %errorlevel%,2430: BEGIN >> %TMP%\altirislog\printers.log

    :2430i

    echo **********************************************************************

    echo *                 2430i - Install HOM-HP2430                         *

    echo **********************************************************************

    echo %date%,%time%,errorlevel: %errorlevel%,2430i install: Begin >> %TMP%\altirislog\printers.log

    start /wait \\hom-fs1\hom-hp2430

    echo %date%,%time%,errorlevel: %errorlevel%,2430i install: End >> %TMP%\altirislog\printers.log

    echo **********************************************************************

    echo *                 2430i - Check for Default Printer                  *

    echo **********************************************************************

    echo %date%,%time%,errorlevel: %errorlevel%,2430i Default Check: Begin >> %TMP%\altirislog\printers.log

    wmic PRINTER where "default='true'" get name /format:list | findstr /i "CAN-2430"

    IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 GOTO :2430d

    echo %date%,%time%,errorlevel: %errorlevel%,2430i Default Check: End - NOT FOUND >> %TMP%\altirislog\printers.log

    verify >nul

    GOTO :2430z

    :2430d

    echo **********************************************************************

    echo *                 2430d - Set Default Printer                        *

    echo **********************************************************************

    echo %date%,%time%,errorlevel: %errorlevel%,2430i Default Check: End - FOUND >> %TMP%\altirislog\printers.log

    echo %date%,%time%,errorlevel: %errorlevel%,2430d Set Default : Begin >> %TMP%\altirislog\printers.log

    rundll32 printui.dll,PrintUIEntry /y /n\\hom-fs1\hom-hp2430

    echo %date%,%time%,errorlevel: %errorlevel%,2430d Set Default : End >> %TMP%\altirislog\printers.log

    :2430z

    echo **********************************************************************

    echo *                 2430z - Remove old Printer                         *

    echo **********************************************************************

    echo %date%,%time%,errorlevel: %errorlevel%,2430z Remove old Printer : Begin >> %TMP%\altirislog\printers.log

    rundll32 printui.dll,PrintUIEntry /dn /n\\can-dc1\can-2430

    echo %date%,%time%,errorlevel: %errorlevel%,2430z Remove old Printer : End >> %TMP%\altirislog\printers.log

    echo %date%,%time%,errorlevel: %errorlevel%,2430: END >> %TMP%\altirislog\printers.log

    verify >nul

    GOTO :488



  • 2.  RE: query for printers by user
    Best Answer

    Posted May 14, 2012 01:47 PM

    Found a solution users can run:

    List printers:

    replace: wmic PRINTER get name /format:list

    with: cscript prnmngr.vbs -l >> %TMP%\altirislog\printerl.log 2>&1

    Shows default printer:

    replace: wmic PRINTER where "default='true'" get name /format:list

    with: cscript prnmngr.vbs -g >> %TMP%\altirislog\printerd.log 2>&1