скрипт на перезапуск службы печати
Скрипт на перезапуск службы печати
Вопрос
этот скрипт, должен запускать пользователь, если у него перестает печатать принтер
скрипт работает если запущенна командная строка под администратором.
в итоге скрипт не выполняется
Ответы
В качестве дополнения. Если пользователь один и на одной машине, то ему можно дать разрешения на остановку и запуск Диспетчера печати с помощью subinacl.exe:
subinacl /service Spooler /grant=пользователь=STOP
1) Делегируйте пользователям возможность остановки/запуска требуемых служб через GPO:
2) Изменить положение папки Spool через GPP
by double clicking on it and set it to the required area. This will change the print spool area for all printers, to change the print spool for only one printer move down to a printer key and create a value of type REG_SZ called SpoolDirectory and set this as where the spool files should be.
Перезапуск сервера печати (print spooler)
Итак, опишем проблему с сервисом печати (print spooler) на сервере, в крупной фирме, где есть много разномастных принтеров, подключенных в терминальном режиме.
0. Суть ошибки
Эта проблема появляется в остановке сервиса печати при работе в терминале с удаленного офиса. Ошибка происходит в терминале и принтер перестает принимать документы на печать, при чем на сервере появляется «клон» принтера, и на нем начитается выстраиваться очередь на печать, а фактически печать документов не происходит.
1. Причины ошибки
Происходит ошибка в очереди печати, или если возникла ошибка при печати на принтере, либо при отмене какого-нибудь документа, либо после небольшого разрыва связи, либо при отправке документов одновременно несколькими пользователями на печать. Тогда начинается паника в офисе, а если еще и нужно срочно распечатать какой-нибудь отчет, начинаются звонки сисадминам, с криками: «СПАСИТЕ. ПОМОГИТЕ. НЕВОЗМОЖНО РАБОТАТЬ. ДА КОГДА ЖЕ ЭТО ВСЕ ПРЕКРАТИТСЯ. » — и т. д. Вот сейчас мы и опишем, как можно исправить данную неприятность в операционных системах семейства Windows.
2. Решение
Решается данная проблема перезапуском сервера печати, т. е. службы prints pooler. (Подробно о службе prints pooler можно прочитать вот здесь). Чтоб перезапустить данную службу (как и любую другую) необходимо выполнить 2 команды:
Если операцию приходится выполнять периодически, удобнее создать «костыль» в виде файла c расширением «.bat», проще говоря «батника».
На скриншоте выше добавлен оператор pause в конце что бы показать работу bat-файла.
Смотрите также:
Microsoft SQL Server 2012 / 2008 включает в себя 9 предопределенных серверных ролей. Данные роли определены на уровне сервера и поэтому существуют вне баз данных. Они предусмотрены для удобства администрирования MS…
Для групповой разработки конфигурации в системе «1С:Предприятия» 8.3 используется хранилище конфигурации. Доступ разработчиков к хранилищу конфигурации может осуществляться по локальной сети (файлы базы данных располагаются на общем сетевом ресурсе), по протоколу…
IIS (Internet Information Services) – один из немногих штатных инструментов Windows, которым можно пользоваться, не ища более приемлемых альтернатив от других разработчиков. Веб-сервер IIS с поддержкой языка PHP можно использовать…
Скрипт на перезапуск службы печати
перезапуск службы печати
Есть два способа перезапуска графический и через командную строку.
1. Как перезапустить службы печати Windows через оснастку службы
либо нажимаем win+R и пишем services.msc и жмем enter. У вас откроется оснастка Службы.
Находим нашу с вами службу, а именно Диспетчер печати, видим, что статус у нее сейчас Выполняется.
Щелкаем правым кликом и из контекстного меню выбираем Перезапустить.
Служба быстро перезапустится и ваш принтер начнет снова печатать.
2. Как перезапустить службы печати Windows через консоль.
Открываем cmd через Пуск.
Напомню запускать его нужно обязательно от имени администратора.
И пишем в нем две волшебные команды
net stop spooler
В идеале вы может написать небольшой батник, который легко можно будет запустить. Кому лень вот ссылка на скачивание: Скачать Перезапуск службы печати. Так же советую вам обратить внимание на статью Постоянно вылетает диспетчер печати Имя сбойного модуля: zSDNT5UI.dll
Не удается запустить службу печати windows
Все с запуском и остановкой службы печати я вас ознакомил, теперь покажу, что делать если у вас не удается ее запустить. Откройте свойства службы и перейдите на вкладку Зависимости. Обратите внимание, что для того чтобы она работала, требуется выполнение службы HTTP-служба и если она не работает, то системе не удалось запустить службу диспетчер печати.
Чтобы этого избежать, откройте редактор реестра Windows и перейдите в ветку
Убедитесь, что там есть параметр Start и у него значение 3, если не такое, то меняйте его на тройку.
Так же вы можете запустить средство диагностики работы принтера в Windows и проверить его работу. Запускаете утилиту и жмете принтер.
Далее выбираете нужный принтер из списка и следуете указаниям мастера.
Как видите перезапускать запускать и устранять неполадки в службе печати Windows очень просто, если есть вопросы, то пишите их в комментариях.
Популярные Похожие записи:
27 Responses to Перезапуск службы печати в Windows
Создал себе батник перезапуска службы. Спасибо за помощь
Добрый день, всегда рад вам помочь
у меня каждый день начинается с перезапуска Диспечера печати, после того как поставил на ноут Вин 10. Как это исправить навсегда? Т.к. Ворд просто не открывается, пишет — Ожидание ответа принтера, который у меня сейчас и не подключен и виснет ворд.
попробуйте на сайте производителя вашего принтера, скачать и установить свежую версию драйверов, и обновите еще вашу Win10
Долгих лет тебе жизни, ХОРОШИЙ Человек.
Спасибо, добрый человек.
Доброе время суток.
Как правильно запустить утилиту Printerdiagnostic10.diagcab:
При запуске средства устранения неполадок произошла следующая ошибка:
Произошла непредвиденная ошибка. Работа мастера диагностики приостановлена.
Сведения об ошибке:
ИД пакета: Неизвестно
Путь: Неизвестно
Код ошибки: 0х803С010А
Источник: Файл конфигурации
Пользователь: Admin-ПК \Admin
Контекст: С повышенными правами
от души, все просто прекрасно работает и за батник отдельно, с ним все быстро и четко
щиро дякую за допомогу. тільки на вашому сайті знайшла вирішення проблеми.
Доброго времени суток. Может подскажите, как перезапустить печать на виртуальном принтере гугл? В задании на печать висят документы и стоит ошибка.
Не совсем понял, что за принтер, но как понимаю, это софтовый виртуальный принтер от какой-то программы, по типу сохранить в файл, можете либо скрин прислать, либо подробную ошибку.
Здравствуйте! Иногда возникает такая проблема с принтерами — не печатают из некоторых приложений. Обыскал весь интернет ничего не нашел, в чем может быть причина?
А, что за модели принтеров у вас, какие приложения?
ребят подскажите пожалуйста как мне убрать команду ctrl-p enter хочу чтобы автоматический печатало без команды
ты мозг! спасибо чувак!
Windows 10 корпоративная? HP Ink Tank Wireless 419. Что только не делал, служба поддержки НР сдалась. Драйвер установлен, принтер видим, установлен как главный, сканирует и через провод и в режиме DIRECT. Но не печатает ни из каких приложений, выдаёт следующее: Не удается отобразить страницу XML До этого был принтер EPSON, проблем не было.
Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку «Обновить» или повторите попытку позднее.
Ваше средство устранения неполадок тоже не помогло. Из Windows 10 Home c ноутбука и Windows 7 другого компьютера печает без проблем. Все ваши советы воплотил, безрезультатно.
А можете сделать две вещи. 1. Скриншот. 2. Это выгрузить логи из просмотра событий на том компьютере, где вы производите печать.
большое спасибо, что действительно помогли мне. Спасибо
А у меня такая проблема возникла — многофункциональный принтер HP Deskjet F380, состояние хорошее. Недавно переустановил Windows 7-64 SP-1 — сначала принтер работал нормально, т.е. штатно, но вот вчера при попытке напечатать фото из программы Фотошоп перестал корректно работать предварительный просмотр печати. Я всегда печатаю с предварительным просмотром, но вчера окно предварительного просмотра стало открываться пустым, т.е. само изображение в нем отсутствует — чистый лист. При этом печать проходит без нареканий. Переустановка драйверов ничего не дала — драйверы самые последние с офсайта. Сегодня установил драйвер из самой Windows, т.е. без сопутствующих программулек — эффект тот же — окно предварительного просмотра открывается без изображения печатаемого объекта, но печатает нормально… Но это очень неудобно, т.к. непонятно, где будет располагаться на листе печатаемый объект.
А вот вопрос если взять любую другую программу, например просмотр PDF или из офисного комплекта, там предпросмотр так же не работает корректно?
Спасибо!! Я полный лузер, но по Вашим инструкциям у меня все получилось))))
SMEARG
Перезапуск службы печати на удалённом ПК
Недавно ко мне обратился человек с просьбой помочь в написании скрипта для перезапуска службы печати для того, чтобы очистить очередь печати от “застрявших” заданий – которые не печатаются, не отменяются и не удаляются. Мне это показалось банальным и скучным, поэтому я предложил сделать это сразу для удалённого компьютера.
Для того, чтобы перезапустить службу на локальном компьютере, много ума не надо достаточно выполнить команду
Если службу нужно перезапустить на удалённом компьютере уже становится веселее, так как Restart-Service не умеет работать с удалёнными компьютерами. Впрочем, такой подход нам всё равно не подходит, так как не гарантирует очистку очереди печати.
Это ещё не всё, самое интересное впереди, но сначала…
Немного теории
Очередь печати – это файлы с расширениями
По умолчанию эти файлы находятся в каталоге %systemroot%\System32\spool\PRINTERS. “По умолчанию” как-бы намекает на то, что этот путь можно изменить. И нам для начала этот путь нужно было узнать, чтобы убедиться в том, что файлы очереди печати лежат здесь (наверное, бывало по другому).
Этот путь хранится в реестре, по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers, ключ DefaultSpoolDirectory:
В идеале в этом каталоге ничего не должно быть, если только мы не отправляли недавно что-то на печать. Если же при печати возникали какие-либо сбои, здесь могут быть файлы, это те самые задания печати, которые нельзя удалить из очереди принтера. Удалить их отсюда как обычные файлы (через проводник, Powershell и т.д.) скорее всего не получится, так как они заняты службой печати.
Поэтому вырисовывается алгоритм:
Всё очень просто. Задача осложняется тем, что мы хотим это всё делать на удалённом компьютере.
Переходим к практике
Чтобы не загромождать статью, я не буду приводить кучу проверок (на то, что компьютер доступен, что у нас есть доступ к WMI и т.д.).
Далее, пробираемся по интересующему нас пути, используя для полученного раздела метод OpenSubKey, задав ему в качестве параметра нужный подраздел:
Переменная $Key содержит весь подраздел Printers (на скриншоте выше). Нам из этого раздела нужно только одно значение:
Переменная $DefaultSpoolDirectory содержит тот самый путь к файлам очереди печати:
Отлично! Вот только появляется новая проблема: это локальный путь – по этому пути к удалённому компьютеру мы не доберёмся. Нужно преобразовать его в UNC-путь, т.е. из пути
Это можно сделать простой манипуляцией со строкой:
Т.е. просто дописываем в строку (наш локальный путь) недостающие символы.
Теперь всё готово, можем останавливать службу и очищать очередь печати.
Останавливаем службу печати:
На всякий случай поясню – в данном случае при обращении к WMI используется сплаттинг, если такая форма кажется незнакомой и пугающей рекомендую почитать соответствующую статью, или воспользоваться более привычной формой:
После остановки службы можно очищать очередь печати, но как известно аппетит приходит во время еды, и мне захотелось ещё посмотреть на то, сколько мусора там собралось:
Вообще общепризнанным “best practice” не рекомендуется выводить простой текст в выводе скрипта, но так как это не было целью работы, и мне уже было лень с этим возиться, поэтому я просто воспользовался оператором –f.
Осталось только запустить службу:
Если нужно перезапустить (остановить/запустить) другую службу, действия будут аналогичными, при необходимости можно имя службы и удалённого ПК засунуть в параметры, и запускать/останавливать/перезапускать любые службы на любых компьютерах 🙂 Только нужно проверить зависимости и убедиться в том, что заданную службу можно останавливать.
Автоочистка и перезагрузка службы печати принт-сервера
Короткий но полезный скрипт для админов. Имеется принтсервер с 34 принтерами, и у него происходят застревания в очереди печати, обычно это происходит когда принтер отдела отправлен в ремонт, а другой отдел хочет им отправить документ на не существующий принтер. Загрузка процессора поднимается и может достигнуть 100%.
Получив несколько раз такую ситуацию, и обнаружив что принтсервер может простоять с загрузкой процессора 30-50% неделю(!) до тех пока это не увидит админ. Чтобы решить эту проблему и разгрузить персонал был набросан небольшой скрипт, он крайне прост и у него много аналогов, выложить сюда я его решил поскольку он снова и снова, доказывает свою полезность.
У нас сломалось три принтера подряд, мы сняли их на ремонт, а пользователи других отделов продолжали слать задания в очередь, в результате автоочистка и перегрузка службы печати избавила нас от работы в тот момент когда мы были заняты ремонтом физической техники.
для того чтобы снять нагрузку с процессора нужно очистить задания печати в каталоге C:\Windows\System32\spool\PRINTERS\ просто удаляются все файлы в каталоге при остановленной службе:
Для административного оповещения предварительно сохраняем — кто, какой документ, какого размера и куда печатал. Заодно пример как создавать объекты.
При работе желательно создавать объекты.
А теперь вызываем Get-NBTName | sort type | Format-Table –Autosize
На выходе будет набор объектов что-то типа:
Мы хотим иметь диагностическое инфо на момент перезагрузки спулера для этих целей добавим список процессов с загрузкой по процессору и памяти:
Для принятия решения что пора перегружать спулер, берутся отсчеты от процессора и если они превысили порог в течение 5 секунд то считается что пора перегружаться. Данная схема не оптимальна, например при установке обновлений может держаться такая загрузка, но для оперативной работы, и ежедневной деятельности показала себя достаточной, поэтому и оставляю ее как есть:
Скрипт нужно добавить в шедулер на запуск каждые 5-10 минут.
Для отправки письма мы используем с небольшими изменениями метод описанный здесь.
Отправка почты вынесена в отдельную функцию, т.к. она используется в других местах, вам нужно поменять адрес почтового сервера ‘SMTPServer’=’Exchange.domain.ru’ на ваш сервер вот в этом месте:
И заменить адрес admin@domain.ru на адрес на который должно уходить административное оповещение вот здесь:
В первоначальной редакции скрипт умел извлекать DLL загруженные в память для каждого процесса для того чтобы выловить «глючный» драйвер. в данной редакции убран т.к. генерирует слишком большое количество инфо, был реализован через ListDll, но генерировал очень большой список.
Полный код скрипта:
Скрипт нужно добавить в шедулер на запуск каждые 5-10 минут.