Por Fábio Moura

/ Em Segurança da Informação /

Postado em

jun 18, 2020

Relatório de dispositivos conectados ao Office 365

Devido à grande demanda de “Home Office”, neste artigo iremos demostrar como executar um script de Powershell para gerar um relatório dos seus dispositivos conectados ao seu Tenant do Microsoft 365.

Esse relatório irá conter várias informações como nome do usuário, tipo de dispositivo, sistema operacional, último login, em qual aplicativo realizou o login, sendo útil para verificar qual aplicativo, dispositivos, sistema operacional que os seus colaboradores utilizaram para acessar ao seu Tenant.

Através da análise desse relatório podemos planejar medidas e configurações de segurança para blindar cada vez mais o acesso aos seus aplicativos, dados e informações corporativas.

O script gera um relatório bem completo, trazendo as seguintes informações:

  • Nome em Exibição;
  • UPN;
  • Operadora de celular (se disponível);
  • Tipo de dispositivo;
  • UserAgent do dispositivo;
  • Modelo do dispositivo;
  • Nome amigável do dispositivo;
  • Sistema operacional do dispositivo (SO);
  • Idioma do SO do dispositivo;
  • Se o dispositivo suporta “Wipe” ou não;
  • Política de gerenciamento de dispositivos aplicada;
  • Status do aplicativo de diretiva de dispositivo;
  • Hora da primeira sincronização;
  • Hora da última atualização da política;
  • Hora da última tentativa de sincronização;
  • Hora da última sincronização bem-sucedida;

Segue o código utilizado no script:

#

Connect to Exchange Online

$UserCredential = Get-Credential

Create session into the Office 365 admin console

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import the Powershell Session

Import-PSSession $Session -DisableNameChecking > $null

Output file

$FileOutput = “C:\MobileDevices.csv”

Set Headers for Output file

Out-File -FilePath $FileOutput -InputObject “DisplayName,UPN,DeviceMobileOperator,DeviceType,DeviceUserAgent,DeviceModel,DeviceFriendlyName,DeviceOS,DeviceOSLanguage,IsRemoteWipeSupported,DevicePolicyApplied,DevicePolicyApplicationStatus,FirstSyncTime,LastPolicyUpdateTime,LastSyncAttemptTime,LastSuccessSync” -Encoding UTF8

Collect a list of mailboxes within the Office 365 tenant

$mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited -Filter {HiddenFromAddressListsEnabled -eq $false}

Loop through each mailbox

foreach ($mailbox in $mailboxes) {
$devices = Get-MobileDeviceStatistics -Mailbox $mailbox.samaccountname

##If the mailbox has a device loop through it and collect information

if ($devices) {

    foreach ($device in $devices){

        ##Create a new object and output the information to CSV

        $deviceinf = New-Object -TypeName psobject

        $deviceinf | Add-Member -Name DisplayName -Value $mailbox.DisplayName -MemberType NoteProperty

        $deviceinf | Add-Member -Name UPN -Value $mailbox.UserPrincipalName -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceMobileOperator -Value $device.DeviceMobileOperator -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceType -Value $device.DeviceType -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceUserAgent -Value $device.DeviceUserAgent -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceModel -Value $device.DeviceModel -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceFriendlyName -Value $device.DeviceFriendlyName -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceOS -Value $device.DeviceOS -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceOSLanguage -Value $device.DeviceOSLanguage -MemberType NoteProperty

        $deviceinf | Add-Member -Name IsRemoteWipeSupported -Value $device.IsRemoteWipeSupported -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceWipeSentTime -Value $device.DeviceWipeSentTime -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceWipeRequestTime -Value $device.DeviceWipeRequestTime -MemberType NoteProperty

        $deviceinf | Add-Member -Name DeviceWipeAckTime -Value $device.DeviceWipeAckTime -MemberType NoteProperty

        $deviceinf | Add-Member -Name LastDeviceWipeRequestor -Value $device.LastDeviceWipeRequestor -MemberType NoteProperty

        $deviceinf | Add-Member -Name DevicePolicyApplied -Value $device.DevicePolicyApplied -MemberType NoteProperty

        $deviceinf | Add-Member -Name DevicePolicyApplicationStatus -Value $device.DevicePolicyApplicationStatus -MemberType NoteProperty

        $deviceinf | Add-Member -Name FirstSyncTime -Value ($device.FirstSyncTime) -MemberType NoteProperty

        $deviceinf | Add-Member -Name LastPolicyUpdateTime -Value ($device.LastPolicyUpdateTime) -MemberType NoteProperty

        $deviceinf | Add-Member -Name LastSyncAttemptTime -Value ($device.LastSyncAttemptTime) -MemberType NoteProperty

        $deviceinf | Add-Member -Name LastSuccessSync -Value ($device.LastSuccessSync)-MemberType NoteProperty

        ##Output the above results to a CSV file, appending each time

        Out-File -FilePath $FileOutput -InputObject “$($deviceinf.DisplayName),$($deviceinf.UPN),$($deviceinf.DeviceMobileOperator),$($deviceinf.DeviceType),$($deviceinf.DeviceUserAgent),$($deviceinf.DeviceModel),$($deviceinf.DeviceFriendlyName),$($deviceinf.DeviceOS),$($deviceinf.DeviceOSLanguage),$($deviceinf.IsRemoteWipeSupported),$($deviceinf.DevicePolicyApplied),$($deviceinf.DevicePolicyApplicationStatus),$($deviceinf.FirstSyncTime),$($deviceinf.LastPolicyUpdateTime),$($deviceinf.LastSyncAttemptTime),$($deviceinf.LastSuccessSync)” -Encoding UTF8 -append

    }

}

}

Close Powershell session

Remove-PSSession $session

Remove Variables used

Remove-Variable -Name mailboxes
Remove-Variable -Name devices
Remove-Variable -Name fileoutput
Remove-Variable -Name session
Remove-Variable -Name deviceinf
Remove-Variable -Name mailbox
Remove-Variable -Name device

Display completion result

Write-Host “The results of this PowerShell script have been stored in “C:\MobileDevices.csv”” -BackgroundColor Black -ForegroundColor Yellow

Espero poder te ajudar com esse script a ter uma visão mais abrangente dos dispositivos que acessam e consomem os seus dados e informações corporativas. Além de também ajudar a criar mecanismos de acesso, verificação de identidade, conformidade dos dispositivos e aplicar proteção a suas informações.

Querendo saber mais sobre esse assunto procure nossos especialistas.

0

Deixe uma resposta

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