Conforme pôde ser visto no post anterior, configuramos a auditoria no equipamento que atuará como servidor de impressão. Agora, precisamos consultar de alguma maneira as impressões realizadas.
Como as impressões são realizadas e registradas no log de eventos do Windows, agora precisamos de um script exportar o log, já que a exportação padrão do visualizador de eventos não nos fornece os dados principais da impressão (o que foi impresso, tamanho do trabalho de impressão e quantas páginas).
Abaixo, anexo um script escrito em vbs (bem simples por sinal) que faz o trabalho para exportar para um arquivo texto no formato SQL. Confesso que este script não é dos melhores (faltou um pouco de tempo para melhorá-lo e ficar mais eficiente).
O script se conecta através de WMI para acessar os logs. A sintaxe da pesquisa é parecida com SQL e chama-se WQL (WMI Query Language).
---8<---
strComputer = "."
dim dtmData
dtmData = dateadd("d", -1, date())
strDataPesquisa = year(dtmData) & Right("0" & month(dtmData), 2) & Right("0" & day(dtmData), 2)
rem wscript.echo strDataPesquisa
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NTLogEvent " & _
"WHERE EventCode=10 and EventType=3 " ,,48)
set objFS = CreateObject("Scripting.FileSystemObject")
set objResultado = objFS.OpenTextFile("c:\windows\temp\logimpressoras.sql", 2, true)
For Each objItem in colItems
rem extrai a data e a hora.
strData = Left(objItem.TimeGenerated, 14)
strHora = Right(strData, 6)
strData = Left(strData, 8)
rem wscript.echo(strData)
if LTrim(RTrim(strData)) = Ltrim(RTrim(strDataPesquisa)) then
rem formata a data e hora
strData = Left(strData,4) & "-" & mid(strData, 5, 2) & "-" & Right(strData, 2)
strHora = Left(strHora, 2) & ":" & mid(strHora, 3, 2) & ":" & Right(strHora, 2)
strDtm = strData & " " & strHora
rem pega o tamanho da impressao e o numero de paginas
strSize = mid(objItem.Message, inStr(objItem.Message, "Size in bytes:"))
strSize = mid(strSize, inStr(strSize, ":")+1)
strPages = RTrim(LTrim(Mid(strSize, inStr(strSize, ":")+1)))
strSize = LTrim(RTrim(Left(strSize, inStr(strSize, ";") - 1)))
rem pega a identificacao do job
strJobNumber = LTrim(RTrim(Left(objItem.Message, inStr(objItem.Message, ",") - 1)))
rem pega o nome do trabalho de impressao
strJob = Mid(objItem.Message, inStr(objItem.Message, ",") + 1)
strOwner = Mid(objItem.Message, inStr(strJob, " owned by ")+12)
strJob = LTrim(RTrim(Left(strJob, inStr(strJob, " owned by ") - 1)))
rem trata apostrofos
strJob = replace(strJob, "'", "\'")
strPrinter = Mid(strOwner, inStr(strOwner, " was printed on ") + 16)
strPrinter = LTrim(RTrim(Left(strPrinter, inStr(strPrinter, " via port ") - 1)))
strOwner = Left(strOwner, inStr(strOwner, " was printed on ") - 1)
strOwner = LTrim(RTrim(Mid(strOwner, inStrRev(strOwner, " ") + 1)))
strSQL = "INSERT INTO tblImpressoes (strJob, strJobName, strProprietario, strImpressora, dtmImpressao, dblTamanho, dblPaginas) " & _
"VALUES ('" & strJobNumber & "', '" & strJob & "', '" & strOwner & "', '" & strPrinter & "', '" & strDtm & "', " & strSize & _
", " & strPages & ");" & chr(13) & chr(10)
objResultado.Write(strSQL)
end if
Next
objResultado.Close
set objResultado = nothing
set objFS = nothing
set colItems = nothing
set objWMIService = nothing
--->8---
Feito isto, bastou agendar a tarefa para ser executada uma vez ao dia para que o log fosse exportado para o arquivo texto.
No servidor onde armazeno os logs, fiz um script para baixar o arquivo e importá-lo na base de dados em MySQL, PostgreSQL, SQL Server, etc. A partir daí foi só efetuar a consulta da maneira que eu precisava, com agrupamentos, totais, somatórias e tudo mais.
Estas consultas podem ser feitas diretamente via planilha de cálculo ou desenvolver uma pequena página web para exibí-los.
Não é a melhor solução do mercado. Apesar de artesanal, resolve meu problema.
segunda-feira, 6 de abril de 2009
Pesquisando as impressões efetuadas através do seu servidor de impressão
Postado por
Luis Fernando Kieça
às
18:30
0
comentários
Marcadores: Banco de dados, HTML, Microsoft, MySQL, PHP, Programação, Servidor de Impressão, SQL Server, Windows
sábado, 28 de março de 2009
Auditoria de um servidor de impressões em Windows.
Esta semana tive alguns problemas com usuários que mandavam imprimir indiscriminadamente documentos pessoais em impressoras lá na empresa e nem se davam o trabalho de ir pegar suas impressões.
Nervosos, os usuários do departamento alvo reclamaram (e com razão), sobre tais impressões. Então decidi colocar auditoria no servidor de impressão da empresa (em windows mesmo).
Não é complicado ativar, apenas trabalhoso.
Primeiramente, você precisa ativar a auditoria da impressora. Através do gpedit.msc, clique em Configurações do computador | Configurações do Windows | Configurações de Segurança | Políticas locais | Políticas de auditoria. Habilite a opção Auditar acesso a objetos.
Em seguida, chame as propriedades da impressora em questão, clique em segurança e clique na opção Avançado. Na aba Auditoria, habilite a Opção Imprimir (Permitir e Negar).
Pronto. A partir de agora, todas as impressões vão para o log de eventos do Windows, no ítem System. A partir daí é só filtrar a origem como sendo Impressão e o ID de evento como sendo 10 para você ver todas as impressões dos usuários.
No próximo post, irei publicar uma opção para o log destas impressões.
Postado por
Luis Fernando Kieça
às
08:50
0
comentários
Marcadores: Microsoft, Segurança, Servidor de Impressão, Windows
segunda-feira, 16 de março de 2009
Habilitando auditoria no seu servidor Samba
Para aqueles que desejam habilitar auditoria no seu servidor Samba, basta habilitar o módulo audit. Este módulo pode ser carregado junto com outros que já estão carregados com o seu servidor Samba.
Para habilitá-lo, adicione as seguintes linhas na seção [global] do seu arquivo smb.conf:
vfs object = audit
audit:facility = LOCAL1
audit:priority = NOTICE
Tanto o recurso (facility) quanto a prioridade (priority) devem ser os mesmos utilizados na configuração do syslog.
Postado por
Luis Fernando Kieça
às
22:48
0
comentários
quarta-feira, 4 de março de 2009
Acelerando a velocidade de seu servidor Apache 2.0 com o mod_deflate
Para aqueles que utilizam o Apache 2.0, podem-se aproveitar de uma funcionalidade que irá agilizar o download das páginas providas pelo seu servidor. Trata-se do mod_deflate, a qual está presente na maioria das distribuições do Apache.
Para habilitar, siga os seguintes passos alterando as seguintes linhas em seu httpd.conf:LoadModule deflate_module modules/mod_deflate.soE na seção DirectoryAddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/javascriptAddOutputFilterByType DEFLATE application/xhtml+xmlIsto irá habilitar a compressão diretamente em todos os sites hospedados neste servidor. Caso deseje habilitar em algumas partes de um determinado site, coloque as linhas acima dentro da diretiva
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
Feito isto, basta reiniciar o serviço do Apache e está pronto.
domingo, 1 de março de 2009
Autenticando aplicações PHP no Active Directory.
Para aqueles que desenvolvem aplicações em PHP e precisa autenticar seus usuários diretamente no Active Directory, pode utilizar as funções de LDAP diretamente da linguagem. Mas para facilitar um pouco o desenvolvimento, padronizar e reaproveitar código, pode-se utilizar uma biblioteca pronta, chamada adLDAP.
Na versão 2.2 um dos recursos a ser implementados é a possibilidade de criar contas de e-mail no Microsoft Exchange.
Fica aí a dica.
Postado por
Luis Fernando Kieça
às
19:54
0
comentários
Marcadores: Apache, linux, Microsoft, PHP, Programação, Segurança, Windows
Atualizado: Backup: Uma solução para Windows, Linux e BSD's
Nosso leitor megumijr, enviou algumas sugestões para resolver problemas de caracteres acentuados quando utilizado com sistemas que utilizam diferentes grupos de caracteres (UTF-8 e ISO8859-1).
Basicamente, a atualização consistem em adicionar no rsync.conf do windows a seguinte linha:
charset=iso8859-1
e alterar a chamada no script de backup acrescentando o parâmetro:
--iconv=utf8,iso88591
Aqui você poderá conferir o texto completo do artigo incluindo as atualizações sugeridas.
Agradecemos sua colagoração megumijr.
segunda-feira, 23 de fevereiro de 2009
Para quem utiliza WSUS
Para aqueles que utilizam WSUS (Windows Service Update Services) para atualizar suas estações na rede de computadores da empresa, aqui vai um facilitador para que, no primeiro momento (quando você está fazendo a instalação inicial da máquina), não tenha que ficar um tempo enorme esperando que o serviço de atualização automática baixe do seu servidor WSUS as correções que precisam ser aplicadas.
No prompt de comando, digite:
c:\windows\system32> wuauclt /ResetAuthorization /DetectNow
Vamos aos parâmetros:
/ResetAuthorization: força com que o cookie utilizado pelas atualizações automáticas perca a validade (geralmente este cookie tem validade de uma hora).
/DetectNow: força a detecção de novas correções a serem aplicadas.
Fonte: Technet
Postado por
Luis Fernando Kieça
às
20:35
0
comentários
Marcadores: parâmetros wuauclt, Windows, WSUS
