ADM de Redes

Um Blog sobre o dia a dia do Administrator de Redes e Servidores Microsoft

By

Guns and Roses em seu Powershell! Será que isso é muito Nerd?

Olá Pessoal,

Andando pelo Facebook, encontrei esse post do Daniel Donda, falando sobre criar sons (beeps) no PC com Powershell e achei Fantástico! E obviamente, eu ia tentar fazer alguma coisa também. Bom, quem me conhece, sabe que gosto muito de Guns and Roses, logo, mãos à obra…

#Intro

[console]::beep(250,200)

[console]::beep(500,250)

[console]::beep(380,250)

[console]::beep(330,250)

[console]::beep(680,250)

[console]::beep(250,250)

[console]::beep(630,250)

[console]::beep(500,250)

[console]::beep(250,200)

[console]::beep(500,250)

[console]::beep(380,250)

[console]::beep(330,250)

[console]::beep(680,250)

[console]::beep(250,250)

[console]::beep(630,250)

[console]::beep(500,250)

[console]::beep(350,200)

[console]::beep(500,250)

[console]::beep(380,250)

[console]::beep(330,250)

[console]::beep(680,250)

[console]::beep(250,250)

[console]::beep(630,250)

[console]::beep(500,250)

[console]::beep(350,200)

[console]::beep(500,250)

[console]::beep(380,250)

[console]::beep(330,250)

[console]::beep(680,250)

[console]::beep(250,250)

[console]::beep(630,250)

[console]::beep(500,250)

[console]::beep(350,200)

[console]::beep(500,250)

[console]::beep(380,250)

[console]::beep(330,250)

[console]::beep(680,250)

[console]::beep(250,250)

[console]::beep(630,250)

[console]::beep(500,250)

[console]::beep(350,200)

[console]::beep(500,250)

[console]::beep(380,250)

[console]::beep(330,250)

[console]::beep(680,250)

[console]::beep(250,250)

[console]::beep(630,250)

[console]::beep(500,250)

[console]::beep(250,2000)

Start-Sleep -m 400

#Solo

[console]::beep(450,300)

[console]::beep(400,600)

[console]::beep(380,600)

[console]::beep(450,300)

[console]::beep(400,600)

[console]::beep(380,650)

[console]::beep(450,300)

[console]::beep(400,600)

[console]::beep(335,600)

[console]::beep(450,300)

[console]::beep(400,600)

[console]::beep(335,600)

[console]::beep(450,300)

[console]::beep(400,800)

[console]::beep(500,400)

[console]::beep(400,250)

[console]::beep(450,400)

[console]::beep(400,200)

[console]::beep(600,400)

[console]::beep(400,200)

[console]::beep(380,1000)

Faça o seguinte:

1 – Copie todo o texto acima para um Notepad.
2 – Salve o arquivo como musica.ps1.
3 – Clique com o botão direito do mouse no arquivo e clique em “Run with Powershell”

Não peguei para ouvir a música, então com certeza as notas estão erradas, mas dá para identificar, não?
Qual é a música maestro?!?!?! Rs…

Até mais!

By

Refazendo ambiente de Demonstrações do ITCamp – Viva o Powershell

Olá Pessoal,

Esta semana decidi que é hora de começar a arrumar a casa para os próximos ITCamps, para que possamos mostrar as novidades do Windows Server 2012 R2. E como toda vez que precisamos arrumar a casa, ou seja, nosso ambiente de laboratório, algumas tarefas se tornam repetitivas. Não me entende mal, uma das coisas que mais gosto de fazer é instalar esses ambientes, testar novos recursos e etc, mas algumas tarefas são realmente repetitivas e cansativas. A principal delas é a criação de VMs. E no meu caso, é um pouco mais complicado, pois para economizar espaço em disco, meu ambiente de demonstração é praticamente todo com VMs com discos diferenciais. Basicamente, o processo que tenho que fazer para criar uma VM é:

(Veja que antes do processo abaixo, eu criei um disco de template com Windows Server 2012 R2. Para isso, eu criei uma VM inicial e após a instalação do Windows Server 2012 R2 eu rodei o sysprep com opção de OOBE, Generalize e Shutdown marcados. Deletei a VM e preservei o VHDX. Esse é o meu template que é referenciado abaixo)

1- Criar a VM no Host que pretende colocar a VM, mas criar a VM sem disco.
2- Abrir as propriedades da VM e criar um disco Diferencial apontando o disco Template como Parent.
3- Aplicar as configurações.

O processo é relativamente simples, mas fazê-lo todas as vezes que você precisa criar uma VM é, digamos, chato. Para isso, eu criei um script Powershell que queria compartilhar com vocês:

$ComputerName = “Host02
$GenerationType = “1
$MemoryGB = “1073741824#4GB
$VMName = “SRV-DC02
$VMPath = “C:\VMStore\
$VMSwitch = “External Network
$VHDParentPath = “C:\VMStore\WS2012R2-Template.vhdx
$VHDName = “\disk01.vhdx
$VHDPath = $VMPath+$VMName+$VHDName
[int64]$SizeBytes = “127
$ControllerType = “IDE
$ControllerNumber = “0

