2012 Was A Great Year, 2013 Looks Great

Well the end of 2012 is approaching fast and we’re about to dim the lights a bit for the festivities. 2012 was a great and action packed year.

Being awarded with the MVP title turned out to be an awesome experience. The MVP summit, the frequent interactions with colleagues and Microsoft employees, … I learnt so much form that and them that I feel privileged to be part of that ecosystem. It makes me feel I stand on the shoulders of giants. We teamed up informally and delivered some top notch sessions on Windows Server 2012 Hyper-V, learning again form each other and the questions and feedback of our audience. I met a lot of people and “networked” all over the planet.

Locally I Belgium my involvement in MEET offered me to some new opportunities like public speaking and introduced me to some great an knowledgeable experts while helping put and sharing knowledge. Thanks Arlindo!

Then there was my team, that bunch of great, smart, hardworking people who make a big difference in job appreciation. This year has had its challenges, but they’re a real crew alright. They were also there at crunch time, standing tall and saving a business. Twice for good measure.

We deployed a new storage infrastructure (DELL, Compellent), rolled out Windows Server 2012, transitioned our clusters, got  backup hardware in place etc. All this as part of an ever to deliver more value at less cost. We still have a lot to do. Not just operational but also optimizing ROI, TCO and seeing where we can replace products and software that fails to deliver value for money. Trust me, telling me that your solution is best of breed, industry leader doesn’t cut it. In this economy even less so, you deliver value and keep delivering value or the bell tolls for thee. 2013 is shaping up to be yet another a busy and interesting year.

It looks like we’ll learn a lot, work a lot, an have fun doing so. I feel truly fortunate to be able to have a good, interesting job that I enjoy.  So let’s go for another great year in 2013 Smile. I whish you all the very best for 2013!

What New Years Gift For IT Professionals? The Windows Server 2012 Hyper-V Installation And Configuration Guide!

Aidan Finn, Damian Flynn, Patrick Lownds and Michel Luescher wrote a reference work about Windows Server 2012 Hyper-V.

image

I kindly suggest that you add this to your professional library as soon as possible. Unless you’re part of our IT Pro team, who’ll find a couple of copies on their desk as soon as Amazon can deliver them, you’ll need to ask Santa Claus to bring you one. If Santa Claus doesn’t like you, buy it yourself. For the help you’ll get out of this it’s a steal. You see, I know the authors and a reviser (Hans Vredevoort). And I assure you, reading what these guys have to tell on this subject is truly standing on the shoulders of giants Smile.  Reading this book allows you to tap into their collective brainpower and knowledge on this subject, which is extensive. These guys are part of the Hyper-V community and they live in this stuff!

So if you want to learn about Windows Server 2012 Hyper-V fast and effectively grab this book (pre order it here on Amazon). It’s full of guidance, explanations, examples and scripts to get you going in the right direction from the moment you start working with Hyper-V. This is a career boosting (and protecting) guide for all of us to leverage.

Thank you guys!

TechDays 2013 Belgium

TechDays Early bird banner wide

 

In case you haven’t heard already, the Belgian edition of Microsoft TechDays 2013 has been announced.

image TechDays has established itself as a quality local event that delivers some great content. Speakers include top international but also some impressive local talent like Kurt Roggen, Michael Van Horenbeeck, Kim Oppalfens … So basically things are looking very promising both in quality and delivery of the content.

The good news is there is still time to register at the early bird rate. So don’t delay and register. You’re boss will be happy with your extra knowledge & value in these tough times, especially at reduced rates.

Monitoring Startup,Shutdown and restart of a Virtual machine With PowerShell 3.0

During scripting some maintenance PowerShell scripts for Hyper-V guests I felt the need for a more accurate way to monitor the startup of a virtual machine. Pings, telnet to a known open port it all doesn’t do the job accurately enough as I want to know when CTRL+AL+DEL appears on the screen. So I pinged Jeff Wouters who told me I could monitor Get-VM -Name DC01 | Get-VMIntegrationService  to detect when PrimaryStatusDescription goes to “OK”.

Now when you look at the Integration services there are 5 of them.

image

Which one is the best to use for our purpose? Well,I tested them out and after some experimenting with the various services I concluded that the PrimaryStatusDescription of the  Key-Value Pair Exchange works best for this purpose. All others become available a bit to soon in the process of starting a VM, which seems logical.

Monitor a starting virtual machine

So how to use this in a script? We’ll here’s a snippet to monitor the boot process of a guest.

