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!

Office 365 – Script Power Shell para atribuição/remoção de permissões em caixas de correio

Olá pessoal,

WindowsPowerShellhoje compartilho com vocês um script indispensável para todo administrador do Office 365. Este script atribui permissões de administrador as caixas de correio existentes. Imaginem o cenário em que você está entrando em uma empresa e precisa atribuir a sua conta como administrador de todas as caixas de correio da sua empresa criadas no Office 365, ou então você precisa remover um usuário que esteja como administrador das contas. Esta situação aconteceu comigo e este script foi bastante útil.

Set-ExecutionPolicy RemoteSigned

$UserCredential = Get-Credential (Credenciais de administrador do Office 365)

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

Import-PSSession $Session

Para atribuir permissão FULL ACCESS para um administrador/usuário do Office 365 em todas as caixas de correio

Add-MailboxPermission -Identity Mailboxname -User Username -AccessRight FullAccess -Automapping $false

Para remover permissão FULL ACCESS para um administrador/usuário do Office 365 em todas as caixas de correio:

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq “UserMailbox”} | Remove-MailboxPermission -User email@empresa.com.br -AccessRights FullAccess -InheritanceType All

Até a próxima!