Exchange Online - Gerenciando resource mailbox com PowerShell

Exchange Online - Gerenciando resource mailbox com PowerShell
Salve Salve a todos!
Nesse post irei demonstrar como utilizar o PowerShell para gerenciar resource mailbox no Exchange Online.

Mais o que é afinal de contas resource mailbox?
Em resumo é um tipo de caixa de correio usada para o gerenciamento de salas de reuniões ou equipamentos.
Existe dois tipos de Resource Mailbox: caixa de correio de sala e caixa de correio de equipamento.
Há uma pequena diferença entre as duas, mais o objetivo é o mesmo.
Mais detalhes clique aqui


Mãos a massa

Criando uma caixa de correio de Sala e Equipamento


Sintaxe:
New-Mailbox -Name "<Name>" -Room
New-Mailbox -Name "<Name>" -Equipment

PS C:\> New-Mailbox -Name "Sala 01" -Room
PS C:\>

PS C:\> New-Mailbox -Name "Projetor 01" -Equipment
PS C:\>



Ativando a reserva automática


Sintaxe:
Set -CalendarProcessing "<Identity>" -AutomateProcessing AutoAccept

PS C:\> Set-CalendarProcessing "Sala 01" -AutomateProcessing AutoAccept
PS C:\>
PS C:\> Set-CalendarProcessing "Projetor 01" -AutomateProcessing AutoAccept
PS C:\> 

Verificando:

PS C:\> Get-CalendarProcessing -Identity "Sala 01"

Identity                                                     AutomateProcessing
--------                                                     ------------------
Sala 01                                                      AutoAccept                                                 
PS C:\>


Desativando a reserva automática



PS C:\> Set-CalendarProcessing -Identity "Projetor 01" -AutomateProcessing None
PS C:\>

Verificando

PS C:\> Get-CalendarProcessing -identity "Projetor 01"

Identity                                                     AutomateProcessing
--------                                                     ------------------
Projetor 01                                                  None
PS C:\>


Atribuindo a permissão para que um usuário fique responsável por aceitar ou recusar uma reserva


PS C:\>Set-CalendarProcessing -Identity "Sala10" -AutomateProcessing AutoAccept 
-AllRequestInPolicy $true -AllBookInPolicy $false 
-ResourceDelegates "bruna@padovan112233.onmicrosoft.com"
PS C:\>

Fazendo os testes: vamos reservar uma reunião na Sala 10.

Recebemos um e-mail que a reserva está aguardando a aprovação.
Exchange Online - Gerenciando resource mailbox com PowerShell

Já o usuário que ficou responsável recebe o e-mail abaixo com as opções.


Exchange Online - Gerenciando resource mailbox com PowerShell

Confirmação que a reserva foi aceita.
Exchange Online - Gerenciando resource mailbox com PowerShell



Definindo a permissão para que somente alguns usuários possam reservar sala específica

 
Imagine que exista uma sala que somente o departamento de TI possa usa-la. Nesse caso somente alguns usuários poderão fazer a reserva, os demais usuários não terão essa permissão e a tentativa de reserva será recusada automaticamente.

PS C:\>Set-CalendarProcessing -identity "SalaTI" -AllBookInPolicy: $false 
-AllRequestInPolicy: $false -BookInPolicy "suporte@padovan112233.onmicrosoft.com" 
PS C:\>

Quando outro usuário tenta fazer uma reserva a mesma é recusada automaticamente.
Exchange Online - Gerenciando resource mailbox com PowerShell


Atribuindo a permissão de Full Access


Add-MailBoxPermission "Sala 03" -User "Dulce Feitosa" -AccessRights FullAccess

PS C:\> Add-MailBoxPermission "Sala 03" -User "Dulce Feitosa" -AccessRights FullAccess

Identity             User                 AccessRights     IsInherited Deny
--------             ----                 ------------     ----------- ----
Sala 03              LAMP152A002\Dulce... {FullAccess}     False       False


PS C:\>


Permitindo conflito de reserva usando a opção de reserva automática


PS C:\> Set-CalendarProcessing "Sala Terreo"  -AllowConflicts $True
PS C:\>


Listando Room Mailbox


PS C:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailBox")'| Select Name, Alias

Name        Alias
----        -----
Sala 02     Sala02
Sala 03     Sala03
Sala Terreo SalaTerreo
Sala10      Sala10
SalaTI      SalaTI

PS C:\>


Listando Equipament Mailbox


PS C:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "EquipmentMailBox")'| Select Name, Alias

Name        Alias
----        -----
Projetor 01 Projetor01


PS C:\>


Alterando o prazo máximo de reserva


Por padrão o prazo máximo é de 180 dias. No exemplo abaixo alteramos para 365 dias

PS C:\> Get-MailBox "Sala10" | Set-CalendarProcessing -BookingWindowInDays 365
PS C:\>

É isso ai pessoal!
Segue alguns links com mais informações:
https://docs.microsoft.com/en-us/exchange/recipients-in-exchange-online/manage-room-mailboxes
https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/set-calendarprocessing?view=exchange-ps

Grande abraço,
Breno Padovan

SQL Server - Verificando os últimos backups realizados

Salve Salve a todos!
No post de hoje vamos falar de SQL Server.
Uma hora ou outra precisamos ter a informação dos últimos backups realizados.
Nos scripts abaixo vamos poder verificar os últimos backups dos bancos em suas instâncias.


Mãos a massa!

Script 1 - Retorna o ultimo backup de cada database

SELECT db.Name AS DatabaseName,
COALESCE(CONVERT(VARCHAR(19), MAX(bs.backup_finish_date), 120),'None') AS LastBackUpDateTime
FROM sys.sysdatabases db
        LEFT OUTER JOIN msdb.dbo.backupset bs 
     ON bs.database_name = db.name
GROUP BY db.Name; 





Script 2 - Retorna os databases que nunca realizaram backup ou o backup atual tem mais de 24 horas.

SELECT db.Name AS DatabaseName,
COALESCE(CONVERT(VARCHAR(19), MAX(bs.backup_finish_date), 120),'None') AS LastBackUpTime
FROM sys.sysdatabases db
        LEFT OUTER JOIN msdb.dbo.backupset bs 
     ON bs.database_name = db.name
GROUP BY db.Name
HAVING max(bs.backup_finish_date) < dateadd(dd,-1,getdate())
    or max(bs.backup_finish_date) is NULL;


Abraços e boa semana!
Breno Padovan