$Vm = Get-VM "MyVM"
start-VM "$Vm"
#This means the VM is now shutting down ...    
$Counter = 0
$ProgressCount = 0
Do
{    
    $Operational = Get-VM -Name $VM | Get-VMIntegrationService -Name "Key-Value Pair Exchange"
    $Counter = $Counter + 1 
    $ProgressCount =  $ProgressCount +1
    $PercentComplete = ($ProgressCount * 20)
    Write-Progress -Activity "$VM" -status "VM starting up: $Status - Progressbar indicates activity, not a percent of completion: ($Counter Seconds)"  -percentComplete ($PercentComplete / 100 *100)
    if ($PercentComplete -gt 90) {$ProgressCount = 0}
    sleep 1
}
While ($Operational.PrimaryStatusDescription -ne "OK")
$Status = (Get-VM -Name $VM | Get-VMIntegrationService -Name "Key-Value Pair Exchange").PrimaryStatusDescription
Write-Progress -Activity "VM $VM is up and running" -status "VM status: $Status - We're done here. Completed in a total of $Counter seconds."  -percentComplete (100)

 

Monitor a stopping virtual machine

Likewise, sometime we want to monitor a VM shutting down, which is the same code as above but with reverse logic.

$Vm = Get-VM "MyVM"
stop-VM "$Vm"
$Counter = 0
$ProgressCount = 0
#This means the VM is now shutting down  in the retart cycle ...    
   Do
   {            
    $Operational = Get-VM -Name $Vm | Get-VMIntegrationService -Name "Key-Value Pair Exchange"
    $Counter = $Counter + 1 
    $Status = (Get-VM -Name $Vm | Get-VMIntegrationService -Name "Key-Value Pair Exchange").PrimaryStatusDescription
    $ProgressCount =  $ProgressCount + 1
    $PercentComplete = ($ProgressCount * 20)
    Write-Progress -Activity "$VM" -status "VM shutting down : $Status - Progressbar indicates activity, not a percent of completion: ($Counter Seconds)"  -percentComplete ($PercentComplete / 100 *100)
    if ($PercentComplete -gt 90) {$ProgressCount = 0}
    sleep 1
   }
   While ($Operational.PrimaryStatusDescription -eq "OK")
   $Status = (Get-VM -Name $Vm | Get-VMIntegrationService -Name "Key-Value Pair Exchange").PrimaryStatusDescription
   Write-Progress -Activity "VM $Vm has now been shutdown" -status "VM status: $Status - We're done here. Completed in a total of $Counter seconds."  -percentComplete (100)

Monitor a restarting a virtual machine.

When in a PowerShell script you want to monitor progress of a virtual machine restarting you can combine both. You monitor shutdown and you monitor startup.

$VmThatRestarts = Get-VM "MyVM"
#Restart the VM
#This means the VM is now shutting down  in the retart cycle ...
 $Counter = 0
 $ProgressCount = 0
Do
{            
    $Operational = Get-VM -Name $Vm | Get-VMIntegrationService -Name "Key-Value Pair Exchange"
    $Counter = $Counter + 1 
    $Status = (Get-VM -Name $Vm | Get-VMIntegrationService -Name "Key-Value Pair Exchange").PrimaryStatusDescription
    $ProgressCount =  $ProgressCount + 1
    $PercentComplete = ($ProgressCount * 20)
    Write-Progress -Activity "$VM" -status "VM restarting - Shutdown phase : $Status - Progressbar indicates activity, not a percent of completion: ($Counter Seconds)"  -percentComplete ($PercentComplete / 100 *100)
    if ($PercentComplete -gt 90) {$ProgressCount = 0}
    sleep 1
}
While ($Operational.PrimaryStatusDescription -eq "OK")
$Status = (Get-VM -Name $Vm | Get-VMIntegrationService -Name "Key-Value Pair Exchange").PrimaryStatusDescription
Write-Progress -Activity "VM $Vm has now been shutdown in restart cycle" -status "VM status: $Status - VM has shut down in $Counter Seconds"  -percentComplete (100)
   
#Any thing worthwhile is worth adding 1 second of waiting for good measure :-)
Sleep 1

#This means the VM is now starting  ...    
$ProgressCount = 0
Do
{    
    $Operational = Get-VM -Name $VM | Get-VMIntegrationService -Name "Key-Value Pair Exchange"
    $Counter = $Counter + 1 
    $ProgressCount =  $ProgressCount +1
    $PercentComplete = ($ProgressCount * 20)
    Write-Progress -Activity "$VM" -status "VM restarting - Startup phase: $Status - Progressbar indicates activity, not a percent of completion: ($Counter Seconds)"  -percentComplete ($PercentComplete / 100 *100)
    if ($PercentComplete -gt 90) {$ProgressCount = 0}
    sleep 1
}
While ($Operational.PrimaryStatusDescription -ne "OK")
$Status = (Get-VM -Name $VM | Get-VMIntegrationService -Name "Key-Value Pair Exchange").PrimaryStatusDescription
Write-Progress -Activity "VM $VM is up and running again" -status "VM status: $Status - We're done here. Completed in a total of $Counter seconds."  -percentComplete (100)

Note that in all the above snippets  I’ve thrown some logic in to us the progress bar as an activity bar as I know of no way to calculate real % done in a startup, shutdown, restart process. It looks something like this in ISE

image

or like this in a PowerShell prompt

image