Veeam Backup & Replication 10 – Gerenciamento de licença via CLI

Olá pessoal,

Podemos gerenciar a licença do Veeam Backup & Replication através de linha de comando. Para isso, no servidor onde o Veeam está instalado vamos abrir o PowerShell e executar os comandos abaixo.

Para instalar uma nova licença (no exemplo abaixo, vamos considerar que a licença está na pasta Documentos do usuário Administrador):

Install-VBRLicense -Path “C:\Users\Administrador\Documents\veeam_backup.lic”

Para verificar o status da licença instalada:

Get-VBRInstalledLicense

Para remover a licença instalada:

Uninstall-VBRLicense

Podemos realizar todas essas operações via Console do Veeam Backup, clicando no Menu – License

Até a próxima!

Instalação/atualização para o PowerShell 7.0.3 no Windows 10

Olá pessoal,

Ao executar o PowerShell em um dos notebooks com Windows 10 que eu utilizo foi exibida uma mensagem que uma nova release 7.0.3 estava disponível. Neste caso específico, a versão do PS instalada era a 7.0.2.

A versão do PowerShell é exibida assim que a ferramenta é executada mas se você precisar descobrir remotamente a versão do PS em uma máquina ou até mesmo colocar em um script, você pode utilizar o comando abaixo para identificar a versão:

Get-Host | Select-Object Version

Identificando a versão do PowerShell

Para instalar ou atualizar para a versão mais atual do PowerShell (v7.0.3) execute o comando abaixo:

iex “& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI”

Será feito o download dos pacotes e em seguida exibido o assistente de instalação. Basta seguir os passos descritos na sequência de imagens abaixo:

Feito isso, temos a versão mais recente do PowerShell no PC/Notebook com Windows 10.

Até a próxima!

Identificando o tipo de disco no Windows e no Mac via linha de comando

Olá pessoal,

você já recebeu um equipamento para manutenção e precisa saber se o disco instalado na máquina é um HD convencional ou SSD? Sim, existem diversas ferramentas gráficas que podem fazer esse tipo de consulta, mas como obter essa informação via linha de comando sem a necessidade de instalar qualquer programa de terceiros?

Vou demonstrar como fazer no Windows e no macOS.

No Windows:

Abra o Powershell e execute o comando Get-PhysicalDisk

WINDOWS_SSD_POWERSHELL_3

Para o obter as informações de forma mais resumida, execute Get-PhysicalDisk | Select FriendlyName, MediaType

WINDOWS_SSD_POWERSHELL_4

No macOS:

