Office 365 - Recuperando dados de auditoria usando PowerShell

Olá a todos!
No dia a dia dos administradores, auditoria e conformidade são uma das principais prioridades.
Nesse post vou falar como recuperar dados de auditoria do Office 365 utilizando o PowerShell, mais especificamente do cmdlet Search-UnifiedAuditLog.

O Search-UnifiedAuditLog nos fornece logs de auditoria de eventos do Exchange Online, SharePoint Online, OneDrive for Business, Azure Active Directory, Microsoft Teams, Power BI, Sway e outros  serviços do Office 365.
Podemos pesquisar todos os eventos em um intervalo de datas ou aplicar filtros, com por exemplo, o usuário que executou uma ação ou um log de um determinado serviço.


Vamos a alguns exemplos:

Esse exemplo retornará os eventos de no período de 01/10/2018 a 30/10/2018. Como não informamos um horário, a hora padrão 12:00 AM (meia noite) será aplicada.
Search-UnifiedAuditLog -StartDate 10/01/2018 -EndDate 10/30/2018


Nesse exemplo pesquisamos os logs por data e horário entre 8:00 AM e 6:00 PM referente ao PowerBI.
Search-UnifiedAuditLog -StartDate "10/01/2018 8:00 AM" -EndDate "10/30/2018 6:00 PM" 
-RecordType PowerBI


O exemplo abaixo formata a o resultado por colunas, realizando os seguintes filtros:
Período: -StartDate 09/01/2018 -EndDate 10/30/2018
Serviço: PowerBI
Quantidade de registros: 50
Search-UnifiedAuditLog -StartDate 09/01/2018 -EndDate 10/30/2018 -RecordType PowerBI 
-ResultSize 50 | select recordType, CreationDate, UserIds, Operations

PS C:\>Search-UnifiedAuditLog -StartDate 09/01/2018 -EndDate 10/30/2018
-RecordType PowerBI -ResultSize 50 | select recordType, CreationDate, UserIds, Operations

RecordType   CreationDate        UserIds                     Operations
----------   ------------        -------                     ----------
PowerBIAudit 29/10/2018 23:13:24 antonio@empresa.com.br   ViewReport
PowerBIAudit 29/10/2018 23:13:24 antonio@empresa.com.br   ViewReport
PowerBIAudit 29/10/2018 21:08:22 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 21:07:18 manoel@empresa.com.br    EditDataset
PowerBIAudit 29/10/2018 21:07:11 manoel@empresa.com.br    Import
PowerBIAudit 29/10/2018 20:36:32 asilva@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 20:35:57 asilva@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 20:35:47 asilva@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 20:32:06 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 20:32:02 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 20:30:43 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 20:30:31 manoel@empresa.com.br    EditDataset
PowerBIAudit 29/10/2018 20:30:24 manoel@empresa.com.br    Import
PowerBIAudit 29/10/2018 20:00:46 asilva@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 19:59:11 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 19:59:06 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 19:58:37 manoel@empresa.com.br    EditDataset
PowerBIAudit 29/10/2018 19:58:19 manoel@empresa.com.br    Import
PowerBIAudit 29/10/2018 19:06:10 frnc@empresa.com.br      ViewReport
PowerBIAudit 29/10/2018 19:04:59 fluc@empresa.com.br      ViewReport
PowerBIAudit 29/10/2018 18:39:22 asilva@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:39:11 asilva@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:32:01 donda@empresa.com.br     ViewReport
PowerBIAudit 29/10/2018 18:31:58 botelho@empresa.com.br   ViewReport
PowerBIAudit 29/10/2018 18:17:16 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:10:58 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:10:57 botelho@empresa.com.br   EditDataset
PowerBIAudit 29/10/2018 18:10:50 botelho@empresa.com.br   Import
PowerBIAudit 29/10/2018 18:06:00 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:05:30 botelho@empresa.com.br   EditDataset
PowerBIAudit 29/10/2018 18:05:23 botelho@empresa.com.br   Import
PowerBIAudit 29/10/2018 18:03:52 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:03:49 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:03:28 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:02:32 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:02:22 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:02:21 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:01:31 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:01:23 manoel@empresa.com.br    DeleteReport
PowerBIAudit 29/10/2018 18:00:58 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 18:00:24 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 17:59:53 botelho@empresa.com.br   ViewReport
PowerBIAudit 29/10/2018 17:57:44 botelho@empresa.com.br   ViewReport
PowerBIAudit 29/10/2018 17:56:38 botelho@empresa.com.br   EditDataset
PowerBIAudit 29/10/2018 17:56:31 botelho@empresa.com.br   Import
PowerBIAudit 29/10/2018 17:53:39 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 17:53:19 fluc@empresa.com.br      UpdateFolder
PowerBIAudit 29/10/2018 17:49:47 manoel@empresa.com.br    ViewReport
PowerBIAudit 29/10/2018 17:49:01 fluc@empresa.com.br      ViewDashboard
PowerBIAudit 29/10/2018 17:49:00 fluc@empresa.com.br      ViewDashboard

