Existe uma maneira de coletar programaticamente uma lista de usuários que fizeram logon em um servidor Windows (especificamente 2008 R2) nos últimos 30 dias ou entre duas datas? Existem 2 servidores de diretório ativo e todos os usuários são membros do mesmo domínio.
Meu objetivo final é obter automaticamente uma lista de usuários únicos para cada um de nossos servidores por motivos de SPLA.
Responder1
Isso é manual, e não via programa, mas você pode fazer um filtro no Visualizador de Eventos que mostrará apenas seus eventos de login. Clique com o botão direito na Custom Views
pasta e escolha a Create Custom View
opção. Infelizmente, para este filtro você terá que editar o XML. Esta é a aparência do XML do filtro:
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=4624)]]
and
*[EventData[Data[@Name='LogonType'] and (Data='2' or Data='10' or Data='11')]]
</Select>
<Suppress Path="Security">
*[EventData[Data[@Name='TargetDomainName'] and (Data = 'Window Manager')]]
</Suppress>
</Query>
</QueryList>
Você pode editar isso para incluir também o tipo de logon 7 (desbloquear uma sessão bloqueada). Mais informações sobre códigos de tipo de logon estão disponíveis aqui:
http://www.windowsecurity.com/articles-tutorials/misc_network_security/Logon-Types.html
Observe que isso NÃO filtra por intervalo de datas: apenas logins. Mas depois de restringir essa parte, é fácil navegar manualmente pelo intervalo de datas no Visualizador de Eventos.
Infelizmente, esse filtro não funcionou para mim quando usei a opção “Conectar a outro computador”, mesmo com o firewall desligado.
Responder2
Não existe um caminho fácil. Analisar os registros de segurança é a primeira coisa que vem à mente. Você está procurando o ID do evento 4624. Preste atenção ao tipo de logon (2,10,11 se sua intenção for contar logons interativos).
Dependendo da rapidez com que as entradas do log de segurança são geradas e do tamanho do seu log, o log pode ser substituído antes do ciclo de 30 dias.
É melhor impor um script de login que faça a contagem em um local central.