#Creates the VM with no VHD attached to boot from
New-VM -ComputerName $ComputerName -Generation $GenerationType -Me
moryStartupBytes $MemoryGB -Name $VMName -NoVHD -Path $VMPath -SwitchName $VMSwitch
#Creates the 127GB differential VHDX inside the VM folder using a parent VHDX file
New-VHD –ParentPath $VHDParentPath –Path $VHDPath -Differencing -SizeBytes ($SizeBytes * 1073741824) -ComputerName $ComputerName
#Attach the VHDX created above to the VM created
Add-VMHardDiskDrive -VMName $VMName -Comput
erName $ComputerName -ControllerType $ControllerType -ControllerNumber $ControllerNumber -Path $VHDPath

Você pode copiar o texto acima e salvar como um arquivo .PS1 para execução posterior. Veja que para o script acima funcione você tem que ter no Host de Virtualização uma pasta chamada “C:\VMStore\” e dentro desta pasta colocar o arquivo template VHDX. Além disso, é importante alterar os valores das variáveis declaradas para ficar compatível com o seu ambiente. Você pode modificar o script de acordo com o que você precisar. Basicamente o que ele faz é:

Linha 1: #Creates the VM with no VHD attached to boot from
Esta Linha irá criar uma VM no host especificado dentro da pasta C:\VMStore\. Essa VM estará sem disco de Boot e terá 4GB de Ram. Além disso, a VM estará conectada à rede chamada “External Network”. (Veja que o switch virtual deve ser criado antes!)

Linha 2: #Creates the 127GB differential VHDX inside the VM folder using a parent VHDX file
Essa linha do script irá criar um VHDX diferencial de 127GB utilizando o Template do Windows Server 2012 R2

Linha 3: #Attach the VHDX created above to the VM created
Esta linha irá vincular o VHDX criado na VM criada.

Espero que tenham gostado da dica e que o script ajude nos seus laboratórios!
Até mais!

By

Drops 2012 #06 – Powershell Web Access com WP, Android e iPad!

Olá Pessoal,

Espero que gostem!
Até mais!

By

Behind the Scenes… 256 Discos de 64TB por VM…

Olá Pessoal,

Eu havia prometido colocar aqui no Blog, como eu configurei uma Maquina Virtual com 256 discos virtuais e cada disco com 64TB. Isso foi mostrado no lançamento do Windows Server 2012 aqui no Brasil e chamou bastante a atençao.

Antes de mostrar, vamos entender algumas coisas:

- Em primeiro lugar, ter 256 discos não é uma novidade do Windows Server 2012. A novidade é que cada disco pode ter 64TB. Isso é possível graças ao novo formato de arquivo de disco virtual do WS2012. Com o formato VHDX, você pode ter um disco virtual de até 64TB sem corromper o arquivo.

- No Hyper-V, você tem controladoras de disco virtual IDE e SCSI. No caso das controladoras SCSI, cada controladora pode ter 64 disco. Como você pode ter 4 controladoras, no total você tem 256 discos.

- Não é necessário desligar a VM para adicionar discos. Porém, para adicionar mais uma controladora, é preciso. Então, antes de começar a colocar discos, tenha certeza que a VM já tem 4 controladores SCSI.

- Se você verificar, 256 discos de 64TB cada, dá um total de 15.6PB (PetaBytes). O que as pessoas mais me perguntaram foi: Qual Storage eu utilizei para isso? Bom, na verdade eu utilizei o proprio disco local do meu Notebook para essa demonstração. A questão toda é que os discos da demonstração são discos dinâmicos. Veja que se necessário, eles irão crescer até 64TB cada. Mas eu não utilizei nenhum deles, logo, o espaço consumido foi mínimo.

Bom, agora vamos a prática. Se você já criou discos adicionais em uma VM sabe que a criação de cada disco, via interface gráfica do Hyper-V demora um certo tempo, além de ser uma tarefa repetitiva. Logo, a melhor opção para fazer isso é, obviamente, Powershell.

Através da interface PowerShell ISE, foi possível criar um script powershell que criasse o disco e vinculasse o disco à Máquina Virtual. Abaixo, está o script que eu utilizei:

$filepath = “C:\VHDStore\”
$filename = “VHD00″
$serverName = “SRV-01″
$controllerNumber = “0″
[int64]$vHDSizeGB = “64000″
$vHDFormat = “vhdx”
$vHDType = “Dynamic”
$numberofVHDs = “64″


for ($i=1;$i -le $numberofVHDs; $i++){
     
     $vHDPath = $filePath + $fileName + $i + “.” + $vHDFormat
     New-VHD -Path $vHDPath -SizeBytes ($vHDSizeGB * 1073741824) -Dynamic
     Add-VMHardDiskDrive -VMName $serverName -ControllerType SCSI -ControllerNumber $controllerNumber -Path $vHDPath
     }

Explicando rapidamente, o primeiro bloco, cria as variáveis necessárias para os comandos. Neste bloco, você vai colocar o nome de servidores, e caminhos do seu ambiente.

Na segunda parte, a função for (Para) executa os comandos por 64 vezes (Número de Discos suportado por SCSI Controller), incrementando o valor da variável $i cada vez que é executado.

Bom, é isso. Espero que tenham gostado da dica!
Até mais!