Microsoft 365 | Expert Solutions Microsoft https://paulocostati.com.br Fri, 27 Mar 2026 01:01:48 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.9.4 https://i0.wp.com/paulocostati.com.br/wp-content/uploads/2024/09/Logotipo-empresa-de-programacao-sistemas-e-tecnologia.png?fit=32%2C32&ssl=1 Microsoft 365 | Expert Solutions Microsoft https://paulocostati.com.br 32 32 209994073 Como me preparei para o exame AB-900: Microsoft 365 Copilot and Agent Administration Fundamentals https://paulocostati.com.br/exchange-online/como-me-preparei-para-o-exame-ab-900-microsoft-365-copilot-and-agent-administration-fundamentals/?utm_source=rss&utm_medium=rss&utm_campaign=como-me-preparei-para-o-exame-ab-900-microsoft-365-copilot-and-agent-administration-fundamentals https://paulocostati.com.br/exchange-online/como-me-preparei-para-o-exame-ab-900-microsoft-365-copilot-and-agent-administration-fundamentals/#respond Fri, 27 Mar 2026 01:01:40 +0000 https://paulocostati.com.br/?p=333 Fala, pessoal, tudo bem com vocês? Hoje vou ser direto: quando a Microsoft anunciou o AB-900, minha primeira reação foi: “Mais um exame de fundamentals…”. Mas, ao ler o escopo, mudei de ideia rapidinho.

Diferente de outros exames “900”, que costumam ser a porta de entrada para iniciantes, o AB-900 faz algo estratégico: ele une a base sólida de administração do Microsoft 365 com a nova camada de governança de IA e Agentes. Se você já é Admin de M365 no dia a dia, isso é território familiar, mas com uma dimensão nova que está mudando como gerenciamos ambientes produtivos.

Como analista sênior lidando com Exchange Online, SharePoint e Teams todos os dias, decidi documentar como saí do zero até a aprovação. Confira o que funcionou para mim.


O que é o AB-900 e por que ele importa agora?

O exame Microsoft 365 Certified: Copilot and Agent Administration Fundamentals foi lançado em beta no final de 2025 e chegou à disponibilidade geral em fevereiro de 2026. Ele valida se você entende não apenas como usar o Copilot, mas como administrá-lo com segurança e controle.

Domínio de ConhecimentoPeso na ProvaFoco Principal
Recursos Centrais M36530–35%Usuários, grupos, licenças e Admin Centers.
Proteção e Governança35–40%Purview, DLP, Zero Trust e permissões de IA.
Tarefas Adm. de Copilot e Agentes25–30%Pay-as-you-go, ciclo de vida de agentes e monitoramento.

Estrutura do exame AB-900


Meu Plano de Estudo (1 Semana)

Com a ajuda do NotebookLM e a experiência prévia que eu já tinha, precisei de aproximadamente uma semana de foco total para realizar o exame.

1. Revisão da Base (Domínio 1)

Para quem opera Exchange e SharePoint, essa é a “zona de conforto”. Usei o NotebookLM para gerar resumos focados em detalhes que a prova cobra, como: diferenças cruciais entre tipos de grupos, configurações de domínio no tenant e políticas de compartilhamento (sharing policies).

2. O Coração da Prova: Purview e Segurança (Domínio 2)

Aqui o exame exige atenção redobrada. O foco é como a segurança tradicional se aplica ao contexto de IA:

  • Microsoft Purview: Políticas de DLP e Sensitivity Labels (essenciais para o Copilot respeitar dados sensíveis).
  • Microsoft Entra: Acesso Condicional e troubleshooting de sign-in.
  • Zero Trust: Como os três princípios se aplicam a permissões no contexto de IA.

3. Copilot e Agentes na Prática (Domínio 3)

A parte mais “fresca” da prova. Foquei em:

  • Licenciamento: Diferença entre assinatura mensal tradicional e o modelo pay-as-you-go.
  • Copilot Studio: Ciclo de vida dos agentes (criação, publicação e monitoramento no Power Platform Admin Center).
  • Monitoramento de Uso: Relatórios no M365 Admin Center e insights operacionais.

