Existe uma maneira de permitir que usuários padrão reiniciem (parem/iniciem) o spooler de impressão?

Existe uma maneira de permitir que usuários padrão reiniciem (parem/iniciem) o spooler de impressão?

Por alguma razão, vários laptops em nossa rede Wi-Fi muitas vezes perdem a capacidade de imprimir em um dispositivo conectado a um servidor na rede. Reiniciar o spooler de impressão em cada laptop corrige o problema. No entanto, reiniciar o serviço Windows Print Spooler (por meio de services.mscou por meio do net start/stopcomando) requer privilégios administrativos.

Existe uma maneira de permitir que usuários padrão reiniciem o serviço de spooler de impressão local sem exigir elevação ou privilégios administrativos? Por exemplo, através de uma mudança de política?

Responder1

Acabei usando o Método 3 emComo conceder aos usuários direitos para gerenciar serviços no Windows 2000.

  1. Baixar e instalarSubInACL.exe
  2. correr"C:\Program Files\Windows Resource Kits\Tools\subinacl" /service Spooler /grant=<username>=TO

SubInACLfunciona no Windows 7.

O Tparâmetro grant é para start serviceacesso e o Oparâmetro é stop serviceacesso.

Agora <username>pode:

  • correr sc stop Spooleresc start Spooler
  • correr net stop "Print Spooler"enet start "Print Spooler"
  • use o Restartbotão no Print Spooleritem emservices.msc

Responder2

Experimente: SetACL: gerenciamento de ACL do Windows http://sourceforge.net/projects/setacl/

SetACL + GUI = SetACL Estúdio http://helgeklein.com/setacl-studio/

Responder3

Uma entrada de blog antigatem a solução correta (veja em "Permitir que todos os usuários autenticados reiniciem o serviço"). Execute o seguinte uma vez em um prompt de comando elevado:

sc sdset Spooler "D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA) (A;;LCRPWP;;;AU)(A;;CCLCSWLOCRRC;;;IU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY) S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

Substitua Spoolerpelo nome de qualquer serviço que os usuários precisem para reiniciar. Use o resto da linha exatamente como está. Não sei o que significa, mas funciona. :-)

Após alguns segundos, você verá esta resposta:

[SC] SetServiceObjectSecurity SUCCESS

Agora todos os usuários autenticados podem reiniciar o serviço.

Responder4

Primeiro inspecione e documente as permissões padrão existentes.
Em um prompt de comando elevado, digite:

sc.exe sdshow spooler

Resultados:
D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Chave para ler a saída:

D: — ACL discricionária (DACL)
S: — Lista de controle de acesso ao sistema (SACL)

A primeira letra significa; permitir (A) ou negar (D)

O próximo conjunto de símbolos são permissões atribuíveis:

CC — SERVICE_QUERY_CONFIG (solicitar configurações de serviço)
LC — SERVICE_QUERY_STATUS (pesquisa de status do serviço)
SW — SERVICE_ENUMERATE_DEPENDENTS
LO — SERVICE_INTERROGATE
CR — SERVICE_USER_DEFINED_CONTROL
RC — READ_CONTROL
RP — SERVICE_START
WP — SERVICE_STOP
DT — SERVICE_PAUSE_CONTINUE

A lista de curadores é longa, mas procuramos Usuários Autenticados (AU) que estão contidos no primeiro conjunto de parênteses.

Adicionar permissões RP, WP e DT para usuários autenticados (AU) deve resolver o problema:

(A;;CCLCSWLOCRRCRPWPDT;;;AU)

Para definir essas permissões, novamente em um prompt de comando elevado:

sc.exe sdset spooler "D:(A;;CCLCSWLOCRRCRPWPDT;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

Para restaurar as permissões aos seus padrões, removendo efetivamente a capacidade dos usuários autenticados de iniciar/parar/pausar/retomar o serviço de spooler:

sc.exe sdset spooler "D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

Grande parte do crédito deve ser dado ao IT Connect da Universidade de Washington emhttps://itconnect.uw.edu/wares/msinf/other-help/understanding-sddl-syntax/

informação relacionada