Pontos principais
- Colete os softwares instalados com PowerShell: execute um comando do PowerShell nos caminhos de desinstalação do registro de 64 bits e de 32 bits para obter a lista de aplicativos instalados e exporte o resultado para um arquivo CSV.
- Crie uma linha de base e compare: defina no PowerShell um array com os nomes dos aplicativos obrigatórios, compare-o com a lista de softwares instalados para sinalizar o que estiver faltando e exporte esse relatório para CSV.
- Use CMD/WMIC quando o PowerShell não for uma opção: execute um comando WMIC em um Prompt de Comando elevado para exportar uma lista de softwares instalados em texto e, se quiser, analise esse arquivo com PowerShell para procurar aplicativos específicos.
- Grave os resultados de conformidade no Registro: crie uma chave de registro em HKLM para armazenar os resultados da auditoria, defina as propriedades com a data da última auditoria e os itens ausentes e consulte a chave para confirmar que os valores foram salvos.
- Reúna tudo em um relatório de conformidade: faça cada dispositivo salvar o CSV em uma pasta compartilhada ou no RMM e rode um comando do PowerShell para importar e combinar todos os CSVs em um relatório único. Confirme que ele traz nome do dispositivo, software ausente, status de conformidade e data/hora, e agrupe os resultados por cliente ou local, se precisar.
Garantir que o software obrigatório esteja presente e bloquear aplicativos não autorizados é essencial para conformidade, segurança e padronização dos endpoints. Fazer isso manualmente é lento, pouco confiável e consome tempo demais quando há muitos endpoints. Com scripts, porém, MSPs e administradores de TI conseguem automatizar o processo e detectar problemas antes que eles afetem os usuários.
Os métodos deste guia servem para auditar aplicativos instalados, gerar relatórios de conformidade e detectar aplicativos não autorizados e softwares ausentes. Vamos passar por PowerShell, Prompt de Comando e marcação via Registro. Além disso, veremos a integração opcional com GPO, RMM e NinjaOne para automação e relatórios em escala.
Quer saber mais? Assista a “Como detectar itens ausentes no inventário de software via script e gerar relatórios de conformidade” para um guia visual.
Como detectar softwares ausentes via script e gerar relatórios de conformidade
Pré-requisitos:
- Windows 10, 11 ou Server 2016+ para dar suporte aos scripts.
- PowerShell 5.1 ou superior para executar os comandos de inventário e de relatórios.
- Direitos de administrador nos endpoints para consultar os softwares instalados.
- Uma lista de softwares obrigatórios por site, função ou cliente, para que o script saiba o que verificar.
Opcional:
- Acesso à Política de Grupo para aplicar chaves de registro ou caminhos de arquivo.
- Uma plataforma de RMM ou de gerenciamento de endpoints, como NinjaOne, para facilitar a implantação remota de scripts e os relatórios.
Método 1: como coletar o inventário de software instalado via PowerShell
O PowerShell permite extrair a lista de aplicativos instalados dos locais de registro de 64 bits e de 32 bits. Depois, basta exportar para CSV e gerar relatórios.
Casos de uso:
- Criar uma lista clara dos softwares instalados, verificar a conformidade e descobrir se os dispositivos atendem aos padrões.
- Obter dados para comparar o que deveria estar instalado com o que está de fato instalado.
Pré-requisitos:
- Os dispositivos de destino precisam rodar PowerShell 5.1 ou superior.
- São necessários direitos de administrador para acessar os locais do registro em que o Windows guarda informações sobre os programas instalados.
Para consultar as instalações de 64 bits e de 32 bits, use este comando no PowerShell:
| $installedSoftware = Get-ItemProperty ` HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName } | Select-Object DisplayName, DisplayVersion, Publisher $installedSoftware | Format-Table -AutoSize |
Para exportar para CSV:
$installedSoftware | Export-Csv "C:\Reports\InstalledSoftware.csv" -NoTypeInformation |
Método 2: como definir e comparar com uma linha de base de software
Depois de coletar a lista de aplicativos instalados, a próxima tarefa é compará-la com uma linha de base predefinida. A linha de base é a lista de aplicativos que precisam estar presentes em todos os dispositivos por exigência de conformidade e de operação. Com PowerShell, dá para sinalizar os aplicativos ausentes e exportar os resultados.
Casos de uso:
- Garantir que todos os endpoints tenham os aplicativos obrigatórios.
- Identificar aplicativos ausentes ou não autorizados antes que afetem os usuários.
Pré-requisitos:
- Uma lista definitiva e predefinida dos aplicativos obrigatórios por site, função ou cliente.
- PowerShell 5.1 ou superior no dispositivo de destino para executar os scripts.
Veja um exemplo de lista de linha de base e de comando para executar no PowerShell. Ele define quais softwares precisam estar presentes. Dá para incluir mais aplicativos usando vírgula + aspas retas:
$requiredApps = @("Microsoft Defender Antivirus", "7-Zip", "Microsoft Edge", "FortiClient VPN") |
Já para detectar os aplicativos ausentes em relação à lista da linha de base, use este código:
| $installed = $installedSoftware.DisplayName $missing = $requiredApps | Where-Object { $installed -notcontains $_ } $missingReport = [PSCustomObject]@{ ComputerName = $env:COMPUTERNAM MissingSoftware = $missing -join "; "Timestamp = (Get-Date).ToString("u")} |
Para exportar para CSV, execute este comando:
$missingReport | Export-Csv "C:\Reports\MissingSoftware.csv" -NoTypeInformation |
Método 3: como usar CMD e WMIC para um inventário leve
Se o PowerShell estiver restrito ou indisponível, use o Prompt de Comando e o Windows Management Instrumentation Command-line (WMIC). É uma forma rápida de reunir informações sobre os softwares instalados. O resultado é menos detalhado que o do PowerShell, mas funciona em ambientes legados.
Casos de uso:
- Coletar o inventário de software em ambientes legados ou restritos.
- Gerar listas rápidas de softwares instalados em formato de texto.
Pré-requisitos:
- Um endpoint Windows com WMIC disponível (Windows 10 ou anterior, ou versão de servidor anterior a 2022).
- Permissões para executar comandos em um Prompt de Comando elevado.
Use este comando no Prompt de Comando para exportar a lista de softwares instalados para um arquivo de texto:
wmic product get name, version > C:\Reports\SoftwareInventory.txt
Opcional: analise os resultados com PowerShell:
Get-Content "C:\Reports\SoftwareInventory.txt" | Select-String "AppName"
Método 4: como armazenar o status de conformidade no Registro
Este método grava os resultados da auditoria no Registro do Windows, de modo que cada endpoint mantenha um registro local do próprio status de conformidade, incluindo a data da última auditoria e os softwares ausentes.
Casos de uso:
- Deixar os resultados de conformidade visíveis no próprio dispositivo, para que técnicos e scripts consultem rapidamente.
- Permitir que ferramentas de RMM leiam os valores do registro e os usem em relatórios de conformidade.
Pré-requisitos:
- Direitos de administrador para criar e editar chaves do Registro em HKLM.
- O array $missing criado durante a comparação com a linha de base no Método 2.
Veja como criar um registro local que reflita os resultados de conformidade:
New-Item -Path "HKLM:\SOFTWARE\Org\SoftwareAudit" -ForceSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\SoftwareAudit" -Name "LastAudit" -Value (Get-Date).ToString("u")Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\SoftwareAudit" -Name "MissingItems" -Value ($missing -join ", ") |
Depois, valide pelo CMD para confirmar que a chave e os valores foram realmente criados. Use este código:
reg query HKLM\SOFTWARE\Org\SoftwareAudit
Método 5: gerar relatórios de conformidade entre dispositivos
Depois que cada dispositivo gera o CSV da auditoria, dá para combinar os resultados em um relatório único. Isso oferece uma visão completa da conformidade nos endpoints e facilita o acompanhamento das lacunas por cliente, local ou função.
Caso de uso:
- Criar um relatório único que reúna os dados de conformidade de todos os dispositivos.
Pré-requisitos:
- Acesso a uma unidade compartilhada ou a um RMM que colete os relatórios CSV de cada dispositivo.
- PowerShell 5.1 ou superior para agregar os resultados exportados.
Veja o passo a passo para gerar relatórios de conformidade entre dispositivos:
- Colete os relatórios dos dispositivos: cada endpoint deve salvar o CSV em uma pasta compartilhada ou enviá-lo pelo RMM.
- Execute este comando do PowerShell para consolidar os resultados, reunindo e combinando todos os CSVs:
Get-ChildItem "\\server\auditshare\*.csv" | Import-Csv | Export-Csv "C:\Reports\MasterComplianceReport.csv" -NoTypeInformation
- Em seguida, revise as colunas principais. Confirme que o relatório consolidado tem os campos essenciais, como:
- Nome do dispositivo
- Software ausente
- Status de conformidade
- Data/hora
- O Group-Object do PowerShell ou a filtragem organizam os resultados por cliente, local ou função do endpoint. Por exemplo, agrupe todos os dispositivos de cada cliente com este comando:
Import-Csv "C:\Reports\MasterComplianceReport.csv" | Group-Object Client | ForEach-Object { Write-Output "Client: $($_.Name)"$_.Group | Select-Object DeviceName, MissingSoftware, ComplianceStatus ""} |
⚠️ Pontos de atenção
| Riscos | Possíveis consequências | Solução |
| Arquivos CSV ausentes de alguns dispositivos | O relatório consolidado fica incompleto e pode subestimar a não conformidade. | Verifique se cada endpoint exportou o CSV com sucesso. Se necessário, execute o script de auditoria de novo. |
| Os scripts de auditoria não funcionam | Dispositivos são ignorados e o relatório de conformidade subestima a quantidade de softwares ausentes. | Execute os scripts com uma conta que tenha permissões elevadas. |
| Nomes de colunas inconsistentes entre os CSVs | A importação pode falhar ou gerar resultados imprecisos. | Padronize as saídas dos scripts, assim todos os dispositivos exportam os mesmos nomes de colunas. |
Outros pontos a considerar na detecção e no relatório de softwares ausentes
Falsos negativos
Os nomes de software no campo DisplayName variam. Há diferença entre “Google Chrome” e “Chrome”, por exemplo. Para evitar isso, use regex ou correspondência por curingas e reduza o risco de resultados imprecisos.
Controle de licenças
As verificações de conformidade devem ir além das instalações ausentes. Vale acompanhar também versões divergentes e licenças de teste expiradas. Assim, os endpoints seguem em conformidade e atualizados.
Exclusões
Considere manter listas separadas para softwares obrigatórios e softwares proibidos. Dá para sinalizar tanto instalações ausentes quanto aplicativos não autorizados.
Flexibilidade e ajustes da linha de base
Ajuste os requisitos da linha de base conforme a função de cada endpoint. Quiosques usados só para exibição podem precisar de poucos aplicativos, enquanto engenheiros talvez precisem de uma variedade grande de programas para trabalhar com eficiência.
Guia de início rápido
NinjaOne tem recursos robustos para detectar e gerenciar o inventário de software e gerar relatórios de conformidade. Em detalhes:
1. Detecção de inventário de software:
NinjaOne oferece vários scripts e ferramentas para acompanhar o inventário de software
- Há um recurso dedicado: Painel: Inventário de software
- A plataforma permite acompanhar os softwares instalados nos dispositivos
2. Relatórios de conformidade:
NinjaOne oferece recursos completos de relatórios, incluindo:
- Ferramentas de Vulnerability Management
- Importação de dados de vulnerabilidades a partir de arquivos CSV
- Relatórios de runbook personalizáveis e exportáveis
- Condições de política para acompanhar a presença de softwares
3. Recursos de scripts:
A plataforma tem uma ampla biblioteca de automação, com scripts como:
- List Browser Extensions
- Detect Installed Antivirus
- Opções de scripts personalizados para acompanhar softwares
4. Outros recursos de relatórios:
Relatórios agendados
- Exportação de relatórios para PDF
- Campos personalizados para acompanhar informações de software e dispositivos
Solução de problemas na auditoria de software e na geração de relatórios
Softwares de 32 bits ausentes no PowerShell de 64 bits
Se os aplicativos de 32 bits não aparecerem, confirme se o script consulta o caminho de registro Wow6432Node e também a chave de desinstalação padrão.
Exportação vazia
Se o CSV exportado vier em branco, confirme se o software está instalado e se o campo DisplayName está preenchido.
Falhas de gravação no Registro
Se os resultados de conformidade não estiverem sendo salvos no Registro, execute o script com direitos de administrador ou no contexto SYSTEM.
Problemas de Unicode no CSV
Se os CSVs exportados mostrarem texto ilegível ou caracteres faltando, use -Encoding UTF8 com Export-Csv para tratar os caracteres especiais corretamente.
Serviços NinjaOne que ajudam a detectar softwares ausentes e gerar relatórios
| O que NinjaOne faz | O que é | Como ajuda |
| Implanta scripts de inventário e comparação em escala | Executa scripts de PowerShell ou CMD em todos os dispositivos gerenciados | Garante que todo endpoint seja verificado automaticamente em relação à linha de base de software |
| Coleta marcações locais do registro para visibilidade da auditoria | Lê chaves de conformidade como LastAudit e MissingItems no Registro | Dá visibilidade local e centralizada a técnicos e auditores |
| Marca dispositivos como “Não conforme” | Identifica os endpoints que não atendem aos requisitos da linha de base | Acelera a triagem, deixando os técnicos focados nos dispositivos fora de conformidade |
| Alerta sobre softwares ausentes | Dispara notificações quando aplicativos obrigatórios não estão presentes | Permite que o técnico aja na hora, antes que os usuários sejam afetados |
| Gera relatórios de conformidade para o cliente | Produz relatórios com controle de versões e status de implantação | Entrega relatórios transparentes às partes interessadas e apoia auditorias |
Com NinjaOne, MSPs padronizam e escalam as auditorias de TI de software e ainda entregam relatórios de conformidade transparentes aos clientes.
Mais conformidade e menos risco com auditorias de software automatizadas
Detectar softwares ausentes e manter os endpoints em conformidade é essencial para a segurança e a operação do dia a dia. MSPs e administradores de TI confirmam rapidamente quais dispositivos atendem aos requisitos ao coletar inventários de software, compará-los com uma linha de base e registrar os resultados local e centralmente.
Relatórios de conformidade para toda a organização dão visibilidade completa de todos os clientes, e NinjaOne automatiza auditorias, acelera a remediação e mantém a conformidade contínua em escala.
Temas relacionados:
