¿Cómo configurar los permisos de la impresora usando PowerShell/algún otro script?

¿Cómo configurar los permisos de la impresora usando PowerShell/algún otro script?

Necesito actualizar los permisos de la impresora en un script, es decir, hacer lo mismo que haría manualmente de esta manera:

  1. AbiertoDispositivos e impresorassubprograma
  2. Haga doble clic en la impresora predeterminada (abra su cola)
  3. Ir aImpresora -> Propiedades
  4. En el cuadro de diálogo de propiedades, vaya aSeguridadpestaña
  5. 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.

información relacionada