Print Driver being modifyied
we having problems similar issues described in
every day having 8-15 users calling saying unable print. local spoolsv.exe service changing registry key entry hkey_local_machine\system\currentcontrolset\control\print\environments\windows x64\drivers\version-3\hp universal printing ps (v5.2) or ever default printer is. have tried different version of driver , happen our xerox if default. problem easy enough fix deleting corrupt key, reinstalling default printer , restarting print spooler can print again. problem may happen again them next day, or may month later. specific entries being modified string values dependant files, file , monitor.
the errors in event log show:
the document untitled - notepad, owned username, failed print on printer {guid}. try print document again, or restart print spooler.
data type: nt emf 1.008. size of spool file in bytes: 5332. number of bytes printed: 0. total number of pages in document: 1. number of pages printed: 0. client computer: \\computername. win32 error code returned print processor: 5. access denied.
we printing win2008 r2 server, have printer driver isolation set on machines drivers on print server. kb2467753 has been applied machines our print server.
suggests turn off csr (client-side rendering) of our printers. passes problem local drivers being corrupted, tax our print server more , take longer print. need find out why registry key being modified in first place spoolsv.exe process , not try bypass local rendering.
as weird side note driver corruption still able print adobe reader, must using own driver files.
the driver patch information i'm sure useful, looks real issue when redirect print server , microsoft's spooler.exe service. redirected our print server again , went through exact same issue again multiple print drivers being corrupted day. myself , colleague put .vbs script , rolled .exe fix printers our desk. put in computer name experiencing issue , scan registry blank values in "dependent files" key under hkey_local_machine\system\currentcontrolset\control\print\environments\windows x64\drivers\version-3. if finds it delete , restart print spooler service on computer prompting re-download driver.
this work regardless of domain, printer brand or driver using. have seen corrupted drivers on , has been tested xerox, samsung , hp printers multiple driver versions. when run pop box letting know driver deleted , when done restarting print spooler. if no corrupt drivers found let know. recommend telling users restart application attempting print best results.
rem created 6/3/2013 rem created nathan warren , trevor mcclanahan rem tired of fixing printer drivers after redirecting new print server rem fix default printer driver becoming corrupted rem script search empty data values in dependant files reg key signifying corrupt driver rem if finds blank value delete key associated , restart print spooler prompting computer redownload driver print server const hklm = &h80000002 const startkey = "system\currentcontrolset\control\print\environments\windows x64\drivers\version-3" const searchvalue = "dependent files" const matcharrvalues = "" dim result strcomputer = inputbox("enter name of remote computer:","corrupt printer driver") result = false set reg = getobject("winmgmts:" _ & "{impersonationlevel=impersonate}!\\" _ & strcomputer & "\root\default:stdregprov") set objwmiservice = getobject("winmgmts:" _ & "{impersonationlevel=impersonate}!\\" _ & strcomputer & "\root\cimv2") findanddeletekey startkey restartspooler message sub findanddeletekey(key) wscript.echo "[hklm\" & key & "]" rc = reg.getmultistringvalue(hklm, key, searchvalue, arrvalues) if not isnull(arrvalues) each strvalue in arrvalues wscript.echo """" & searchvalue & """=""" & strvalue & """" next for each strvalue in arrvalues if strvalue = matcharrvalues delkey hklm, key result = true exit sub end if next end if reg.enumkey hklm, key, subkeys if not isnull(subkeys) each sk in subkeys findanddeletekey key & "\" & sk next end if end sub sub delkey(root, key) reg.enumkey root, key, subkeys if not isnull(subkeys) each sk in subkeys delkey root, key & "\" & sk next end if rc = reg.deletekey(root, key) msgbox "deleting [hklm\" & key & "]" end sub sub message() if result = true msgbox "corrupt driver deleted , spooler restarted" else msgbox "no problems found" end if end sub sub restartspooler() set collistofservices = objwmiservice.execquery _ ("select * win32_service displayname ='print spooler'") each objservice in collistofservices objservice.stopservice() wscript.echo "stopped spooler service" wscript.sleep(5000) objservice.startservice() wscript.echo "started spooler service" next end sub
Windows Server > Print/Fax
Comments
Post a Comment