sexta-feira, 4 de março de 2011

O problema dos objetos "printqueue" no AD

Os objetos printqueue, são criados quando temos alguma impressora instalada com a opção para publicação no Active Directory. Para cada impressora com esta configuração ativa irá gerar um objeto no Active Directory, além disso, caso o Active Directory não consiga entrar em contato com estes objetos depois depois de 8 horas, o objeto será excluído.

Se imaginarmos um cenário onde temos um parque de 500 desktops com 2 impressoras instaladas e a opção de publicação no Active Directory ativa, teremos a publicação de 1000 objetos, quando estes desktops forem desligado e o Active Directory não conseguir comunicação com estes objetos depois de 8h todos serão deletados, indo para tombstoned, porém ainda armazenados na base do AD. No dia seguinte os desktops voltam a ser ligados, criando novamente 1000 objetos printqueue, com isso a base já teria 2000 destes objetos (1000 ativos / 1000 tombstoned). Seguindo esta lógica no terceiro dia teremos 3000 objetos (1000 ativos / 2000 tombstoned), e assim por diante. O crescimento seria de 1000 objetos diariamente até a quantidade de dias estipulado para a limpeza dos objetos em tombstoned, que limpa os objetos mais antigos a 60 ou 180 dias dependendo da versão do schema.

Em nosso exemplo, vimos que podemos chegar a um incrível número de quase 200.000 objetos printqueue, isto causaria um aumento da base do Active Directory, maior número de replicação entre os Domain Controller do Domínio, etc. Para que estes objetos não sejam criados, basta implementar uma GPO nos computadores para que não seja permitido a publicação das impressoras no Active Directory.

A linguagem VBScript não suporta a consulta de objetos tombstoned através de seus métodos de consulta no AD (ADSI ou ADO), a melhor forma de consultar estes objetos é através do uso do utilitário Adfind.exe, que em apenas um utilitário fornece as funcionalidades do ldapsearch, search.vbs, ldp, dsquery e dsget. Este utilitário pode ser baixado através do endereço http://www.joeware.net/freetools/tools/adfind/index.htm.


Comando para contar os objetos printqueue do domínio. Retire a opção “-c” para obter os detalhes de cada objeto.

AdFind.exe -default -f "objectclass=printqueue" -c 

Comando para contar os objetos printqueue que estão em tombstone do domínio. Retire a opção “-c” para obter os detalhes de cada objeto.

AdFind.exe -default -rb "CN=Deleted Objects" -f "objectclass=printqueue" -showdel -c

 
Para que este problema seja resolvido, defina quais serão os computadores que devem evitar a publicação de impressoras no Active Directory. Na GPO, habilite a opção de “Disable” do template Computer Configuration > Administrative Templates > Printers > Allow printers to be published.


Nenhum comentário:

Postar um comentário