Preciso atualizar as permissões da impressora em um script, ou seja, fazer o mesmo que faria manualmente:
- AbrirDispositivos e Impressorasminiaplicativo
- Clique duas vezes na impressora padrão (abra sua fila)
- Vá paraImpressora -> Propriedades
- Na caixa de diálogo de propriedades, vá paraSegurançaaba
- Alterar permissões paraTodos(por exemplo, verifiqueGerenciar documentospermissões)
Como fazer isso? Por exemplo, no PowerShell, posso fazer
Get-WmiObject -class win32_printer -filter Default=True
para obter a impressora padrão e existem métodos getSecurityDescriptor()
e setSecurityDescriptor()
, por exemplo, este comando:
(Get-WmiObject -class win32_printer -filter Default=True).getsecuritydescriptor().Descriptor
return null, então não tenho certeza se estou fazendo isso da maneira certa.
Alguém tem um exemplo prático para definir permissões de impressora? Estou no caminho certo ou devo usar algo diferente do WMI? Obrigado.
Responder1
Não conheço o PowerShell, só fiz permissões de impressora diretamente usando .NET e WMI, e pode ficar confuso, pois as permissões são compostas peloDescritor de segurança, que tem umDescritorimóvel, que possuiDACLpropriedade, que contém um ou maisWin32_ACEobjetos, cada um dos quais contémAccessMask, AceFlags e Trustreeque é umWin32_Trusteeobjeto que contém a quem a permissão se aplica.
Talvez haja um complemento do PowerShell que simplifique a configuração acima. Como alternativa, dê uma olhada noFerramenta de linha de comando SetACLque você pode chamar do PowerShell.