Como faço para limpar a fila de impressão no Windows 10 na INICIAÇÃO

Como faço para limpar a fila de impressão no Windows 10 na INICIAÇÃO

Temos máquinas com Windows 10 rodando 1803. Precisamos limpar a fila de impressão em CADA inicialização.

O spooler de impressão está configurado para manual. Temos um script powershell agendado através do agendador de tarefas para executar um script powershell na inicialização e no login do usuário como NT AUTHORITY\SYSTEM

Programa/script: Powershell Adicionar argumentos (opcional): -File "C:\production\Printer Queue Clear\printqueueClear.ps1"

O script em questão (o spooler de parada de rede é redundante se o serviço estiver configurado para inicialização manual, eu sei)

net stop spooler

Remove-Item C:\Windows\System32\spool\PRINTERS\* -Force

net start spooler

O problema: se um trabalho estiver na fila com a impressora conectada por USB desconectada do computador, o computador será desligado (com os trabalhos de impressão ainda na fila), a impressora será reconectada e, em seguida, o computador será iniciado, todos os trabalhos de impressão serão enviado assim que o usuário inicia o login. Por motivos de conformidade, não podemos permitir que isso aconteça.

A verdadeira questão é por que o spooler de impressão está exibindo os trabalhos na fila se: 1. está definido como manual 2. o código em questão só inicia o spooler depois que a unidade de spool da impressora é limpa.

Responder1

Não tenho certeza da importância de o serviço de spooler ser definido como manual. O Windows é capaz de iniciar serviços (sob demanda) sem a sua intervenção.

Parece que a maneira mais fácil de resolver o cenário descrito é executar o script no desligamento ou logoff, em vez de na inicialização ou no login.

Além disso, você pode desabilitar o serviço de spooler de impressão ao desligar ou fazer logoff e ativá-lo somente depois de executar alguma tarefa na inicialização ou login, se houver um cenário que não conheço.

Responder2

Seu código não funciona. Tente isto se estiver realmente definido como manual:

net stop spooler
Remove_Item $env:windir\System32\spool\PRINTERS\* -Force
net start spooler

Responder3

Erro de digitação no código, deve ser um-menos não um_sublinhado no Remove-Item código de trabalho: (mas no PowerShell, não no cmd):

net stop spooler
Remove-Item $env:windir\System32\spool\PRINTERS\* -Force
net start spooler

informação relacionada