Recursos que Recomendo (de verdade!)

  1. Study Guide Oficial: É o seu mapa obrigatório. Ele lista exatamente os tópicos cobertos.
  2. Microsoft Learn (Curso AB-900T00-A): Gratuito, estruturado e totalmente alinhado ao exame.
  3. Exam Sandbox da Microsoft: Use para se acostumar com as questões de hotspot e drag-and-drop antes do dia oficial.
  4. NotebookLM: Usei para processar a documentação oficial e gerar áudios e cards de revisão.
  5. Tenant de Testes: Nada substitui o hands-on. Explore o Copilot Admin Center e as configurações do Power Platform.

Dica de Prova: O exame é muito orientado a cenários. Espere perguntas do tipo: “Uma organização quer garantir que o Copilot não acesse documentos confidenciais. Qual recurso você configura?”. A resposta exige saber o papel das Sensitivity Labels na prática.


Conclusão

O AB-900 chegou no momento certo. A onda de Copilot nas empresas está criando uma demanda real por profissionais que saibam administrar com segurança e governança. Se você já domina o ecossistema M365, você já está a meio caminho da certificação.

Fui, estudei e passei. Valeu cada minuto investido.

E você, já está estudando para o AB-900 ou tem alguma dúvida sobre a preparação? Deixa aqui nos comentários! E se você já fez a prova, conta como foi a sua experiência.

]]>
https://paulocostati.com.br/exchange-online/como-me-preparei-para-o-exame-ab-900-microsoft-365-copilot-and-agent-administration-fundamentals/feed/ 0 333
Como Criar um Relatório de Usuários Inativos com Licença no Microsoft 365 Usando PowerShell https://paulocostati.com.br/powershell/como-criar-um-relatorio-de-usuarios-inativos-com-licenca-no-microsoft-365-usando-powershell/?utm_source=rss&utm_medium=rss&utm_campaign=como-criar-um-relatorio-de-usuarios-inativos-com-licenca-no-microsoft-365-usando-powershell Mon, 26 May 2025 01:23:12 +0000 https://paulocostati.com.br/?p=116 Fala pessoal, tudo bem com vocês? No post de hoje eu vou mostrar como usar PowerShell para identificar licenças do Microsoft 365 que estão paradas e custando dinheiro à toa para sua empresa.

Recentemente, recebi mensagens de profissionais que reclamam sobre como é difícil controlar essas licenças e evitar gastos desnecessários. A boa notícia? Dá para automatizar isso com PowerShell, e eu vou mostrar como.

Antes de começar, já vou avisar que não é algo super simples, mas é totalmente possível e vai te ajudar demais, especialmente se você não quer perder tempo fazendo isso tudo na mão, todo mês.

Por que identificar licenças ociosas é importante?


Você já parou para pensar quantas licenças do Microsoft 365 sua empresa paga e que não estão sendo usadas? Isso pode representar um gasto enorme todo mês, porque essas licenças ficam ativas mesmo sem uso.

Se o financeiro souber quais licenças estão paradas, pode cancelar essas assinaturas e economizar um bom dinheiro. Além disso, ajuda na segurança, porque menos contas ativas significam menos riscos.

O poder do PowerShell para resolver isso

Com PowerShell, você pode consultar o Microsoft 365, identificar quais usuários têm licença e não acessaram nada nos últimos 90 dias (ou outro período que desejar). Depois, gerar um relatório fácil de entender, em HTML, para mostrar para o financeiro ou seu gestor.

E o melhor: você pode agendar essa verificação para rodar automaticamente, sem precisar lembrar disso todo mês.

Pré-requisitos para rodar o script

Antes de rodar o script que vou mostrar, você precisa ter:

  • Uma conta com permissões de administrador no Microsoft 365 (Azure AD).
  • PowerShell 7 ou superior instalado na sua máquina.
  • O módulo Microsoft.Graph para PowerShell instalado (o script já verifica e instala se não tiver).
  • Conexão com a internet ativa.
  • Permissão para usar o Microsoft Graph API com o escopo User.Read.All.

O script que faz isso tudo pra você

Abaixo está o script completo. Ele conecta no Microsoft 365, busca os usuários com licenças e que não acessaram os serviços nos últimos 90 dias, e cria um relatório em HTML bem organizado.

