Por alguna razón, varias computadoras portátiles en nuestra red wifi a menudo pierden la capacidad de imprimir en un dispositivo conectado a un servidor en la red. Reiniciar el administrador de trabajos de impresión en cada computadora portátil soluciona el problema. Sin embargo, reiniciar el servicio de cola de impresión de Windows (mediante cualquiera de los dos services.msc
o mediante el net start/stop
comando) requiere privilegios administrativos.
¿Existe alguna manera de permitir a los usuarios estándar reiniciar su servicio de cola de impresión local sin necesidad de privilegios administrativos o de elevación? Por ejemplo, ¿mediante un cambio de política?
Respuesta1
Terminé usando el Método 3 enCómo otorgar derechos a los usuarios para administrar servicios en Windows 2000.
- Descargar e instalarSubInACL.exe
- correr
"C:\Program Files\Windows Resource Kits\Tools\subinacl" /service Spooler /grant=<username>=TO
SubInACL
Funciona en Windows 7.
El T
parámetro de concesión es para start service
acceso y el O
parámetro es stop service
acceso.
Ahora <username>
puede:
- correr
sc stop Spooler
ysc start Spooler
- correr
net stop "Print Spooler"
ynet start "Print Spooler"
- use el
Restart
botón en elPrint Spooler
elemento enservices.msc
Respuesta2
Pruebe: SetACL: gestión de ACL de Windows http://sourceforge.net/projects/setacl/
SetACL + GUI = SetACL Estudio http://helgeklein.com/setacl-studio/
Respuesta3
Una entrada de blog antiguatiene la solución correcta (consulte "Permitir que todos los usuarios autenticados reinicien el servicio"). Ejecute lo siguiente una vez en un símbolo del sistema elevado:
sc sdset Spooler "D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA) (A;;LCRPWP;;;AU)(A;;CCLCSWLOCRRC;;;IU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY) S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
Reemplácelo Spooler
con el nombre de cualquier servicio que los usuarios necesiten reiniciar. Utilice el resto de la línea exactamente como está. No sé lo que significa, pero funciona. :-)
Después de unos segundos, verá esta respuesta:
[SC] SetServiceObjectSecurity SUCCESS
Ahora todos los usuarios autenticados pueden reiniciar el servicio.
Respuesta4
Primero inspeccione y documente los permisos predeterminados existentes.
Desde un símbolo del sistema elevado, escriba:
sc.exe sdshow spooler
Resultados:
D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
Clave para leer el resultado:
D: — ACL discrecional (DACL)
S: — Lista de control de acceso al sistema (SACL)
La primera letra significa; permitir (A) o negar (D)
El siguiente conjunto de símbolos son los permisos asignables:
CC — SERVICE_QUERY_CONFIG (solicitar configuración de servicio)
LC — SERVICE_QUERY_STATUS (sondeo de estado del servicio)
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
La lista de fideicomisarios es larga, pero estamos buscando Usuarios Autenticados (AU), que se encuentran en el primer par de paréntesis.
Agregar permisos RP, WP y DT para usuarios autenticados (AU) debería ser suficiente:
(A;;CCLCSWLOCRRCRPWPDT;;;AU)
Para configurar estos permisos, nuevamente desde un símbolo del sistema elevado:
sc.exe sdset spooler "D:(A;;CCLCSWLOCRRCRPWPDT;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
Para restaurar los permisos a sus valores predeterminados, eliminando efectivamente la capacidad de los usuarios autenticados de iniciar/detener/pausar/reanudar el servicio de cola de impresión:
sc.exe sdset spooler "D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
Gran parte del crédito debe otorgarse a IT Connect de la Universidad de Washington enhttps://itconnect.uw.edu/wares/msinf/other-help/understanding-sddl-syntax/