Necesito actualizar los permisos de la impresora en un script, es decir, hacer lo mismo que haría manualmente de esta manera:
- AbiertoDispositivos e impresorassubprograma
- Haga doble clic en la impresora predeterminada (abra su cola)
- Ir aImpresora -> Propiedades
- En el cuadro de diálogo de propiedades, vaya aSeguridadpestaña
- Cambiar permisos paraTodos(por ejemplo, comprobarGestionar documentospermisos)
¿Como hacer eso? Por ejemplo, en PowerShell, puedo hacer
Get-WmiObject -class win32_printer -filter Default=True
para obtener la impresora predeterminada y luego hay métodos getSecurityDescriptor()
y setSecurityDescriptor()
, por ejemplo, este comando:
(Get-WmiObject -class win32_printer -filter Default=True).getsecuritydescriptor().Descriptor
devuelve nulo, así que no estoy seguro de si lo estoy haciendo de la manera correcta.
¿Alguien tiene un ejemplo funcional para configurar los permisos de la impresora? ¿Estoy en el camino correcto o debería usar algo que no sea WMI por completo? Gracias.
Respuesta1
No conozco PowerShell, solo he otorgado permisos de impresora directamente usando .NET y WMI, y puede resultar complicado ya que los permisos se componen deDescriptor de seguridad, que tiene unDescriptorpropiedad, que tiene unDACLpropiedad, que contiene uno o másWin32_ACEobjetos, cada uno de los cuales contieneAccessMask, AceFlags y Trustreeel cual es unWin32_Fideicomisarioobjeto que contiene a quién se aplica el permiso.
Tal vez haya un complemento de PowerShell que simplifique la configuración de lo anterior; alternativamente, eche un vistazo aHerramienta de línea de comando SetACLal que podrías llamar desde PowerShell.