<#
.DESCRIPTION
    Script para gerar um relatório de usuários do Microsoft 365 que possuem licenças atribuídas, mas não acessaram a conta nos últimos 90 dias. 
    O relatório é gerado em formato HTML e salvo na pasta atual.
.AUTHOR
    Paulo Costa

.EXAMPLE
   .\relatorio365lic.ps1
    Executa o script para gerar o relatório de usuários inativos com licenças atribuídas.

.PREREQUISITES
    - Módulo Microsoft.Graph instalado.
    - Permissões de leitura de usuários no Microsoft Graph (User.Read.All).
    - PowerShell 7.0 ou superior recomendado.
    - Compatível com PowerShell 5.1, mas com limitações de performance.
#>

if (-not (Get-Module -ListAvailable -Name Microsoft.Graph)) {
    Write-Host "Módulo Microsoft.Graph não encontrado. Instalando..." -ForegroundColor Yellow
    Install-Module Microsoft.Graph -Scope CurrentUser -Force
}

Import-Module Microsoft.Graph

Write-Host "Conectando ao Microsoft Graph..." -ForegroundColor Cyan
Connect-MgGraph -Scopes User.Read.All

$DataCorte = (Get-Date).AddDays(-90)

Write-Host "Buscando usuários com licenças e inativos há mais de 90 dias..." -ForegroundColor Cyan

$usuarios = Get-MgUser -All -Property DisplayName, UserPrincipalName, AssignedLicenses, SignInActivity

$UsuariosInativos = $usuarios | Where-Object {
    $_.AssignedLicenses.Count -gt 0 -and (
        $_.SignInActivity.LastSignInDateTime -eq $null -or 
        [datetime]$_.SignInActivity.LastSignInDateTime -lt $DataCorte
    )
}

if ($UsuariosInativos.Count -eq 0) {
    Write-Host "Nenhum usuário inativo encontrado com licença atribuída." -ForegroundColor Green
    exit
}

$htmlReport = @"
<html>
<head>
    <title>Relatório de Licenças Microsoft 365 Inativas</title>
    <style>
        body { font-family: Arial, sans-serif; background-color:#f4f4f4; }
        table { border-collapse: collapse; width: 100%; background-color: #fff; }
        th, td { padding: 12px; border: 1px solid #ddd; text-align: left; }
        th { background-color: #0078d4; color: white; }
        tr:hover { background-color: #e1f5fe; }
    </style>
</head>
<body>
    <h2>Relatório de Licenças Microsoft 365 Inativas (mais de 90 dias)</h2>
    <p><strong>Empresa:</strong> Paulo Costa TI</p>
    <p><strong>Data:</strong> $(Get-Date -Format 'dd/MM/yyyy')</p>
    <p><strong>Gerado por:</strong> $env:USERNAME</p>
    <table>
        <tr>
            <th>Nome</th>
            <th>Email</th>
            <th>Último Login</th>
        </tr>
"@

foreach ($user in $UsuariosInativos) {
    $lastSignIn = if ($user.SignInActivity.LastSignInDateTime) {
        [datetime]$user.SignInActivity.LastSignInDateTime
    } else {
        "Nunca"
    }

    $htmlReport += @"
        <tr>
            <td>$($user.DisplayName)</td>
            <td>$($user.UserPrincipalName)</td>
            <td>$lastSignIn</td>
        </tr>
"@
}

$htmlReport += @"
    </table>
</body>
</html>
"@

$reportPath = Join-Path -Path $PWD -ChildPath "LicencasInativas_$(Get-Date -Format 'yyyyMMdd_HHmmss').html"
$htmlReport | Out-File -FilePath $reportPath -Encoding UTF8

Write-Host "Relatório gerado com sucesso em: $reportPath" -ForegroundColor Green

Exemplo do relatório:

Como usar:

  1. Abra o PowerShell 7 ou superior como administrador.
  1. Abra o PowerShell 7 ou superior como administrador.
  2. Copie e cole o script ou salve num arquivo .ps1.
  3. Execute o script. Ele vai pedir para você se conectar no Microsoft 365.
  4. Após a conexão, ele vai gerar um relatório HTML na pasta onde você rodou o script.
  5. Abra o arquivo HTML no navegador e veja as licenças que estão inativas.

Quer mais scripts prontos e dicas para automatizar seu dia a dia?


Eu tenho uma área especial no meu GitHub onde compartilho scripts PowerShell como esse e outros que vão ajudar muito no seu trabalho, te economizar horas e mostrar seu valor na empresa.

Se liga lá no meu perfil e fique de olho nas novidades. Curte, comenta, compartilha e segue para não perder nada!

Automatizar tarefas com PowerShell é um divisor de águas para quem quer crescer na área de TI e mostrar resultados concretos. Então, bora colocar a mão na massa e parar de perder tempo com tarefas repetitivas?

]]>
116
Como Gerar Relatório de Uso de Licenças no Microsoft 365 com PowerShell https://paulocostati.com.br/powershell/como-gerar-relatorio-de-uso-de-licencas-no-microsoft-365-com-powershell/?utm_source=rss&utm_medium=rss&utm_campaign=como-gerar-relatorio-de-uso-de-licencas-no-microsoft-365-com-powershell Sat, 26 Apr 2025 11:25:46 +0000 https://paulocostati.com.br/?p=105 Fala pessoal, tudo bem com vocês?

Se você trabalha administrando Microsoft 365, com certeza já passou pela situação de ter que descobrir quem está usando quais licenças — seja pra controle de custos, planejamento ou só pra entender o que realmente está sendo usado.

Esse script aqui vai salvar teu tempo (e tua paciência também rsrs).

O que esse script faz?

  • Lista todos os usuários que possuem determinadas licenças específicas
  • Mostra o nome de usuário, SKU da licença e o nome da licença
  • Exporta tudo pra um arquivo .csv bonitinho
  • Tudo automatizado, sem sofrimento

O que você precisa pra rodar?

  • Ter o módulo Microsoft.Graph instalado
  • Ter permissão pra rodar consultas com Directory.Read.All
  • Uma conta com acesso de admin no Microsoft 365

Bora lá pro código:

#
.DESCRIPTION
    Criar relatório de licenças usadas via PowerShell
#>

Install-Module -Name Microsoft.Graph -Force

Connect-MgGraph -Scopes "Directory.Read.All"

Get-MgSubscribedSku | Select-Object SkuId, SkuPartNumber

# Aqui você coloca as SKUs que quer rastrear

$skuid = @(
    "f8a1db68-be16-40ed-86d5-cb42ce701560", # POWER_BI_PRO
    "f30db892-07e9-47e9-837c-80727f46fd3d", # FLOW_FREE
    "606b54a9-78d8-4298-ad8b-df6ef4481c80", # CCIBOTS_PRIVPREV_VIRAL
    "c42b9cae-ea4f-4ab7-9717-81576235ccac", # DEVELOPERPACK_E5
    "3f9f06f5-3c31-472c-985f-62d9c10ec167", # Power_Pages_vTrial_for_Makers
    "8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b", # RIGHTSMANAGEMENT_ADHOC
    "5b631642-bd26-49fe-bd20-1daaa972ef80"  # POWERAPPS_DEV
)

$users = Get-MgUser -All

$usersL= @()

foreach ($user in $users) {
    $userslicenses = Get-MgUserLicenseDetail -UserId $user.Id

    foreach ($licenca in $userslicenses) {
        if ($skuid -contains $licenca.SkuId) {
            $usersL += [PSCustomObject]@{
               Nome        = $user.UserPrincipalName
               Licenca     = $licenca.SkuId
               NomeLicenca = $licenca.SkuPartNumber
            }
        }
    }
}

$usersL | Export-Csv -Path "C:\Temp\LicencasUsuarios.csv" 

Write-Host "Relatório gerado com sucesso: C:\Temp\LicencasUsuarios.csv" -ForegroundColor Green

Disconnect-Graph

Qual a parte boa aqui?

  • Você não precisa sair catando usuário por usuário.
  • Pode rodar o script sempre que quiser atualizar o relatório.
  • O resultado vai direto pro C:\Temp\LicencasUsuarios.csv — se quiser, é só abrir no Excel.

Administrar sem automação é pedir pra sofrer, né? Script simples assim vira ouro no dia a dia.
Se curtiu, compartilha com teu time. E fica de olho aqui no blog — vem muito mais coisa útil por aí! 🚀

]]>
105