Rastreamento de Instalação de Software no Windows

Como rastrear qual usuário que instalou um Software no Windows

Em casos onde o usuário de um computador é administrador ou tem permissão de instalar software, as vezes pode ser necessário identificar quem foi o responsável pela instalação de um software indevido ou não licenciado.

all-apps-desktop-view-100058191-orig

Nas novas versões do Windows, por padrão vem habilitado uma série de auditorias, dentre elas a instalação de software. Este recurso registra em log todos as instalações de software. Porém, os logs do Windows nem sempre são amigáveis e fáceis de entender.

Vamos utilizar novamente o powershell para consultar essas informações nos logs do Event Viewer.

Powershell

Com o Powershell é possível consultar os logs do Windows e filtrar os resultados para uma melhor visualização e entendimento. Vamos ver a seguir os princípios básicos da nossa consulta de instalação de software.

Consultando os logs do Windows com Powershell:

PS C:\> Get-WinEvent -FilterHashtable @{LogName=”Application”;ID=11707;ProviderName=”MsiInstaller”}

InstalledAppPowershell

 

Para filtrar e ter uma melhor visualização das informações podemos utilizar outros recursos do Powershell, segue abaixo o código que cria uma função chamada Get-AppInstalled:

function Get-AppInstalled{
Param (
[string]$Computer = (Read-Host Remote computer name)
)
cls
$Result = @()
Write-Host “Gathering Event Logs, this can take awhile…”

$ELogs = Get-WinEvent -FilterHashtable @{LogName=”Application”;ID=11707;ProviderName=”MsiInstaller”} -ComputerName $Computer
If ($ELogs)
{ Write-Host “Processing…”
ForEach ($Log in $ELogs)
{
$Result += New-Object PSObject -Property @{
Time = $Log.TimeCreated
Application = $Log.Message
User = (New-Object System.Security.Principal.SecurityIdentifier $Log.UserID.Value).Translate([System.Security.Principal.NTAccount])
}
}
$Result | Select Time,Application,User | Sort Time -Descending | Out-GridView
Write-Host “Done.”
}
Else
{
Write-Host “Problem with $Computer.”
Write-Host “If you see a ‘Network Path not found’ error, try starting the Remote Registry service on that computer.”
Write-Host “Or there are no logon/logoff events (XP requires auditing be turned on)”
}
}

Após executar o código acima basta executar a função na linha de comando do powershell para obter as informações sobre instalações recentes de software.

PS C:\> Get-AppInstalled 

Remote computer name: <nome do computador>

Caso você deseje obter o histórico de login no computador local basta digitar o hostname.

ResultInstalledApp

 

One thought on “Rastreamento de Instalação de Software no Windows

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *