Office 365 – Listando as contas de e-mail com redirecionamento ativado via PowerShell

WindowsPowerShellOlá pessoal,

Um cliente que utiliza Office 365 me solicitou a lista de conta de e-mails do domínio da empresa com redirecionamento ativado, então eu aproveito e compartilho com vocês os cmdlets Powershell que eu utilizei para realizar esta consulta.

Salvem o código abaixo em um arquivo *.ps1 (ex: O365Redirect.ps1) e executem no PowerShell. Lembrando que será necessário ter credenciais de administrador no Office 365 para fazer esta consulta.

Set-ExecutionPolicy RemoteSigned

$UserCredential = Get-Credential

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

Import-PSSession $Session

Get-Mailbox | select UserPrincipalName,ForwardingSmtpAddress,DeliverToMailboxAndForward

Caso você opte por pesquisar apenas uma conta de e-mail específica substitua a ultima linha acima por esta abaixo:

Get-Mailbox -identity “user@dominio.com.br” | select UserPrincipalName,ForwardingSmtpAddress,DeliverToMailboxAndForward

Até a próxima!

PowerShell – Identificando os servidores Controladores de domínio utilizados pelo Exchange Server

WindowsPowerShellOlá pessoal,

Durante uma migração de Active Directory em um cliente, foi necessário verificar e garantir que o servidor Exchange Server estava pesquisando e utilizando os servidores Controladores de domínio e Global Catalog corretos para autenticação.

Para obter essa informação via PowerShell vamos executar o comando abaixo:

Get-ExchangeServer -Identity “servidor” -status | fl

Substitua “servidor” pelo nome do seu servidor Exchange Server nas versões 2007, 2010, 2013 ou 2016.

Até a próxima!

Listando os softwares instalados via PowerShell

WindowsPowerShellOlá pessoal,

Um cliente me solicitou uma forma de obter a listagem de softwares instalados em um servidor remoto via script. Existem diversas formas de fazer isso utilizando PowerShell. Eu compartilho abaixo 3 opções de comando que atendem a esta demanda que me foi apresentada.

wmic product get name,version

wmic

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

getwmiobject

gwmi Win32_Product

gwmi

Até a próxima!

Office 365 – Obtendo o tamanho das caixas de correio via PowerShell

WindowsPowerShellOlá pessoal,

Fui acionado por um cliente devido a uma conta de e-mail estar cheia, com a cota limite atingida. Aproveitei e executei os cmdlets Powershell que eu compartilho abaixo para obtenção do tamanho das caixas de correio criadas neste ambiente de Office365.

Salvem o código em um arquivo *.ps1 (ex: O365Cotas.ps1) e executem no PowerShell.

Set-ExecutionPolicy RemoteSigned

$UserCredential = Get-Credential

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

Import-PSSession $Session

get-mailbox | get-mailboxstatistics | ft displayname, totalitemsize

Até a próxima!

Exchange Server – Alguns comandos PowerShell para gerência dos databases

Olá pessoal,

WindowsPowerShellHoje eu compartilho com vocês alguns comandos PowerShell bastante úteis para gerencia e suporte em ambientes com Exchange Server na rede.

Para obter informações sobre cada mailbox existente em todos os databases em um servidor Exchange, execute:

Get-MailboxStatistics

Para saber a quantidade exata de mailboxes criadas no Exchange Server execute, substituindo SERVIDOR, pelo nome do seu servidor:

Get-Mailbox -Server SERVIDOR | Measure-Object

Para identificar a quantidade de maiboxes criadas em cada database existente no Exchange, execute:

Get-Mailbox | Group-Object -Property:Database | Select-Object Name,Count | Sort-Object Name | Format-Table -Aut

Até a próxima!

Live Migration de máquina virtual no Hyper-V via PowerShell

WindowsPowerShellOlá pessoal,

Devido a necessidade de um cliente eu precisei automatizar o processo de Live Migration de máquinas virtuais baseadas no Hyper-V/Windows Server. Para isso utilizei os comandos PowerShell abaixo:

Primeiro devemos importar o módulo do Failover Cluster no equipamento onde os comandos serão executados:

Import-Module FailoverClusters

Após isso, para realizar o Live Migration de uma VM utilize:

Get-Cluster “Nome_do_Cluster” | Move-ClusterVirtualMachineRole -Name “Nome_da_máquina_virtual” -Node “Nome_do_nó_do Cluster”

Vejam o exemplo: Get-Cluster SRVCLUS01 | Move-ClusterVirtualMachineRole -Name SRV01 -Node SRVHV01

