Устранение сбоя печати пользователем без перезагрузки компьютера

Albert_researcher

Модератор
Команда форума
Не претендую на авторство, но, как показала жизнь, востребовано.
Нередко, причиной остановки печати становится программный сбой, который возникает в работе системной службы – «Диспетчер очереди печати». В этом случае, есть несколько вариантов решения

Самым действенным методом, является простая перезагрузка компьютера и принтера. Иногда, достаточно, перезапустить только принтер, если через нескольких минут, после включения принтера, печать не началась — стоит перезагрузить сам компьютер, и неважно, локальный или сетевой принтер Вами используется – причина сбоя в операционной системе.
Сама перезагрузка Windows подразумевает очистку временных файлов на печать и сброс очереди, но также можно вручную очистить очередь печати на активном принтере. Для этого откройте «Панель управления» и перейдите в раздел «Устройства и принтеры». Найдите значок с вашим активным оборудованием и щёлкните по нему правой кнопкой мыши. Из контекста выбираем пункт «Очистить очередь печати». Пару секунд и действие выполнено!
Функция работает во многих случаях, но если служба Windows, отвечающая за печать, «зависла», то очистить очередь не удастся.
Возможна проблема: документы не удаляются из очереди, причем не помогает ни отключение принтера, ни перезагрузка компьютера.
Для того чтобы очистить очередь на печать принудительно, следует перезапустить службу «Диспетчера очереди печати» и очистить временные файлы, подготовленные системой.

При указанных проблемах с печатью документов предлагаю запускать этот bat файл, а не перезагружать компьютер. Не забываем запускать батник от имени администратора.

@echo off
net stop spooler
del /f /q %systemroot%\system32\spool\printers\*.shd
del /f /q %systemroot%\system32\spool\printers\*.spl
ping 127.0.0.1 -n 5 > nul
net start spooler
exit

При отправке документа на печать, служба печати Windows (Print Spooler) формирует задание печати и создает два файла: один с расширением .SHD (содержит настройки задания печати), второй — .SPL (хранит собственно данные, которые нужно распечатать). Данные файлы хранятся в каталоге спулера (по умолчанию, «%systemroot%\System32\spool\PRINTERS”). После успешной печати, эти файлы автоматически удаляются из этого каталога, и, соответственно, из очереди печати.
Возможные параметры:
/F – удаляет объект, даже с атрибутом «Только для чтения»
/S – этот параметр позволит удалить все файлы через командную строку, включая данные во вложенных каталогах
/Q – отключает вывод запроса на подтверждение уничтожения.
 

niknikto

Новичок
Вот только это не работает в домене, т.к. у пользователя нет прав админа. Также остановка часто происходит изза сетевой активности(если в домене), принтер просто перестает реагировать, иногда помогает выдернуть сетевой кабель на пару сек, но чаще приходится перезагружать ПК.
 

Albert_researcher

Модератор
Команда форума
Вот только это не работает в домене, т.к. у пользователя нет прав админа.
Увы, правда Ваша. Еще придумали спрашивать у пользователя разрешение на доступ к компьютеру. Если бы один домен был, то это решается правкой удаленного реестра. А то в везде свой. Но этот способ ещё актуален. Не все охвачены "доменизацией."
 

Albert_researcher

Модератор
Команда форума
Надо попробовать, домен доменом, но не у всех права юзера, локальных администраторов никто не отменял.
Я поздно заметил ваше сообщение, так как перешел на http://win-forum.ru/index.php, и думал, что автоматом должны сообщения туда транслироваться. Предлагаю Вам отвечать там.
 

ExaFlop

Новичок
От имени админа:
CleanSpool.bat
Код:
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B
@echo off
net stop spooler
del /f /q %systemroot%\system32\spool\printers\*.shd
del /f /q %systemroot%\system32\spool\printers\*.spl
ping 127.0.0.1 -n 5 > nul
net start spooler
exit
 

Последние темы

Верх