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!

Realizando teste de conexão com um database SQL Server

Olá pessoal,

dica rápida para quem precisa validar/testar as credenciais de acesso a um banco de dados baseado no SQL Server.

A partir do PC/Notebook/Servidor com sistema operacional Windows, de onde será feito o teste de conexão, crie um arquivo txt sem conteúdo com nome, por exemplo, testedeconexao.txt

Renomeie este arquivo *.txt criado para a extensão *.udl, no exemplo então renomeie para testedeconexao.udl

Execute o arquivo testedeconexao.udl e será exibida a tela abaixo.

SQLTest1

Selecione o servidor para o qual deseja realizar o teste, defina as credenciais de acesso e para qual banco a tentativa de acesso será realizada. Após isso clique em Testar conexão.

SQLTest2

Até a próxima!

 

DHCP – Buscando reservas de IP via Mac Address

Olá pessoal,

estamos de volta após um intervalo de muito trabalho, eventos e atividades.

PromptComandoImaginem o seguinte cenário. Preciso descobrir se um determinado notebook possui reserva no servidor DHCP com Windows Server 2008 R2.

Como proceder?

Opção 1: Visualizar cada uma das inúmeras reservas criadas em busca do Mac Address do equipamento em questão.

Opção 2: Executar o comando abaixo no prompt do servidor DHCP:

netsh dhcp server dump | find /i”Endereço_Mac”

Exemplo: netsh dhcp server dump | find /i”681401a5b907″

Será feita uma consulta no servidor em busca de uma reserva, se houver será exibida, se não houver nada será mostrado.

Para obter a lista de todas as reservas criadas no servidor DHCP execute:

netsh dhcp server dump

Para facilitar a pesquisa e também documentar as reservas jogue o resultado para um arquivo através do comando abaixo:

netsh dhcp server dump >reservasdhcp.txt

Espero ter ajudado com mais uma dica útil para o nosso dia a dia de suporte e administração de servidores.

Até a próxima!

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

WSUS Setup Not Completed! Error 0x80070643

Olá pessoal,

Um cliente solicitou uma instalação de WSUS e disponibilizou um servidor Windows Server 2008 R2 para esta demanda. Pois bem, ativei a role, iniciei o setup e ocorreu o erro 0x80070643 impedindo o término do processo.

WSUSSetup1

Verificando o arquivo de log descrito acima identifiquei que o erro acontecia durante o setup do Windows Internal Database.

WSUSSetup2.png

Levantei o histórico da máquina em questão e descobri já havia sido feita uma instalação anterior, ou seja, o Windows Internal Database não foi removido corretamente. Para remover abra um prompt de comando e execute:

  • Em sistemas 32-bits: msiexec /x {CEB5780F-1A70-44A9-850F-DE6C4F6AA8FB} callerid=ocsetup.exe
  • Em sistemas 64-bits: msiexec /x {BDD79957-5801-4A2D-B09E-852E7FA64D01} callerid=ocsetup.exe

Além disso, desinstale se houver alguma versão do .NET Framework 4.6 ou superior.

Após realizar os procedimentos acima, reinicie o servidor e habilite a role do WSUS que desta vez ocorrerá com sucesso.

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!

WinUtilities – Limpeza e manutenção de máquinas com Windows

Olá pessoal,

mais uma dica de ferramenta útil para nós que trabalhamos com suporte e consultoria de TI, desta vez mais especificamente para quem atua prestando manutenção preventiva e corretiva em PCs e Notebooks com Windows.

A ferramenta de hoje se chama WinUtilities e além de ser gratuita disponibiliza uma série de opções para otimizar e limpar PCs com sistema operacional Windows, corrigindo problemas de lentidão, removendo elementos indesejáveis como aplicativos, malwares, spywares, remover itens não necessários no registro, além de resquícios de softwares já removidos. O WinUtilities também tem um utilitário bem interessante que faz uma varredura nas partições e monta um relatório com a visão da utilização do espaço em disco pelas pastas e arquivos.

Sem dúvida alguma o WinUtilities deve fazer parte do kit de ferramentas de todo técnico/analista/consultor de suporte.

Download e informações aqui.

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!

Fim do suporte da Microsoft ao Windows Server 2008 e SQL Server 2008

Olá pessoal,

Eu compartilho com vocês um vídeo que gravei a respeito do fim do suporte da Microsoft aos produtos SQL Server 2008/SQL Server 2008 R2 (09 de julho de 2019) e Windows Server 2008/2008 R2 (14 de Janeiro de 2020).

Assistam o vídeo e iniciem o planejamento para migração desses ambientes.

 

Substituindo Certificados no Exchange Server 2007

Olá pessoal,

Em tempos de computação em Cloud, serviços Online e em nuvem ainda existe aqui no Brasil uma enormidade de ambientes legados em empresas que pelas mais diversas razões não atualizaram os seus ambientes. De acordo com este cenário vejo inúmeras possibilidades e oportunidades de negócio para prestadores de serviços e consultores tanto para manter esses ambientes legados quanto para planejar uma atualização/migração de ambientes como esses. Em breve eu vou gravar um vídeo sobre este assunto.

WindowsPowerShellPois bem, recebi uma demanda de um cliente com serviços de e-mail baseados no Exchange Server 2007 e que precisava trocar um certificado expirado. Não vou abordar aqui o processo de geração do certificado, pois o mesmo já estava, mas sim o processo de importação no Exchange e no IIS.

Abra o Exchange Management Shell e execute o comando abaixo para importar o certificado:

Import-ExchangeCertificate -Path c:\certnew.cer

* certnew.cer é o nome do certificado gerado.

Para habilitar o certificado, execute:

Enable-ExchangeCertificate -Thumbprint <Thumbprint> -Services IIS
Copie o Thumbprint (Ctrl + C) para a memória e execute o comando abaixo para habilitar o certificado tanto no Exchange quanto no IIS (OWA):
Exch2007_Certificados_1
Para verificar se a importação ocorreu com sucesso execute:
Get-ExchangeCertificate |fl
Até a próxima!