Será exibida uma barra de status do processo no prompt do PowerShell. Aguarde todo o processo e verifique no nó de destino se o processo ocorreu com sucesso e a máquina virtual está ok.

Até a próxima!

Veeam Backup and Replication – Listando os restore points das VMs via PowerShell

Olá pessoal,

VeeamLogoBrancoQuando um job de backup é criado no Veeam Backup and Replication, por padrão a política de retenção vem definida com 14 restore points, ou pontos de restauração.

Se trata de um ponto de atenção pois dependendo da política de retenção e do tamanho dos repositórios pode ser necessário alterar este valor.

Consideremos que o ambiente não tenha sido configurado por você e será nacessário identificar os restore points existentes no seu ambiente de backup, para isso utilize o cmdlet abaixo:

PS C:\PS> Get-VBRRestorePoint

Para listar os restores points de um job específico de backup de forma mais detalhada execute:

PS C:\> Get-VBRBackup -Name “NOME_DO_JOB_DE_BACKUP” | Get-VBRRestorePoint

Windows 10 – Alterando o perfil de rede de pública para privado via PowerShell

Olá pessoal,

um cliente estava tendo problemas de conectividade entre um notebook com Windows 10 e um computador com Windows 7. Verifiquei o notebook e a conexão de rede estava definida como pública conforme imagem abaixo:

W10ProfileRede01

Para alterar para rede privada, abra o Power Shell como administrador (elevado) e execute o comando Get-NetConnectionProfile para exibir as características da conexão e obter o valor do parâmetro InterfaceIndex, no caso desta interface de rede o valor é 16 conforme imagem a seguir. Notem também que o parâmetro NetworkCategory está definido como Public.

W10ProfileRede02

Para definir a conexão como privada digite o comando abaixo, considerando o parâmetro InterfaceIndex 16, da conexão em questão, execute o comando:

Set-NetConnectionProfile -InterfaceIndex 16 -NetworkCategory Private

Em seguida execute novamente Get-NetConnectionProfile e verifique o parâmetro NetworkCategory agora como Private.

W10ProfileRede03

Verificando a distribuição e versão do Linux via ssh

Olá pessoal,

Passei pela seguinte situação que compartilho com vocês. Acessei um servidor Linux remotamente via ssh e precisava saber a distribuição e versão (release) para poder realizar uma instalação correta de um agente.

Para obter o versionamento digite no shell:

cat /etc/*-release

Vejam abaixo o detalhamento do sistema operacional instalado neste servidor remoto:

Linux_Version

Espero ter ajudado! Bom trabalho para todos!

Hyper-V – PowerShell para obtenção de informações dos Volumes CSV

Olá pessoal,

WindowsPowerShellHoje eu deixo para vocês um script bastante útil que eu sempre utilizo para obter informações a respeito dos Volumes CSV (Cluster Shared Volume) apresentados aos clusters Hyper-V dos meus clientes e para enriquecer a documentação dos mesmos.

Com esse script você vai ter dados como Nome do CSV, Path, Tamanho, Espaço Livre, Espaço Ocupado e Porcentagem de espaço Livre. Vejam abaixo:

HyperVCsv

Copie o código abaixo, salve com a extensão *.ps1 (Exemplo: HyperV_CSVs.ps1) e executem em seus clientes.

Import-Module FailoverClusters

$objs = @()

$csvs = Get-ClusterSharedVolume
foreach ( $csv in $csvs )
{
$csvinfos = $csv | select -Property Name -ExpandProperty SharedVolumeInfo
foreach ( $csvinfo in $csvinfos )
{
$obj = New-Object PSObject -Property @{
Name = $csv.Name
Path = $csvinfo.FriendlyVolumeName
Size = $csvinfo.Partition.Size
FreeSpace = $csvinfo.Partition.FreeSpace
UsedSpace = $csvinfo.Partition.UsedSpace
PercentFree = $csvinfo.Partition.PercentFree
}
$objs += $obj
}
}

$objs | ft -auto Name,Path,@{ Label = “Size(GB)” ; Expression = { “{0:N2}” -f ($_.Size/1024/1024/1024) } },@{ Label = “FreeSpace(GB)” ; Expression = { “{0:N2}” -f ($_.FreeSpace/1024/1024/1024) } },@{ Label = “UsedSpace(GB)” ; Expression = { “{0:N2}” -f ($_.UsedSpace/1024/1024/1024) } },@{ Label = “PercentFree” ; Expression = { “{0:N2}” -f ($_.PercentFree) } }

Até a próxima!