Pontos principais
- Automatize a coleta de licenças do M365 via RMM: execute scripts PowerShell baseados no Graph em uma programação (semanal ou mensal) a partir do RMM para gerar um snapshot das atribuições de usuários e licenças em CSV, pronto para auditoria.
- Centralize os scripts no NinjaOne: adicione scripts à Biblioteca, selecione os dispositivos de destino e agende as execuções para coletar dados de uso de forma consistente, sem esforço manual.
- Correlacione os sinais do agente: use o inventário de software e os dados de processos do RMM para inferir a atividade de SaaS, identificar apps e licenças sem uso e sinalizar candidatos à recuperação.
- Monte relatórios longitudinais: armazene snapshots datados (por exemplo, LicenseUsage-YYYY-MM-DD.csv) e compare as diferenças ao longo do tempo para revelar tendências de adoção e contas inativas para recuperação de licenças.
- Coloque alertas e relatórios para trabalhar: use relatórios agendados e alertas para avisar as partes interessadas quando uma licença ficar sem uso por um período definido e para entregar resumos de uso recorrentes.
Os custos de licenciamento SaaS crescem junto com a empresa e, conforme o ambiente se espalha por ferramentas diferentes, o controle fica complicado. Com plataformas de RMM, os administradores conseguem uma visão clara dos dados de uso, acompanham tendências de adoção e identificam licenças sem uso. Este guia mostra como usar scripts e automação para um controle de licenças SaaS proativo, eficiente e auditável.
Automatize o acompanhamento do uso de licenças e otimize os custos de SaaS.
Scripts de RMM personalizados para automatizar o controle de licenças SaaS
Uma boa estratégia de gerenciamento de licenças de software permite identificar e realocar licenças SaaS subutilizadas, otimizando custos e o controle do orçamento. Do ponto de vista gerencial, a visibilidade simplificada das licenças ajuda os administradores a analisar tendências de uso e a justificar decisões de renovação ou cancelamento. Automatizar o gerenciamento de licenças SaaS com ferramentas de RMM garante aplicação e visibilidade consistentes, economiza tempo, reduz trabalho manual e corta custos.
Pré-requisitos:
- Plataforma de RMM com recursos de script, relatórios e automação
- Credenciais de API das plataformas SaaS
- Privilégios de administrador
- Suporte a PowerShell, Bash e CMD nos endpoints
Estratégias de implantação recomendadas:
| Escolha um método | 💻 Melhor para usuários individuais |
💻💻💻 Melhor para empresas |
| Método 1: scripts PowerShell para consultar relatórios de uso de licenças no Microsoft 365 | ✓ | |
| Método 2: monitorar e correlacionar dados do agente RMM em busca de sinais de SaaS | ✓ | |
| Método 3: gerar relatórios longitudinais sobre o uso de SaaS | ✓ |
Observação: este guia apresenta scripts PowerShell, batch e bash que podem ser implantados em plataformas de RMM compatíveis com essas linguagens. Para simplificar e manter a consistência, usamos NinjaOne RMM como plataforma principal aqui.
Como adicionar scripts personalizados ao console do NinjaOne RMM
NinjaOne é compatível com PowerShell, batch e scripts bash, o que o torna adequado para executar os scripts deste guia. Veja como adicionar scripts de automação personalizados na biblioteca de scripts do NinjaOne:
- Abra o console do NinjaOne RMM e vá até:
Administração > Biblioteca > Automação.
- Em Automação, clique em Adicionar e selecione Novo script.
- Preencha os campos e parâmetros necessários para o script personalizado.
- Insira o script desejado para salvá-lo como script de automação.
- Confirme que a linguagem selecionada corresponde à linguagem do script.
- Depois de salvar, use as ferramentas nativas do NinjaOne para escolher os dispositivos de destino da automação, marcando a caixa de seleção ao lado deles.
Método 1: scripts PowerShell para consultar relatórios de uso de licenças no Microsoft 365
Caso de uso: automatizar auditorias de licenças SaaS com scripts PowerShell executados por uma plataforma de RMM.
Pré-requisito: PowerShell versão 5.1 ou posterior.
A. Conectar ao Microsoft 365 para recuperar os contratos de licença
O script PowerShell a seguir conecta o administrador à API do Microsoft Graph com permissão de leitura dos dados de usuários e licenças. Ele recupera todos os usuários com pelo menos uma licença atribuída, o que é ideal para montar um inventário da distribuição de licenças.
Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All"
Get-MgUser -All | Where-Object {$_.AssignedLicenses.Count -gt 0} | Select DisplayName, UserPrincipalName, AssignedLicenses
B. Exportar os dados de uso de licenças
Este script exporta todos os dados de usuários para um arquivo CSV, ideal para documentar e registrar o uso de licenças. Pelo RMM, dá para agendar a execução do script e gerar relatórios de licenças com regularidade.
Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All"
New-Item -ItemType Directory -Path "C:\Reports" -Force | Out-Null
Get-MgUser | Export-Csv -Path "C:\Reports\LicenseUsage.csv" -NoTypeInformation
DICA: é possível substituir C:\Reports por qualquer caminho que queira definir como destino da exportação.
Método 2: monitorar e correlacionar dados do agente RMM em busca de sinais de SaaS
Casos de uso: aproveitar os recursos da plataforma de RMM para inferir a atividade de aplicativos SaaS nos endpoints gerenciados.
Detectar processos de aplicativos SaaS para um controle de licenças eficaz
Os relatórios de inventário de software do RMM dispensam scripts e o acompanhamento manual do inventário. NinjaOne, por exemplo, mostra padrões de uso, atualizações e licenças de software, ajudando a gerenciar e alocar software com eficiência em escala.
Um bom controle do inventário de software permite rastrear quando aplicativos são instalados ou removidos, revelando licenças sem uso que podem ser realocadas.
Relatórios agendados sobre o inventário de software
RMMs como NinjaOne coletam dados completos sobre instalações e desinstalações de software em vários dispositivos. Também ajudam a identificar software não autorizado e sem licença, o que facilita a conformidade de licenciamento.
Esses dados podem ser reunidos em relatórios agendados, oferecendo um inventário de software mais claro para a gestão de recursos de TI e o planejamento proativos.
Está começando com plataformas de RMM? Leia o FAQ sobre RMM da NinjaOne para dúvidas comuns e respostas rápidas.
Método 3: gerar relatórios longitudinais sobre o uso de SaaS
Casos de uso: usar scripts PowerShell em plataformas de RMM para gerar dados sobre o uso de licenças SaaS no ambiente ao longo de um período prolongado. Depois, basta comparar os relatórios gerados para detectar tendências de uso de licenças.
Pré-requisito:
- Dispositivos ingressados no Microsoft 365 ou no Azure AD
- Função de administrador
- Módulo Microsoft Graph PowerShell instalado
Observação: o exemplo abaixo acompanha os usuários do Microsoft 365 de uma organização e salva o resultado como relatório semanal. Ainda assim, dá para ajustar o script aos parâmetros que preferir.
A. Script para criar snapshots periódicos dos dados de uso
O script a seguir recupera todas as contas de usuário do Microsoft 365, incluindo nomes de usuário, e-mails, status da conta e licenças atribuídas. Em seguida, exporta tudo para C:\SaaSReports como arquivo CSV, nomeado de acordo com a data de criação.
$date = Get-Date -Format "yyyy-MM-dd"
$path = "C:\SaaSReports"
if (!(Test-Path $path)) { mkdir $path | Out-Null }
Get-MgUser | Export-Csv "$path\LicenseUsage-$date.csv" -NoTypeInformation
B. Script de exemplo para comparar relatórios anteriores
Depois de reunir dados suficientes sobre o uso de licenças, é possível usar scripts para comparar relatórios diferentes e mapear o uso ao longo do tempo. Isso também ajuda a identificar contas inativas para recuperação de licenças, justificando o aumento ou a redução do número de licenças do ambiente.
Compare-Object `
-ReferenceObject (Import-Csv "C:\SaaSReports\LicenseUsage-2025-08-01.csv") `
-DifferenceObject (Import-Csv "C:\SaaSReports\LicenseUsage-2025-08-08.csv") `
-Property UserPrincipalName
Pontos de atenção
| Riscos | Possíveis consequências | Como reverter |
| Implantar scripts sem teste suficiente | Nem todo ambiente tem a mesma configuração; os scripts podem se comportar de formas diferentes em cada organização. | Teste os scripts localmente em um ambiente controlado para confirmar que funcionam antes da implantação. |
| Sintaxe incorreta e erros no script | Sintaxe incorreta e erros de digitação geram falhas e impedem a execução dos scripts. | Revise a sintaxe dos scripts, principalmente variáveis, caminhos e cmdlets.
Confirme que os módulos PowerShell necessários e as pastas de destino existem antes de gravar arquivos. |
| Incompatibilidade de plataforma | Cmdlets como Get-MgUser e os módulos do Microsoft Graph não funcionam em dispositivos macOS e Linux. | Verifique se a lógica do script é compatível com o sistema operacional e a interface de linha de comando em uso. |
Solução de problemas em relatórios de uso de licenças SaaS
Problema nº 1: dados de licença ausentes
Ao executar um script para consultar o relatório de uso de licenças, o resultado pode trazer atribuições de licença e listas de usuários incompletas. Entre as causas mais comuns, estão tokens de API expirados ou escopos de permissão ausentes. Uma alternativa é reinicializar a conexão com o Microsoft Graph executando o seguinte script PowerShell:
Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All"
Além do token e dos escopos corretos, também é preciso ter direitos administrativos suficientes para acessar os dados de licença. Para verificar, abra o centro de administração do Microsoft 365, vá até a conta de usuário que executa o script e acesse funções atribuídas. Deve aparecer pelo menos Leitor de Relatórios ou Administrador de Usuários.
Problema nº 2: scripts não executam pelo RMM
Verifique se o PowerShell de destino está bloqueando o script pelo recurso de política de execução, com o comando a seguir:
powershell.exe -ExecutionPolicy Bypass -File "C:\Path\To\YourScript.ps1"
OBSERVAÇÃO: substitua C:\Path\To\YourScript.ps1 pelo caminho real do script.
Confirme também se os scripts rodam como USER ou SYSTEM executando o seguinte:
Write-Output "Running as: $env:USERNAME"
No monitoramento de licenças SaaS, a execução como USER dá acesso a dados específicos do usuário e a outras variáveis ligadas a quem está conectado.
Problema nº 3: logs incompletos nos endpoints
Configure a GPO para garantir que as políticas de auditoria estejam ativadas nos endpoints de destino. Para isso, abra gpmc.msc e vá até Configuração do Computador > Configurações do Windows > Configurações de Segurança > Política de Auditoria Avançada. Confirme que Auditoria de Logon, Auditoria de Logoff, Auditoria de Logon Especial e Auditoria de Outros Eventos de Logon/Logoff estão todas ativadas em uma GPO vinculada à UO de destino.
Guia de início rápido
O RMM da NinjaOne traz recursos de monitoramento para acompanhar o uso das licenças SaaS dos clientes ao longo do tempo. NinjaOne oferece um controle de licenças robusto pelo Portal do Parceiro de backup SaaS:
1. Acompanhamento do uso de assentos
- Mostra o percentual de assentos pagos usados para backup
- Traz relatórios detalhados sobre o uso de assentos
- Acompanha o número de contas ativas, desativadas e o total
2. Relatórios de cobertura de proteção
- Exibe o percentual de contas com backup em relação ao total de contas
- Ajuda os parceiros a garantir proteção completa em todas as organizações
3. Painel de relatórios
- Visualiza dados sobre uso de licenças e de backup
- Permite detalhar as informações
- Exporta para CSV para análise offline
O que considerar ao usar o RMM no controle de licenças SaaS
Além de criar relatórios de uso de licenças, as plataformas de RMM trazem recursos extras que aumentam a eficiência do gerenciamento e do monitoramento de licenças. Veja alguns pontos importantes ao usar a automação do RMM para acompanhar licenças SaaS.
Acompanhar licenças SaaS inativas pelos relatórios de uso
As plataformas de RMM ajudam a identificar licenças sem uso para cancelamento ou reatribuição a outros usuários. Como as licenças SaaS costumam ser pagas por assinatura, licenças subutilizadas desperdiçam orçamento com o tempo. Ao identificar e recuperar licenças inativas rapidamente, a organização reduz os custos de SaaS no longo prazo.
Retenção de dados para análise de tendências
Com plataformas de RMM, dá para gerar relatórios longitudinais sobre o uso de SaaS periodicamente, seja semanal ou mensalmente. Manter snapshots de uso por 6 a 12 meses melhora a análise de tendências do ambiente. Períodos de retenção maiores revelam padrões de uso mais profundos e ajudam a justificar decisões de licenciamento.
Considerações de segurança
Apesar da enorme capacidade de monitoramento dos RMMs, os administradores devem evitar coletar dados sensíveis em excesso, o que violaria a privacidade dos usuários finais. Coletar dados pessoais demais, como histórico do navegador, pode quebrar a conformidade com o Regulamento Geral sobre a Proteção de Dados (GDPR).
Como contornar os limites das APIs
As APIs só coletam uma quantidade determinada de dados de uso dentro de um intervalo, que vai de minutos a um dia. Ultrapassar esses limites de taxa faz os scripts falharem e deixa os relatórios de uso incompletos. Para contornar, use consultas em lote ou agende as tarefas em horários de menor movimento, maximizando a taxa de transferência e acelerando consultas em massa.
Serviços NinjaOne para controle de licenças SaaS e relatórios de uso
Os serviços a seguir facilitam o controle e o inventário de licenças SaaS:
| Serviço NinjaOne | Definição | Como ajuda no controle de licenças SaaS |
| Agendamento de scripts | NinjaOne permite agendar tarefas para executar scripts automaticamente. | Agende implantações de scripts para coletar com regularidade os dados de uso de licenças e de atividade nos endpoints. |
| Alertas | Avisa os administradores assim que um endpoint atende a uma condição específica. | Configure notificações para detectar automaticamente licenças SaaS sem uso após um período definido. |
| Relatórios personalizados | Permite criar relatórios personalizáveis a partir de modelos e simplifica a produção com entrega agendada. | Gere relatórios recorrentes de uso de licenças automaticamente para M65, Zoom, Adobe e outros aplicativos SaaS, facilitando o acompanhamento e o monitoramento. |
| Inventário de ativos | Mostra em detalhes o software instalado nos endpoints, tudo em um único painel. | Uma visão completa dos ativos de TI apoia a alocação estratégica de licenças entre os usuários finais e melhora o controle de custos. |
| Suporte multiplataforma | Simplifica o monitoramento e o gerenciamento de endpoints com sistemas operacionais diferentes, sem precisar de várias plataformas separadas. | Monitorar endpoints e rodar scripts em múltiplas plataformas facilita o controle de licenças SaaS em ambientes mistos. |
| Integração com PSA | O software de PSA acompanha processos de negócio, incluindo ativos como a alocação e os custos de licenças SaaS. | A solução de PSA independente da NinjaOne e a integração com diversos sistemas de PSA ampliam o controle de licenças. |
Tenha visibilidade total do ambiente e das licenças SaaS.
Use plataformas de RMM para simplificar o controle de licenças SaaS
Acompanhar o uso de licenças SaaS ajuda MSPs e equipes internas de TI a reduzir custos com assinaturas em excesso. Também dá para agendar scripts pelo RMM e automatizar auditorias, o que revela licenças subutilizadas e evita alocações desperdiçadas. Com relatórios longitudinais, as tendências aparecem com base em dados ao longo do tempo e sustentam estratégias de alocação de licenças, como renovar ou cancelar.
Fluxo de trabalho rápido para o controle de licenças
Para os administradores de RMM, implantar essa estratégia com sucesso segue um processo claro e repetível:
- Defina o escopo: identifique a plataforma SaaS alvo (M365, Zoom etc.) e os níveis de licença (SKUs) a acompanhar.
- Proteja as credenciais: gere as chaves e tokens de API necessários e guarde-os no cofre seguro do RMM.
- Desenvolva e teste o script: crie o script PowerShell/REST localmente e teste a saída e as permissões.
- Implante pelo RMM: envie a versão final do script para a biblioteca de scripts do RMM e configure-o para buscar as credenciais do cofre com segurança.
- Agende a automação: configure o RMM para executar o script semanal ou mensalmente, garantindo a geração dos snapshots de relatório com data e hora.
- Relate e recupere: use o recurso de relatórios personalizados do RMM para rodar o script Compare-Object e recuperar de forma proativa as licenças sem atividade de login dentro da janela definida.
Temas relacionados: