Sim, com um script de inicialização.
setprinter.exe, incluído no kit de recursos do Windows 2003. Você pode usar:
setprinter.exe 3 "pSecurityDescriptor = xxxxxxxxxx"
Você precisaria percorrer todas as impressoras instaladas e aplicar a nova ACL. Isso pressupõe que você poderia usar a mesma ACL para todas as impressoras em todas as estações de trabalho. Isso pode não ser um problema, pois a maioria das pessoas não usa segurança personalizada em impressoras locais.
"pSecurityDescriptor = está no formulário SDDL. Use setprinter -examples 3 para obter mais informações.
Defina uma impressora com a segurança do jeito que você quiser, o uso setprinter -show printerName3 para obter o texto de como o SDDL deve ser aplicado.
Isto é o que o comando e o SDDL parecem quando Todos tem Gerenciar Impressoras e todas as outras permissões são padrões genéricos:
setprinter.exe 3 pSecurityDescriptor="O: SACO: DUD: (A; OIIO; RPWPSDRCWDWO ;;; BA) (A ;; LCSWSDRCWDWO ;;; BA) (A; CIIO; RC ;;; CO) (A ; OIIO; RPWPSDRCWDWO ;;; CO) (A ;; LCSWSDRCWDWO ;;; WD) (A; OIIO; RPWPSDRCWDWO ;;; PU) (A ;; LCSWSDRCWDWO ;;; PU) "
Tudo isso deve estar em uma linha.
Aqui está um código do PowerShell que lista as impressoras:
Get-WMIObject Win32_Printer -ComputerName $ env: computername | foreach-object {$ _. Name}
então o comando para fazer o trabalho seria
Get-WMIObject Win32_Printer -ComputerName $ env: computername | foreach-object {setprinter.exe $ _. Nome 3 pSecurityDescriptor="O: SACO: DUD: (A; OIIO; RPWPSDRCWDWO ;;; BA) (A ;; LCSWSDRCWDWO ;;; BA) (A; CIIO; RC ;; ; CO) (A; OIIO; RPWPSDRCWDWO ;;; CO) (A ;; LCSWSDRCWDWO ;;; WD) (A; OIIO; RPWPSDRCWDWO ;;; PU) (A; LCSWSDRCWDWO ;;; PU) "}
Mais uma vez, deve ser tudo uma linha.