PS C:\>

Se quisermos exportar o resultado para um arquivo, basta adicionar | Export-Csv -Path c:\temp\result.csv

Search-UnifiedAuditLog -StartDate 09/01/2018 -EndDate 10/30/2018 -RecordType PowerBI 
-ResultSize 50 | select recordType, CreationDate, UserIds, Operations 
| Export-Csv -Path c:\temp\result.csv



Abaixo algumas informações sobre os principais parâmetros:


-RecordType

Filtra as entradas de logs por tipo.
Os valores válidos são:
  • AzureActiveDirectory
  • AzureActiveDirectoryAccountLogon
  • AzureActiveDirectoryStsLogon
  • ComplianceDLPExchange
  • ComplianceDLPSharePoint
  • CRM
  • DataCenterSecurityCmdlet
  • Discovery
  • ExchangeAdmin
  • ExchangeAggregatedOperation
  • ExchangeItem
  • ExchangeItemGroup
  • MicrosoftTeams
  • MicrosoftTeamsAddOns
  • MicrosoftTeamsSettingsOperation
  • OneDrive
  • PowerBIAudit
  • SecurityComplianceCenterEOPCmdlet
  • SharePoint
  • SharePointFileOperation
  • SharePointSharingOperation
  • SkypeForBusinessCmdlets
  • SkypeForBusinessPSTNUsage
  • SkypeForBusinessUsersBlocked
  • Sway
  • ThreatIntelligence
  • Yammer


-ResultSize

Especifica o número máximo de relutados.
O valor padrão é 100 e o máximo é 5.000.


Para mais detalhes clique no link abaixo.
https://docs.microsoft.com/en-us/powershell/module/exchange/policy-and-compliance-audit/search-unifiedauditlog?view=exchange-ps

Por hoje é só meus amigos.
Grande abraço,

Breno Padovan





Office 365 - Obtendo informações sobre as configurações do Click to Run no registro do sistema

Salve Salve a todos!
Depois de um bom tempo sem escrever, aqui estou novamente! Firme e forte!

Nesse post vou demonstrar como obter informações da instalação do Office através das informações de registro do sistema feitos pelo Click to Run.

Mais afinal de contas, o que é esse tal de Click to Run?
A grosso modo, o Click to Run é uma alternativa ao instalador MSI, utilizado para instalar ou atualizar o Office.
O Click to Run utiliza tecnologia de streaming e permite por exemplo que usuários comecem a utilizar o Office antes mesmo que ele esteja completamente instalado ou a utilizar os aplicativos enquanto uma atualização é feita.
Quando instalamos o Office através do Click to Run, as informações são gravadas na seguinte chave de registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration

Veja abaixo como obter as informações:

PS C:\> Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration


ClientVersionToReport             : 16.0.10827.20150
ClientFolder                      : C:\Program Files\Common Files\Microsoft Shared\ClickToRun
WatcherInterval                   : 3600000
PipelineServerName                : ClickToRun_Pipeline16
VersionToReport                   : 16.0.10827.20150
ScenarioCulture                   :
InstallID                         : DC208D48-7ED2-4552-BBD6-59E488F698F8
Platform                          : x86
InstallationPath                  : C:\Program Files (x86)\Microsoft Office
ClientCulture                     : en-us
CDNBaseUrl                        : http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60
O365ProPlusRetail.MediaType       : CDN
UpdatesEnabled                    : True
Activate                          : True
ProductReleaseIds                 : O365ProPlusRetail,ProjectProRetail,VisioProRetail
O365ProPlusRetail.OSPPReady       : 1
StreamingFinished                 : True
RSODReset                         : False
VisioProRetail.MediaType          : CDN
VisioProRetail.OSPPReady          : 1
UpdateChannel                     : http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60
UpdateChannelChanged              : False
O365ProPlusRetail.EmailAddress    : breno@uptocloud.com
BackgroundTransportMethodDefault  : cachedhttp
BackgroundTransportMethodFailures : 0
ProjectProRetail.MediaType        : CDN
ProjectProRetail.OSPPReady        : 1
ProjectProRetail.EmailAddress     : breno@uptocloud.com
VisioProRetail.EmailAddress       : breno@uptocloud.com
O365ProPlusRetail.TenantId        : 4,e5d48eb7-b070-4194-bfcc-36c71d96301a
AudienceId                        : 492350f6-3a01-4f97-b9c0-c7c6ddf67d60
VisioProRetail.TenantId           : 4,e5d48eb7-b070-4194-bfcc-36c71d96301a
AudienceData                      : Production::CC
PackageLockerPath                 : C:\ProgramData\Microsoft\Office
OneDriveClientAddon               : INSTALLED
O365ProPlusRetail.OneNoteInUse    : True
PSPath                            : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Cl
ickToRun\Configuration
PSParentPath                      : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Cl
ickToRun
PSChildName                       : Configuration
PSDrive                           : HKLM
PSProvider                        : Microsoft.PowerShell.Core\Registry

PS C:\>

Um grande abraço,

Breno Padovan

Powershell - Listando todas as VMs e detalhes dos seus VHDs em um Cluster Hyper-V

Salve Salve a todos!
Já passou por um situação onde precisou listar o tamanho que os VHDs de suas VMs estão ocupando em um Cluster?
Nesse rápido post irei demonstrar como listarmos todas as VMs e detalhes dos seus respectivos VHDs em um cluster Hyper-V.
No comando abaixo iremos apresentar o path dos VHDs, o nó do cluster onde está alocado, o tipo do VHD e o seu tamanho.


 Segue exemplo:



Podemos também executar o mesmo comando somente em uma linha, veja o exemplo:

PS C:\> Get-VM -ComputerName (Get-ClusterNode) | ForEach-Object {Get-VHD -ComputerName $_.ComputerName -VMId $_.VMId} |
Select path,computername,vhdtype,@{label='Size(GB)';expression={$_.filesize/1gb -as [int]}}

Path                          ComputerName    VhdType   Size(GB)
----                          ------------    -------   --------
C:\ClusterStorage\VMDATA01... SRVHPV01        Fixed          127
C:\ClusterStorage\VMDATA03... SRVHPV01        Dynamic         15
C:\ClusterStorage\VMDATA03... SRVHPV01        Dynamic        458
C:\ClusterStorage\VMDATA03... SRVHPV01        Dynamic         22
C:\ClusterStorage\VMDATA03... SRVHPV01        Dynamic          4
C:\ClusterStorage\vmdata02... SRVHPV01        Dynamic         15
C:\ClusterStorage\vmdata02... SRVHPV01        Dynamic          6
C:\ClusterStorage\vmdata03... SRVHPV01        Dynamic         73
C:\ClusterStorage\vmdata03... SRVHPV01        Dynamic         18
C:\ClusterStorage\vmdata03... SRVHPV01        Dynamic         24
C:\ClusterStorage\VMDATA03... SRVHPV01        Dynamic        463
C:\ClusterStorage\VMDATA03... SRVHPV01        Dynamic        226
C:\ClusterStorage\VMDATA04... SRVHPV01        Dynamic         40
C:\ClusterStorage\VMDATA02... SRVHPV02        Dynamic         16
C:\ClusterStorage\VMDATA02... SRVHPV02        Dynamic        141
C:\ClusterStorage\VMDATA02... SRVHPV02        Dynamic         15
C:\ClusterStorage\VMDATA02... SRVHPV02        Dynamic        110
C:\ClusterStorage\VMDATA03... SRVHPV02        Dynamic        229
C:\ClusterStorage\VMDATA03... SRVHPV02        Dynamic        341
C:\ClusterStorage\VMDATA03... SRVHPV02        Dynamic        299
C:\ClusterStorage\VMDATA02... SRVHPV03        Dynamic         15
C:\ClusterStorage\VMDATA02... SRVHPV03        Dynamic        722
C:\ClusterStorage\VMDATA02... SRVHPV03        Dynamic         15
C:\ClusterStorage\VMDATA02... SRVHPV03        Dynamic        133
C:\ClusterStorage\vmdata03... SRVHPV03        Dynamic        354

PS C:\>

Exportando o resultado

Se preferir podemos exportar para um arquivo CSV ou gerar um HTML.

Exportando para arquivo CSV



Exportando para um arquivo HTML



É isso pessoal, espero que seja útil.
Abraços a todos!

Breno Padovan