Abra o Terminal e execute o comando diskutil info disk0 (considerando que tem apenas um disco em seu Mac. Se houverem mais basta mudar a numeração, 1, 2 e assim por diante.

MAC_SSD_TERMINAL_2

Até a próxima!

Hyper-V: Shutdown em todas as VMs via PowerShell

Olá pessoal,

WindowsPowerShellDe tempos em tempos eu preciso instalar as atualizações do Windows Update em um host Hyper-V baseado em Windows Server 20126 de um cliente. Antes de iniciar o processo eu desligo as máquinas virtuais (VMs) utilizando um script que eu vou compartilhar aqui com vocês. Com as VMs desligadas eu faço a atualização e em seguida reinicio o Host.

Antes de mais nada, execute o PowerShell no servidor e verifique o status das máquinas virtuais que estão rodando neste servidor utilizando o cmdlet abaixo:

Get-VM

Em seguida, utilize o script abaixo para desligar todas as máquinas virtuais que estejam ligadas:

[cmdletbinding()]
Param($vmhost = ‘NOME_DO_HOST’)
$runningVM = Get-VM -ComputerName $vmhost| where state -eq ‘running’
foreach ($cn in $runningVM)
{Stop-VM $cn.name -asjob}

Cole o código acima em um bloco de notas, substitua NOME_DO_HOST, pelo nome do seu servidor, e salve como por exemplo, Shutdown_VMs.ps1

Após isso execute o arquivo criado no PowerShell.

Será criado um job de desligamento por vm, no meu caso são 8 VMs neste servidor:

HyperV_PS_ShutdownVMs_1

Após isso execute novamente o cmdlet Get-VM para verificar o status das VMs:

HyperV_PS_ShutdownVMs_2

Podemos verificar também o status através do Gerenciador do Hyper-V, conforme imagem abaixo:

HyperV_PS_ShutdownVMs_3.1

Até a próxima!

Veeam Backup and Replication – Removendo servidor host da infra de Backup via PowerShell

Olá pessoal,

Seguindo a série de posts sobre gerenciamento do Veeam Backup and Replication via Linha de comando, hoje vou demonstrar como remover um servidor host da infraestrutura de backup utilizando cmdlet PowerShell.

Então primeiramente vamos executar o Veeam PowerShell clicando no Menu – Console – PowerShell conforme a imagem abaixo:

VEEAM_POWERSHELL

Com o shell aberto, execute o comando abaixo para remover o servidor host, seja VMWare ou Hyper-V da sua infraestrutura.

Get-VBRServer -Name IP_DO_SERVIDOR | Remove-VBRServer

Será solicitada uma confirmação, clique em s e o servidor será removido.

VeeamPSRemoveServer

Até a próxima!

Veeam Backup and Replication – Cancelando jobs em execução via PowerShell

Olá pessoal,

VeeamLogoBrancoSeguindo a série de posts sobre gerenciamento do Veeam Backup and Replication via PowerShell, hoje vou demonstrar como cancelar jobs em execução utilizando linha de comando.

Antes de mais nada vale citar que se optarmos por cancelar um job em modo gráfico temos como utilizar a opção para interromper imediatamente o job ou a opção em modo “gracefully”, ou seja, o Veeam Backup cria um ponto de restauração da VM cujo backup está sendo processado e finaliza o job. Via linha de comando isso não é possível. O cmdlet PowerShell interrompe o job imediatamente. Dito isso, mãos à obra:

Com o Veeam Backup and Replication aberto, execute o Veeam PowerShell clicando no Menu – Console – PowerShell conforme a imagem abaixo:

VEEAM_POWERSHELL

Com o Veeam Backup and Replication PowerShell Toolkit aberto, execute o seguinte comando para cancelar um job específico:

Get-VBRJob -Name “NOME_DO_JOB” | Stop-VBRJob

Neste caso o job “NOME_DO_JOB” será finalizado imediatamente.

Até a próxima!

Veeam Backup & Replication – Deletando backups via PowerShell

VeeamLogoBrancoOlá pessoal,

Hoje vou demonstrar como deletar jobs e backups no Veeam Backup and Replication via Powershell.

Primeiro vamos executar o Veeam PowerShell clicando no Menu – Console – PowerShell conforme a imagem abaixo:

VEEAM_POWERSHELL

Primeiramente vamos listar todos os jobs de backup criados neste servidor, para isso execute:

Get-VBRBackup

Após identificar os jobs, para deletar algum específico execute:

Get-VBRJob -Name “NOME_DO_JOB” | Remove-VBRJob

Neste caso o job será completamente deletado e caso necessário deverá ser reconfigurado novamente.

Para deletar o conteúdo de um backup sem remover o job:

Get-VBRBackup -Name “NOME_DO_JOB” | Remove-VBRBackup -FromDisk

Assim será deletado apenas o backup feito, mantendo o job configurado.

Até a próxima!

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!

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

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!

Habilitando e desabilitando o Hyper-V no Windows 10 via Power Shell

Olá pessoal,

WindowsPowerShellpor mais incrível que possa parecer ainda tem bastante gente que não sabe que é possível habilitar o Hyper-V (vejam os requisitos abaixo) em equipamentos com Windows 10 e usufruir assim de um robusto ambiente de testes.

Requisitos para instalação

  • Windows 10 Enterprise, Professional ou Education
  • Mínimo de 4 GB de memória.
  • Processador de 64 bits com SLAT (Conversão de Endereços de Segundo Nível).
  • Suporte da CPU para a Extensão do Modo de Monitor de VM (VT-c em CPU Intel).

Pois bem, eu estava com o Hyper-V desabilitado em meu notebook devido a uns testes que tive que realizar com o VMware Workstation e neste feriado precisei habilitar novamente, por isso compartilho com vocês aqui tanto o comando para habilitar o Hyper-V via Power Shell, bem como para desabilitar.

Para habilitar o Hyper-V em máquinas com Windows 10 executem:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Para desabilitar executem:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Até a próxima!

Verificando databases de caixa de correio no Exchange 2007 e 2010

Olá pessoal, WindowsPowerShellQuem acompanha o meu trabalho sabe que este blog é um grande bloco de notas onde além de postar sobre eventos, novidades, notícias e assuntos atuais, eu também procuro abordar o que chamado mundo real, demonstrando situações e cenários legados, com produtos e soluções antigas e ambiente legados.

Pois bem, neste final de semana acessei ambiente de correio eletrônico com Microsoft Exchange 2007 com uma série de contas de e-mail com cotas no limite. Vou deixar listados alguns comandos Power Shell simples e úteis para navegação em contas de e-mail em diferentes databases do Exchange.

Para visualizar todos os databases da organização do Exchange:

Get-MailboxDatabase

Para visualizar toda as contas de e-mail em um determinado database:

GetMailboxDatabase “Database_Exemplo” | GetMailbox

Para visualizar todas as contas de e-mail de um database com informações sobre o limite e ultimo logon:

GetMailboxDatabase “Database_Exemplo” | GetMailboxStatistics

Para obter o mesmo resultado acima porém com maiores detalhes, como tamanho total ocupado:

GetMailboxDatabase “Database_Exemplo” | GetMailboxStatistics | Sort totalitemsize desc | ft displayname, totalitemsize, itemcount

Lembrando que ainda existem muitas empresas com ambientes legados e a TI não vive apenas de inovação, mas também deve manter o que já existe.

Identificando a localização dos databases do Exchange via PowerShell

Olá pessoal,

Deixo uma dica rápida para quem administra servidores Exchange Server. Estive em um cliente com Exchange 2010 e não havia documentação a respeito da localização dos databases. Como identificar o path via Power Shell?

Execute o Exchange Management Shell e em seguida o comando abaixo.

Get-MailboxDatabase -Status | select edbfilepath

exchangepsdatabases2

Exportar informações das impressoras no Windows utilizando PowerShell

Olá pessoal,

Eu tive uma necessidade em um cliente de obter as informações referentes às impressoras configuradas nas estações de trabalho com Windows. Utilizando o PowerShell, podemos obter essa informação de uma forma simples e ainda gerar um arquivo *.csv para documentação utilizando a sintaxe abaixo:

Get-Printer | select Name, DriverName, PortName

powershellprinters

Para gerar o arquivo *.csv para documentar as impressoras execute:

Get-Printer | select Name, DriverName, PortName | Export-Csv Impressoras.csv -NoTypeInformation

Para facilitar, salve a sintaxe em um arquivo (ex: impressoras.ps1) e guarde o script.

Video – Verificando a versão do PowerShell no Windows Server

Olá pessoal,

precisei executar uma série de comando Powershell no servidor de um cliente (Windows Server 2008 R2), porém não foi possível devido à versão defasada do Powershell. Vejam abaixo como verificar a versão que está instalada no servidor.