Вы можете столкнуться с ошибкой «Локальная подсистема печати не выполняется» как при попытке подключить новый принтер, так и при открытии настроек уже настроенного локального принтера или при отправке на печать любого документа. Эта ошибка может появиться как в Windows 10, так и в Win 7 или 8.1.
Текст сообщения об ошибке может немного отличаться в зависимости от того, какое действие вы пытаетесь выполнить с объектами в подсистеме печати. Например:
Windows не удается подключиться к принтеру.
Локальная подсистема печати не выполняется. Перезапустите подсистему или перезагрузите компьютер.
В английской версии Windows ошибка может выглядеть так:
В первую очередь нужно проверить, запушена ли служба печати (Print Spooler). При отключенной службы печати вы можете столкнуться с ошибкой 0x000006ba.
- Для этого откройте консоль управления службами (services.msc);
- В списке служб найдите службу «Диспетчер печати» (Print Spooler);
- Убедитесь, что служба запущена (состояние – «Выполняется»), а тип запуска «Автоматический»;
- Перезапустите службу;
- Если служба не запущена, измените тип запуска службы и запустите ее;
- На вкладке зависимости убедитесь, что служба Print Spooler зависит от служб Удаленный вызов процедур RPC (Remote Procedure Contro) и HTTP службы (HTTP Service). Для корректной работы службы печати данные службы должны быть запущены. Если зависимости не настроены, вы можете восстановить их командой: sc config spooler depend= RPCSS
Так же вы можете проверить статус службы печати из командной строки, выполнив команду:
sc query spooler
В этом примере видно, что служба запушена (Running).
Если служба «Диспетчер печати» отсутствует или не запускается, попробуйте очистить очередь печати и удалить файлы в папке C:\windows\system32\spool\Printers (при остановленной службе печати). Затем проверьте, включен ли компонент печати Windows:
- Перейдите в Панель управления -> Все элементы панели управления -> Программы и компоненты –> Включение или отключение компонентов Windows
- В списке компонентов найдите раздел «Службы печати и документов»;
- Убедитесь, что включены службы: Клиент интернет-печати, Служба печати LPD и Факсы и сканирование Windows;
- Можете попробовать переустановить компоненты: отключите их, сохраните изменения, а потом включить заново.
Если ошибка «Локальная подсистема печати не выполняется» появляется при попытке подключения общего сетевого принтера с другого компьютера, попробуйте подключить сетевой принтер через локальный порт (в качестве имени порта используется адрес принтера в формате \\PCName1\HP2000). Процедура подключения сетевого принтера через локальный порт подробно описана в статье Печать на сетевом принтере на Windows 10 из-под XP.
Если ничего не помогло, запустите мастер исправления проблем с печатью: Параметры -> Обновления и безопасность -> Принтер (Поиск и устранение проблем с печатью) -> Запустите средство устранения неполадок.
перезапуск службы печати
Добрый день уважаемые читатели блога pyatilistnik.org, сегодня хочется рассказать о том как выполнить Перезапуск службы печати в Windows 7 — 10, а также в Windows Server 2008R2 — 2012R2, на английский манер данная служба называется print spooler. Для чего вам может потребоваться выполнить перезапуск службы печати, бывает та, что в какой-то момент принтер перестает печатать и его очередь печати просто забивается ли может такое возникнуть если клиент заходит на сервер терминалов, пытается печатать и чем-то тоже забивает спуллер, в данном случае и нужно произвести перезапуск службы. Ниже представлен рисунок изображающий диспетчер очереди печати, и в нем как вы может обратить внимание ошибка.
Перезапуск службы печати в Windows -01
Есть два способа перезапуска графический и через командную строку.
Как перезапустить службу Windows из командной строки?
Есть ли способ перезапустить службу Windows из командной строки? Вы можете использовать , net stop чтобы остановить его и , net start чтобы начать его снова в основном перезапуск службы. Чтобы объединить их, просто сделайте это net stop && net start .
Интересные материалы:
Что входит в обязанности проводника пассажирского вагона? Что входит в общие и административные расходы? Что входит в общий трудовой стаж в России? Что входит в питание в поезде у1? Что входит в плату за содержание дома? Что входит в профосмотр? Что входит в производственные расходы? Что входит в ритейл? Что входит в содержание жилья 2022? Что входит в состав Омега 3?
Причины возникновения проблемы
Компьютеры, работающие с Виндовс 10, могут взаимодействовать с любой моделью принтера без предварительной установки ПО и скачивания драйверов. Правда, бывают случаи, когда подключенное печатное устройство конфликтует с ПК.
Причины конфликтов:
- повреждены системные файлы;
- отключены (специально или случайно) службы, отвечающие за печать;
- ОС заражена вирусами;
- проблемы с драйверами конкретного принтера;
- не очищена очередь.
После обновления ОС Вин 10 бывает невозможно запустить ранее работающий printer и напечатать простой текст. При этом в разделе «Этот компьютер» все печатные устройства, подключенные к ПК, отображаются. Список всех принтеров можно увидеть в другом окне. Правда, предварительно придется активировать «Панель управления». Через «Оборудование и звук» удастся попасть в подпункт «Устройства и принтеры». Оттуда можно вызвать для каждого окошко «Свойства: Сервер печати», чтобы посмотреть более детальную информацию.
При попытке напечатать текст система может сигнализировать об ошибке: «Windows не удалось подключиться к принтеру. Локальная подсистема печати не выполняется». Виндовс даже подскажет, как самостоятельно исправить неполадку. Система попросит перезапустить печатную подсистему или перезагрузить ПК.
Важно! Наиболее распространенная ошибка выдает код «0x000006ba». Причина: отключение ответственной за печать службы.
Способ 2: встроенное средство исправления неполадок
В Windows 10 присутствует встроенное средство обнаружения и исправления ошибок, однако в случае проблемы с «Диспетчер печати» оно не всегда работает корректно, поэтому мы и взяли этот метод вторым. Если упомянутый выше инструмент у вас функционирует нормально, попробуйте воспользоваться установленной функцией, а делается это следующим образом:
- Откройте меню «Пуск» и перейдите в «Параметры».
- Щелкните на разделе «Обновление и безопасность».
- На панели слева отыщите категорию «Устранение неполадок» и в «Принтер» нажмите на «Запустить средство устранения неполадок».
- Дождитесь завершения обнаружения ошибок.
- Если принтеров используется несколько, потребуется выбрать один из них для дальнейшей диагностики.
- По окончании процедуры проверки вы сможете ознакомиться с ее результатом. Найденные сбои обычно исправляются или предоставляется инструкция по их решению.
Если модуль устранения неполадок не выявил проблем, переходите к ознакомлению с другими способами, приведенными ниже.
Сканирование на вирусы
Если все, что вы сделали ранее, не помогло, и система вновь не выполняет печать, то необходимо проверить ПК на наличие мешающих системе вирусов, которые способны повлиять на процесс печати, затормаживания или блокируя его. Для данной проверки вам необходимо иметь на компьютере антивирус с системными базами последних обновлений. Как варианты антивирусов можно предложить ESET NOD 32, Dr. Web, Kaspersky или любой другой проверенный временем антивирус.
Для инициации проверки нашей системы есть два способа. Во-первых, вы можете запустить ее из интерфейса вашего антивируса. Во-вторых – доступно проверить конкретно интересующий нас локальный диск, а это, как правило – диск «C», так как на нем должна быть установлена операционная система и драйвера. Для проверки вам необходимо зайти в «Мой компьютер», выбрать диск «C» и проверить его, нажав правой клавишей мыши, а затем указав необходимый нам пункт в контекстном меню.
Если быть до предела точными, то нас интересует целостность таких файлов и библиотек, как sfc.dll, sfc_os.dll, sfc.exe, и sfcfiles.dll, которые можно найти в папке Windows\system32. Если указанные файлы повреждены или отсутствуют, вам необходимо найти их резервные копии, которые находятся в папке Windows\winsxs. Следующим шагом стоит очистить очередь печати.
Станьте владельцем Spoolsv
Принятие права владения исполняемым файлом, который запускает диспетчер очереди печати, также может помочь предотвратить сбои и другие проблемы со службой.
1. Откройте проводник и перейдите на Локальный диск (C :)> Windows> System32.
2. Щелкните правой кнопкой мыши файл с надписью spoolsv и выберите «Свойства».
3. Перейдите на вкладку «Безопасность» и выберите «Дополнительно».
4. Выберите Изменить.
5. Введите свое имя пользователя Windows и выберите Проверить имена. Если вы ввели его правильно, вы должны автоматически увидеть путь к вашей учетной записи.
6. Выберите ОК.
7. Убедитесь, что вы видите свое имя пользователя рядом с полем «Владелец». Затем выберите Применить, затем ОК.
8. Перезагрузите компьютер.
Все ответы
Принтер случаем не HP с подключением по USB?
Попробуйте в свойствах принтера отключить галку Двунаправленный обмен и/или Расширенные возможности печати.
21 июля 2022 г. 16:40 Ответить | Цитировать
Если у вас несколько принтеров скорее всего у вас разница в отправлении задач печати.
1. начните пробовать с какой именно верисии ОС у вас не получается распечатать.
Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку «Предложить как ответ» или «Проголосовать за полезное сообщение» Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий.
27 июля 2022 г. 7:34 Ответить | Цитировать
Так же попробуйте на чистой системе добавлять по одному принтеру до момента когда начнет падать spooler
exe начинает потреблять больше ресурсов процессора, когда вы даете системе указание на печать какого-нибудь файла. Опять же, это норма. По завершению печати нагрузка должна снова опуститься до фактического нуля.
Все же, бывают случаи, когда Диспетчер очереди печати сильно грузит процессор. От подобного никто не застрахован. В конце концов, система такая же несовершенная, как и любой другой человеческий продукт, поэтому порой может лагать или некрректно работать.
В определенных сценариях нагрузка не падает и spoolsv.exe начинает сильно грузить процессор на протяжении долгого времени. Зачастую причина спрятана где-то в системе печати Windows, что вполне очевидно. Проблема может заключатьяс в чрезмерно большой очереди на печать (много файлов поставлены на печать), забагованных драйверах принтера или неправильной конфигурации последнего.
Первым делом попробуйте обратиться к встроенной системе устранения неполадок. Нажмите Win I и перейдите в раздел Обновление и безопасность – Устранение неполадок.
В самом первом списке найдите Принтер, нажмите на него, а затем на Запустить средство устранения неполадок. Следуйте всем инструкциям и указаниям мастера. После завершения работы средства проследите за работой Диспетчера очереди печати. Если он перестал грузить процессор, тогда проблема решена. Если нет, читайте эту инструкцию дальше.
Второй вариант – проверка очереди печати.
- Откройте Параметры (клавиатурное сокращение Win I, либо любой другой удобный вам способ), а затем Устройства – Принтеры и сканеры.
- В списке доступных принтеров и сканеров найдите тот, что в данный момент подключен к вашему компьютеру (физический принтер). Нажмите на него, а затем на Открыть очередь.
- Проверьте, нет ли в очереди большого количества файлов. Если да, тогда нажмите в верхнем меню Принтер и затем Очистить очередь печати. Повторите эту процедуру для всех остальных принтеров, включая виртуальные (Факс, Microsoft Print to PDF, Microsoft XPS Document Writer и Send to OneNote 2021).
Третья опция – перезапуск самой службы. Возможно, система просто столкнулась с багом, поэтому перезапуск службы печати теоретически может исправить проблемы с нагрузкой.
- Нажмите Win R (команда «Выполнить») и введите services.msc.
- В списке найдите службу Диспетчер печати. Кликните на нее, а затем в левой части нажмите на Перезапустить службу.
- После перезапуска службы откройте Диспетчер задач и понаблюдайте за spoolsv.exe.
:/> Защитник Windows 10 | Как настроить параметры и исключения, включить или отключить Windows Defender?
Если и третий метод не помог, тогда удалите принтер из Параметров Windows. Для этого в разделе Параметры – Устройства – Принтеры и сканеры нажмите на нужный принтер и выберите Удалить устройство.
После этого кликните на Добавить принтер или сканер и следуйте указаниям системы для повторного добавления принтера в систему. Есть смысл также попробовать удалить драйвер принтера и установить его обратно, либо установить предыдущую или более новую версию.
Быть может, свежее или предыдущее ПО не имеет багов, причиняющих высокую нагрузку на процессор Диспетчером очереди печати.
Восстановление системы
Если после всех преодоленных препятствий, а именно — проверке антивирусом компьютера и попытке запустить «Диспетчер печати» в состояние активности вы все равно получаете сообщение о том, что система печати недоступна, то самым действенным решением будет выполнение отката системы. Это делается для всей операционной системы до абсолютно рабочей версии. Способ помогает вернуться в то состояние компьютера, когда проблем с принтером не было вообще.
Восстановление системы
Но этот метод, увы, возможен лишь в том случае, если вы активировали функцию восстановления системы. Проверить ее состояние можно так: нажмите по ярлыку «Мой компьютер» правой клавишей мыши, после чего вы увидите контекстное меню. В этом разделе необходимо выбрать пункт «Свойства». Следующим шагом откройте вкладку «Защита системы», а если у вас стоит видоизмененная версия, то «Восстановление системы». В статусе «Состояние» нам нужна запись «Наблюдение». Если система «наблюдает», то есть, активна, она создает точки восстановление, и сделать откат к рабочему состоянию будет совсем простой задачей.
Способ 2: «диспетчер служб»
Активировать связанную службу для устранения описываемой нами ошибки можно через «Диспетчер служб».
- Перейдите через «Пуск» в «Панель управления». Как это совершить объяснялось в Способе 1. Далее выбирайте «Система и безопасность».
- Заходите в «Администрирование».
- В открывшемся перечне выбирайте «Службы».
- Активируется «Диспетчер служб». Тут необходимо отыскать элемент «Диспетчер печати». Для более быстрого поиска постройте все названия в алфавитном порядке, кликнув по наименованию столбца «Имя». Если в колонке «Состояние» нет значения «Работает», то это означает, что служба деактивирована. Чтобы запустить её, сделайте дважды клик по названию левой кнопкой мышки.
- Запускается интерфейс свойств службы. В области «Тип запуска» из представленного перечня выберите «Автоматически». Нажмите «Применить» и «OK».
- Возвратившись в «Диспетчер», заново выделяйте имя того же объекта и кликните «Запустить».
- Происходит процедура активации службы.
- После её окончания около наименования «Диспетчер печати» должен стоять статус «Работает».
Теперь изучаемая нами ошибка должна исчезнуть и больше не отображаться при попытке подключения нового принтера.
Автоочистка и перезагрузка службы печати принт-сервера
Короткий но полезный скрипт для админов. Имеется принтсервер с 34 принтерами, и у него происходят застревания в очереди печати, обычно это происходит когда принтер отдела отправлен в ремонт, а другой отдел хочет им отправить документ на не существующий принтер. Загрузка процессора поднимается и может достигнуть 100%.
Получив несколько раз такую ситуацию, и обнаружив что принтсервер может простоять с загрузкой процессора 30-50% неделю(!) до тех пока это не увидит админ. Чтобы решить эту проблему и разгрузить персонал был набросан небольшой скрипт, он крайне прост и у него много аналогов, выложить сюда я его решил поскольку он снова и снова, доказывает свою полезность.
У нас сломалось три принтера подряд, мы сняли их на ремонт, а пользователи других отделов продолжали слать задания в очередь, в результате автоочистка и перегрузка службы печати избавила нас от работы в тот момент когда мы были заняты ремонтом физической техники.
для того чтобы снять нагрузку с процессора нужно очистить задания печати в каталоге C:WindowsSystem32spoolPRINTERS просто удаляются все файлы в каталоге при остановленной службе:
Get-Service *spool* | Stop-Service -Force -Verbose Start-Sleep -Seconds 5 $path = «C:WindowsSystem32spoolPRINTERS» Get-ChildItem $path -File | Remove-Item -Force -Verbose Get-Service Spooler | Start-Service -Verbose
Для административного оповещения предварительно сохраняем — кто, какой документ, какого размера и куда печатал. Заодно пример как создавать объекты.
# получаем список заданий со всех принтеров в системе на этот момент $temp = Get-Printer | Get-PrintJob # создаем пустой список объектов $Jobs = @() # перебирем все объекты заданий печати чтобы сформировать полноценный объект foreach ( $p in $temp ) { # ниже применяется свойство [ordered] позволяющее зафиксировать порядок в свойствах # объекта обычно пошик создает свойства в произвольном порядке # этого указателя нет в старом пошике, поэтому если получаете ошибку просто # удалите ее она нужна больше для людей — когда ведешь вывод в консоль # в данном случае она нужна чтобы зафиксировать порядок колонок в html письма $props = [ordered]@{ ID = $p.Id PrinterName = $p.PrinterName UserName = $p.UserName DocumentName = $p.DocumentName DataType = $p.Datatype SubmittedTime = $p.SubmittedTime Size = $p.Size JobTime = $p.JobTime PagesPrinted = $p.PagesPrinted TotalPages = $p.TotalPages Status = $p.Status } # создаем еденичный объект с значениями из переменной $props $obj = New-Object -TypeName PSObject -Property $props # добавляем в список объекта $Jobs = $obj } # на выходе имеем полноценные объекты $Jobs
При работе желательно создавать объекты.
Мы хотим иметь диагностическое инфо на момент перезагрузки спулера для этих целей добавим список процессов с загрузкой по процессору и памяти:
# дергаем запущенные процессы $temp = Get-Process | sort -Property cpu -Descending # объявляем пустой список объектов $proc = @() foreach ( $p in $temp ) { # заполняем свойства будущего объекта $props = [ordered]@{ Name=$p.ProcessName CPU_total_in_seconds=$p.CPU PhysicallMemory_in_Mb=$p.WS/1mb ProcessID=$p.Id } # создаем объект из свойств $obj = New-Object -TypeName PSObject -Property $props # добавляем его в список объектов $proc = $obj } $proc
Для принятия решения что пора перегружать спулер, берутся отсчеты от процессора и если они превысили порог в течение 5 секунд то считается что пора перегружаться. Данная схема не оптимальна, например при установке обновлений может держаться такая загрузка, но для оперативной работы, и ежедневной деятельности показала себя достаточной, поэтому и оставляю ее как есть:
# счетчик загрузки, если загрузка больше чем 95 то инкремент $cfi = 0 for( $i=1; $i -le 5; $i ) { Start-Sleep -Seconds 1 # подгружаем загрузку процессора $load = Get-WmiObject win32_Processor | select -Property LoadPercentage Write-Host «CPU load $load» -ForegroundColor Green if ($($load.LoadPercentage) -gt 95) { $cfi = $cfi 1 Write-Host «indicator is $cfi» -ForegroundColor Green } }
Скрипт нужно добавить в шедулер на запуск каждые 5-10 минут.
Для отправки письма мы используем с небольшими изменениями метод описанный здесь.
Отправка почты вынесена в отдельную функцию, т.к. она используется в других местах, вам нужно поменять адрес почтового сервера ‘SMTPServer’=’Exchange.domain.ru’ на ваш сервер вот в этом месте:
$params = @{‘To’=$MailAddress ‘From’=’[email protected]’ ‘Subject’=»$Subject $Date» ‘Body’=$MailBody ‘BodyAsHTML’=$True ‘SMTPServer’=’Exchange.domain.ru’ } Send-MailMessage @params -Encoding $encoding
И заменить адрес
на адрес на который должно уходить административное оповещение вот здесь:
Send-ToAdmin -MailAddress ‘[email protected]’ -Style $Style -Subject ‘Сервер печати — процессор загружен на 100%’ -Body $Body -Header1 $header
В первоначальной редакции скрипт умел извлекать DLL загруженные в память для каждого процесса для того чтобы выловить «глючный» драйвер. в данной редакции убран т.к. генерирует слишком большое количество инфо, был реализован через
ListDll
, но генерировал очень большой список.
Полный код скрипта:
$StyleYellowSimple = @’ body { background-color:#ffffff; font-family:Tahoma; font-size:12pt; } td, th { border:1px solid black; border-collapse:collapse; } th { color:white; background-color:black; } table, tr, td, th { padding: 2px; margin: 0px } table { font-family: «Lucida Sans Unicode», «Lucida Grande», Sans-Serif; font-size: 14px; border-radius: 10px; border-spacing: 0; text-align: center; } th { background: #BCEBDD; color: white; text-shadow: 0 1px 1px #2D2020; padding: 10px 20px; } th, td { border-style: solid; border-width: 0 1px 1px 0; border-color: white; } th:first-child, td:first-child { text-align: left; } th:first-child { border-top-left-radius: 10px; } th:last-child { border-top-right-radius: 10px; border-right: none; } td { padding: 10px 20px; background: #F8E391; } tr:last-child td:first-child { border-radius: 0 0 0 10px; } tr:last-child td:last-child { border-radius: 0 0 10px 0; } tr td:last-child { border-right: none; } ‘@ function Send-ToAdmin { Param ( [string]$MailAddress = ‘[email protected]’, [string]$Subject = ‘Test message’, [string]$Header1, [string]$Body, [string]$Style ) BEGIN {} PROCESS { Write-Verbose ‘definiting CSS’ $head = $StyleYellowSimple $encoding = [System.Text.Encoding]::UTF8 $Date = Get-Date $MailBody = ConvertTo-HTML -head $head -PostContent $Body -PreContent «
$Header1
» | Out-String Write-Verbose «Sending e-mail. Address: $MailAddress» $params = @{‘To’=$MailAddress ‘From’=’[email protected]’ ‘Subject’=»$Subject $Date» ‘Body’=$MailBody ‘BodyAsHTML’=$True ‘SMTPServer’=’Exchange.domain.ru’ } Send-MailMessage @params -Encoding $encoding } END{} } $cfi = 0 for( $i=1; $i -le 5; $i ) { Start-Sleep -Seconds 1 $load = Get-WmiObject win32_Processor | select -Property LoadPercentage Write-Host «CPU load $load» -ForegroundColor Green if ($($load.LoadPercentage) -gt 95) { $cfi = $cfi 1 Write-Host «indicator is $cfi» -ForegroundColor Green } } if ($cfi -gt 2) { # дергаем процессы для инфо $temp = Get-Process | sort -Property cpu -Descending $proc = @() foreach ( $p in $temp ) { $props = [ordered]@{ Name=$p.ProcessName CPU_total_in_seconds=$p.CPU PhysicallMemory_in_Mb=$p.WS/1mb ProcessID=$p.Id } $obj = New-Object -TypeName PSObject -Property $props $proc = $obj } $temp = Get-Printer | Get-PrintJob $Jobs = @() foreach ( $p in $temp ) { $props = [ordered]@{ ID = $p.Id PrinterName=$p.PrinterName UserName=$p.UserName DocumentName=$p.DocumentName DataType=$p.Datatype SubmittedTime=$p.SubmittedTime Size=$p.Size JobTime=$p.JobTime PagesPrinted=$p.PagesPrinted TotalPages=$p.TotalPages Status=$p.Status } $obj = New-Object -TypeName PSObject -Property $props $Jobs = $obj } # перегружаем спулер тут Write-Host «Перегружаем спулер» -ForegroundColor Green Get-Service *spool* | Stop-Service -Force -Verbose Start-Sleep -Seconds 5 $path = «C:WindowsSystem32spoolPRINTERS» Get-ChildItem $path -File | Remove-Item -Force -Verbose Get-Service Spooler | Start-Service -Verbose $frag1 = $proc | ConvertTo-Html -As table -Fragment -PreContent ‘
Как открыть мастер добавления принтеров?
Не удалось открыть мастер добавления принтеров – как исправить
- Активируйте функционал «Службы печати и документов». Перейдите в «Установку и удаление программ» (или жмём на кнопку «Пуск», в строке поиска вводим appwiz. cpl и нажимаем ввод). …
- Теперь, если вновь нажать на «Установка принтеров», то всё должно заработать;
Интересные материалы:
Чему учат в колледже гостиничное дело? Чему учит киокушинкай каратэ? Чему учит нас Чехов? Чьи строки С любимыми не расставайтесь? Чья группа Rasa? Чья песня Я не могу без тебя? Чья песня Я сажаю алюминиевые огурцы? Чья шерсть самая мягкая? Что белого цвета? Что ближе Туманность Андромеды или галактика Треугольника?
Подтверждаем неисправность
Прежде чем приступить к устранению неполадок, необходимо убедиться, что ошибка печати вызвана указанной службой операционной системы. Чтобы проверить условия, мы найдем его среди других компонентов списка. Для этого нужно выполнить несколько простых шагов.
- Откройте окно команд быстрого запуска с помощью комбинации Windows + R.
- Вводим команду «services.msc».
- Ждем открытия списка услуг.
- Найдите в списке «Диспетчер очереди печати» и откройте его двойным щелчком.
Теперь нужно убедиться, что он неподвижен и не работает. Давайте посмотрим на соответствующие метки в окне свойств, как показано на следующем рисунке. При необходимости переключитесь на нужные и принудительно запустите их, чтобы «перезапустить» работу принтеров. Измените тип запуска на «Автоматический» и нажмите кнопку «Выполнить», затем «Применить» и «ОК».
Нет службы печати в списке служб
Бывают случаи, когда вы не можете найти нужную нам полиграфическую услугу в длинном списке. Таким образом, вы можете выполнить поиск по имени «Printers Spooler», если вы используете английский интерфейс Windows. Даже если ничего не найдено, ситуация довольно проблемная. Это означает, что пользователь (вы или кто-то другой) случайно или не зная об этом удалил важные файлы в системных папках на диске с «Windows». Еще одной причиной исчезновения диспетчера печати может быть наличие на ПК вредоносных программ или просто вирусов. Решение могло быть следующим:
- Проверьте реестр, который является значением параметра DependOnService в ветви HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / Spooler. Он должен быть равен «RPCSS http». В случае несогласованности изменений вы можете войти в редактор через быстрый запуск (Windows + R) и команду «regedit».
- Очистите свой «компьютер» от вирусов с помощью полноценного антивируса или разовой бесплатной утилиты.
- Восстановите точку восстановления, если она была создана.
- Полностью переустановите систему.
Переходим к практике
Чтобы не загромождать статью, я не буду приводить кучу проверок (на то, что компьютер доступен, что у нас есть доступ к WMI и т.д.).
Итак, для начала нам нужно узнать путь к очереди печати, т.е. посмотреть значение реестра удалённого компьютера. Для этого используем .NET класс RegistryKey.
Для того, чтобы подключиться к реестру удалённого компьютера используем метод OpenRemoteBaseKey, передав ему в качестве параметров имя компьютера и раздел реестра:
$ServerKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey( [Microsoft.Win32.RegistryHive]::LocalMachine, $ComputerName)
$Key = $ServerKey.OpenSubKey(‘SYSTEMCurrentControlSetControlPrintPrinters’)
Переменная $Key содержит весь подраздел Printers (на скриншоте выше). Нам из этого раздела нужно только одно значение:
$DefaultSpoolDirectory = $Key.GetValue(‘DefaultSpoolDirectory’)
Переменная $DefaultSpoolDirectory содержит тот самый путь к файлам очереди печати:
PS C:> $DefaultSpoolDirectoryC:WINDOWSSystem32spoolPRINTERS
Отлично! Вот только появляется новая проблема: это локальный путь – по этому пути к удалённому компьютеру мы не доберёмся. Нужно преобразовать его в UNC-путь, т.е. из пути
C:WINDOWSsystem32spoolPRINTERS
получить путь
ComputerNameC$WINDOWSsystem32spoolPRINTERS
Это можно сделать простой манипуляцией со строкой:
$RemoteDefaultSpoolDirectory = ‘’ $ComputerName ” $DefaultSpoolDirectory[0] ‘$’ $DefaultSpoolDirectory.Substring(2)
Т.е. просто дописываем в строку (наш локальный путь) недостающие символы.
Теперь всё готово, можем останавливать службу и очищать очередь печати.
Останавливаем службу печати:
# Получаем службу$Service = Get-WmiObject Win32_Service @PSBoundParameters # Останавливаем службу$Service.StopService()
На всякий случай поясню – в данном случае при обращении к WMI используется сплаттинг, если такая форма кажется незнакомой и пугающей рекомендую почитать соответствующую статью, или воспользоваться более привычной формой:
$Service = Get-WmiObject Win32_Service ` -Filter «name = ‘spooler’» ` -ComputerName $ComputerName
После остановки службы можно очищать очередь печати, но как известно аппетит приходит во время еды, и мне захотелось ещё посмотреть на то, сколько мусора там собралось:
# Если в очереди печати что-то естьif ($ContentSpoolDirecrory = Get-ChildItem $RemoteDefaultSpoolDirectory -Force){ # Считаем размер каталога с очередью печати $FolderSize = ($ContentSpoolDirecrory | Measure-Object -Property Length -Sum).Sum / 1Mb # Выводим «`nВ {0} находится {1} файл(а/ов), общим объёмом {2:
Вообще общепризнанным “best practice” не рекомендуется выводить простой текст в выводе скрипта, но так как это не было целью работы, и мне уже было лень с этим возиться, поэтому я просто воспользовался оператором –f.
Осталось только запустить службу:
$Service.StartService()
Если нужно перезапустить (остановить/запустить) другую службу, действия будут аналогичными, при необходимости можно имя службы и удалённого ПК засунуть в параметры, и запускать/останавливать/перезапускать любые службы на любых компьютерах
:/> Система Windows : Как изменить пароль-Renee Passnow
Что делать, если «спулер» сильно грузит процессор
Многие пользователи разных версий «Виндовс» часто жалуются на то, что процесс «spooler» сильно грузит процессор. Проблема станет более острой, когда загрузка начинает доходить за отметку в 80 процентов. Это действительно нетипичная ситуация и такой загрузки быть не должно. Рассмотрим возможные причины и их быстрое самостоятельное решение.
- Большая очередь из заданий на печать или файлы очень большого размера. Просто очищаем список заданий и разбиваем большой файл на несколько частей соответственно.
- В перечне принтеров много моделей, которые вообще или очень редко используются. Их лучше удалить, так как службе печати приходится постоянно их «мониторить», что вызывает дополнительную нагрузку.
- Устаревший или «битый» драйвер сам может негативно воздействовать и потреблять много ресурсов. В такой случае переустановка неизбежна.
Переустановка всей службы отдельно от операционной системы невозможна. Для возобновления ее корректной работы Вы можете только попытаться выполнить выше перечисленные действия.
Какая причина была у Вас?
- Непонятно * 50%, 1 голос 1 голос 50% 1 голос — 50% из всех голосов
- Драйвера 50%, 1 голос 1 голос 50% 1 голос — 50% из всех голосов
- Просто была остановлена служба 0%, 0 голосов голосов 0 голосов — 0% из всех голосов
- Вирусы 0%, 0 голосов голосов 0 голосов — 0% из всех голосов
- Много заданий в очереди печати 0%, 0 голосов голосов 0 голосов — 0% из всех голосов