Determinando a ordem de instalação do software no Windows

2

Estou tentando recriar um ambiente (mais especificamente, documentar um ambiente reproduzível). Eu tenho uma suspeita de que algumas coisas instaladas podem ter pisado no mesmo valor do registro ou valores, e gostaria de testar isso, reproduzindo a ordem em que vários componentes estão instalados.

No entanto, estou tendo problemas para descobrir em que ordem as coisas foram instaladas. Eu encontrei a chave reg "HKEY_LOCAL_MACHINE_SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall", que parece ter subchaves para coisas instaladas, e essas subchaves (às vezes) incluem InstallDate. No entanto, isso só tem a resolução do dia, por isso não posso dizer a ordem das coisas instaladas no mesmo dia.

O Ctime pode mudar, não é? Então isso é fora. Caso contrário, estou sem ideias.

Isso está no Win7. Eu sou um cara unix, por favor, tenha paciência.

Alguém tem alguma ideia?

    
por jal 06.12.2014 / 02:16

1 resposta

5

Isso deve fazer. Abra o Powershell:

Get-WmiObject Win32_ReliabilityRecords | 
    Where-Object { $_.Message.StartsWith('Windows Installer installed') } |
    Select TimeGenerated,Message | FL

Contanto que os contadores de confiabilidade estejam habilitados, o que acredito que devam ser por padrão no Windows 7, isso fornece uma lista perfeita de quando o software foi instalado.

Você também pode ver esses dados em uma representação gráfica com perfmon /rel

Exemplo de saída:

TimeGenerated : 20141112045116.000000-000 
Message       : Windows Installer installed an update. Product Name: Microsoft Office Shared MUI (English) 2013. Product Version: 15.0.4569.1506.
                Product Language: 1033. Manufacturer: Microsoft Corporation. Update Name: Update for Microsoft Office 2013 (KB2881008) 64-Bit
                Edition. Installation success or error status: 0.

TimeGenerated : 20141112045110.000000-000 
Message       : Windows Installer installed an update. Product Name: Microsoft Office Professional Plus 2013. Product Version: 15.0.4569.1506.
                Product Language: 0. Manufacturer: Microsoft Corporation. Update Name: Update for Microsoft PowerPoint 2013 (KB2889936) 64-Bit
                Edition. Installation success or error status: 0.

TimeGenerated : 20141112045100.000000-000 
Message       : Windows Installer installed an update. Product Name: Microsoft PowerPoint MUI (English) 2013. Product Version: 15.0.4569.1506.
                Product Language: 1033. Manufacturer: Microsoft Corporation. Update Name: Update for Microsoft PowerPoint 2013 (KB2889936) 64-Bit
                Edition. Installation success or error status: 0.

TimeGenerated : 20141111002348.000000-000 
Message       : Windows Installer installed the product. Product Name: EMET 5.1. Product Version: 5.1. Product Language: 1033. Manufacturer:
                Microsoft Corporation. Installation success or error status: 0.

Esse formato de data / hora o incomoda? Tente isto:

Get-WmiObject Win32_ReliabilityRecords | 
    Where-Object { $_.Message.StartsWith('Windows Installer installed') } | 
    Select @{n='TimeGenerated';e={[System.Management.ManagementDateTimeConverter]::ToDateTime($_.TimeGenerated )}},Message | FT -AutoSize

11/11/2014 10:51:24 PM Windows Installer installed an update. Product Name: Microsoft Office Professional Plus 2013. Product Version: 15.0.4569.15...
11/11/2014 10:51:16 PM Windows Installer installed an update. Product Name: Microsoft Office Shared MUI (English) 2013. Product Version: 15.0.4569...
11/11/2014 10:51:10 PM Windows Installer installed an update. Product Name: Microsoft Office Professional Plus 2013. Product Version: 15.0.4569.15...
11/11/2014 10:51:00 PM Windows Installer installed an update. Product Name: Microsoft PowerPoint MUI (English) 2013. Product Version: 15.0.4569.15...
11/10/2014 6:23:48 PM  Windows Installer installed the product. Product Name: EMET 5.1. Product Version: 5.1. Product Language: 1033. Manufacturer...

Observe que isso listará as instalações e os patches dos produtos. Ajustar a string em torno de "Windows Installer instalado ..." se você deseja capturar apenas atualizações ou instalações de produtos.

Editar : apenas mais algumas coisas a serem observadas. Primeiro, esses dados são agregados dos dados do Registro de Eventos ... portanto, se você tiver limpado seus registros de eventos, esses dados desaparecerão. Segundo ... o formato de data e hora conforme relatado por Get-WMIObject ... Powershell tem uma versão mais nova desse cmdlet chamado Get-CIMInstance que converte automaticamente essas datas / horas para você em um formato mais legível ... mas o Windows 7 não é originalmente enviado com Get-CIMInstance . Você precisaria fazer o upgrade para o Powershell 3 primeiro ou apenas usar a técnica de conversão que mostrei acima.

    
por 06.12.2014 / 03:16