Home » Posts tagged 'HP EliteBook'

Tag Archives: HP EliteBook

Building an IT Camp with PowerShell

I have been telling people for a couple of years that if they want to ensure a good future in the IT field there are two things to learn: System Center and PowerShell.  I unfortunately am quite good with one, but have been referring to myself as a scripting luddite for quite some time.  It is just something that I have not had the chance to learn.  After all, as a trainer and (Virtual) Evangelist I have not really had a lot of opportunity to get my hands on the type of environment where it would come in handy.

Recently I was in a conversation with a colleague who was complaining that he was too busy all of the time, and was really not enjoying his job because he hardly had time to breathe.  I asked him what sort of tasks he did on a regular basis, and when he told me my answer was simple: ‘If you have to do a task only once, do it manually.  If you might have to do it twice or more… automate it.’  In other words, learn PowerShell.

As I walked away from that meeting I realized that I was a hypocrite.  I built the labs for my course, From Virtualization to the Private Cloud, by hand, and every time I had to rebuild the environment I was doing it manually.  Considering the scope of what was involved I was not only being a hypocrite, I was being stupid.

Time is money, and time wasted is money lost.  I was scheduled to teach a four hour seminar on Hyper-V at the end of last week, and I decided that I was going to include some PowerShell management into that session.  I sat down and learned the basics, and that resulted not only in a better for the attendees last Friday, but also in an article titled Managing Hyper-V Virtual Machines with Windows PowerShell.  I started with some basics, how to start and stop VMs, how to check the VM memory, things like that.  I then expanded into creating a virtual machine, and adjusting the settings for it.  I was thrilled to be able to do all of this from the command line.

Okay, that was great, but now I needed to create a script that would really help me.  I knew there wouldn’t be anything on-line that would be exactly what I needed, but I was sure I would find the basics out there.  I found a great article by Neil Tucker on how he builds a couple of virtual machines for his course 50331 (Windows 7, Enterprise Desktop Support Technician).  Neil’s article gave me the basic framework for what I would come up with, including how to set variables for different VMs such as name, memory, and hard drive size.  It even went so far as to attach the proper ISO file to each VM and installs the OS using answer files.  As I already have my hard drives built I didn’t need that… but I was going to take things a little farther than Neil did.

I needed to build a script that would build nine virtual machines, each of which has its own special requirements.  I also needed to ensure that they would be connected to a virtual switch (which I would have to build as well if it wasn’t already there).

Although strictly speaking I do not need my script to create the VHDX files for me, I do want to make sure that each VM will connect to my pre-created virtual hard drive files, so I wrote the script to go through the motion of creating them in the correct place; I can then simply copy over them.

Up to now I have delivered the course on standard laptops (HP EliteBook 8570w with 32GB RAM).  However this likely would not be the case going forward, so it was important that I write the script so that I could easily provision new hardware with the course.


  1. Create a virtual switch for the course (check to see that it does not already exist)
  2. Create a repository for all course virtual machines and virtual hard disk files to reside
  3. Create nine virtual machines, each with their own settings for dynamic memory, CPUs.
  4. Connect all virtual machines to the virtual network switch
  5. (For extra credit) attach the appropriate OS DVD to each virtual machine
  6. Start all of the virtual machines.

While I thought about allowing the person running the script to choose their VM names, I decided that this would make it confusing for attendees running the courseware labs, where I have set the VM names appropriately.

Here is what I came up with:

# Script to recreate the infrastructure for the course From Virtualization to the Private Cloud (R2).
# This script should be run on Windows Server 2012 R2.
# This script is intended to be run within the Boot2VHDX environment created by Mitch Garvis
# All VMs will be configured for Windows Server 2012 R2 unless otherwise stated

# Variables

$ADM = “Admin”                # VM running Windows 8.1 (for Administration)
$ADMMIN = 512MB                # Minimum RAM for Admin
$ADMMAX = 2GB                # Maximum RAM for Admin
$ADMVHD = 80GB                # Size of Hard Drive for Admin

$DC1 = “DC1”                # VM (Domain Controller) (Windows Server Core)
$DC1MIN = 512MB                # Maximum RAM assigned to DC1
$DC1MAX = 2048MB            # Maximum RAM assigned to DC1
$DC1VHD = 30GB                # Size of Hard Drive for DC1

$SQL = “SQL”                # VM (SQL Server)
$SQLMIN = 2048MB            # Minimum RAM assigned to SQL
$SQLMAX = 8192MB            # Maximum RAM assigned to SQL
$SQLCPU = 2                # Number of CPUs assigned to SQL
$SQLVHD = 200GB                # Size of Hard Drive for SQL

$STOR = “Storage”            # VM (Storage Spaces, iSCSI Target)
$STORMIN = 512MB             # Minimum RAM assigned to Storage
$STORMAX = 2048MB             # Maximum RAM assigned to Storage
$STORVHD = 30GB                # Size of first Hard Drive for Storage
$STORVHD2 = 100GB            # Size of second Hard Drive for Storage
$STORVHD3 = 100GB            # Size of third Hard Drive for Storage

$VMM = “VMM”                # VM (System Center Virtual Machine Manager)
$VMMMIN = 2048MB             # Minimum RAM assigned to VMM
$VMMMAX = 8192MB             # Maximum RAM assigned to VMM
$VMMCPU = 2                 # Number of CPUs assigned to VMM
$VMMVHD = 100GB                # Size of Hard Drive for VMM

$OM = “OpsMgr”                # VM (System Center Operations Manager)
$OMMIN = 2048MB             # Minimum RAM assigned to OpsMgr
$OMMAX = 8192MB             # Maximum RAM assigned to OpsMgr
$OMCPU = 2                 # Number of CPUs assigned to OpsMgr
$OMVHD = 100GB                # Size of Hard Drive for OpsMgr

$ORC = “Orchestrator”             # VM (System Center Orchestrator)
$ORCMIN = 2048MB            # Minimum RAM assigned to Orchestrator
$ORCMAX = 8192MB             # Maximum RAM assigned to Orchestrator
$ORCCPU = 2                 # Number of CPUs assigned to Orchestrator
$ORCVHD = 100GB                # Size of Hard Drive for Orchestrator

$SM = “SrvMgr”                 # VM (System Center Service Manager)
$SMMIN = 2048MB             # Minimum RAM assigned to Service Manager
$SMMAX = 8192MB             # Maximum RAM assigned to Service Manager
$SMCPU = 2                 # Number of CPUs assigned to Service Manager
$SMVHD = 100GB                # Size of Hard Drive for Service Manager

$VCS = “vCenter”             # VM (vSphere vCenter Cerver) (Windows Server 2008 R2)
$VCSMIN = 2048MB             # Minimum RAM assigned to vCenter
$VCSMAX = 4096MB             # Maximum RAM assigned to vCenter
$VCSCPU = 2                 # Number of CPUs assigned to vCenter
$VCSVHD = 200GB                # Size of Hard Drive for vCenter

$VMLOC = “C:\HyperV”            # Location of the VM and VHDX files

$NetworkSwitch1 = “CorpNet”        # Name of the Internal Network

$W81 = “E:\ISOs\Windows 8.1 E64.iso”            # Windows 8.1 Enterprise
$WSR2 = “E:\ISOs\Windows Server 2012 R2.iso”        # Windows Server 2012 R2
$W2K8 = “E:\ISOs\Windows Server 2008 R2 SP1.iso”    # Windows Server 2008 R2 SP1

# Create VM Folder and Network Switch
MD $VMLOC -ErrorAction SilentlyContinue
$TestSwitch1 = Get-VMSwitch -Name $NetworkSwitch1 -ErrorAction SilentlyContinue; if ($TestSwitch1.Count -EQ 0){New-VMSwitch -Name $NetworkSwitch1 -SwitchType Internal}

# Create Virtual Machines
New-VM -Name $ADM -Path $VMLOC -MemoryStartupBytes $ADMMIN -NewVHDPath $VMLOC\$ADM.vhdx -NewVHDSizeBytes $ADMVHD -SwitchName $NetworkSwitch1
Set-VM -Name $ADM -DynamicMemory -MemoryMinimumBytes $ADMMIN -MemoryMaximumBytes $ADMMAX

New-VM -Name $DC1 -Path $VMLOC -MemoryStartupBytes $DC1MIN -NewVHDPath $VMLOC\$DC1.vhdx -NewVHDSizeBytes $DC1VHD -SwitchName $NetworkSwitch1
Set-VM -Name $DC1 -DynamicMemory -MemoryMinimumBytes $DC1MIN -MemoryMaximumBytes $DC1MAX

New-VM -Name $SQL -Path $VMLOC -MemoryStartupBytes $SQLMIN -NewVHDPath $VMLOC\$SQL.vhdx -NewVHDSizeBytes $SQLVHD -SwitchName $NetworkSwitch1
Set-VM -Name $SQL -DynamicMemory -MemoryMinimumBytes $SQLMIN -MemoryMaximumBytes $SQLMAX -ProcessorCount $SQLCPU

New-VM -Name $STOR -Path $VMLOC -MemoryStartupBytes $STORMIN -NewVHDPath $VMLOC\$STOR.vhdx -NewVHDSizeBytes $STORVHD -SwitchName $NetworkSwitch1
Set-VM -Name $STOR -DynamicMemory -MemoryMinimumBytes $STORMIN -MemoryMaximumBytes $STORMAX

New-VM -Name $VMM -Path $VMLOC -MemoryStartupBytes $VMMMIN -NewVHDPath $VMLOC\$VMM.vhdx -NewVHDSizeBytes $VMMVHD -SwitchName $NetworkSwitch1
Set-VM -Name $VMM -DynamicMemory -MemoryMinimumBytes $VMMMIN -MemoryMaximumBytes $VMMMAX -ProcessorCount $VMMCPU

New-VM -Name $ORC -Path $VMLOC -MemoryStartupBytes $ORCMIN -NewVHDPath $VMLOC\$ORC.vhdx -NewVHDSizeBytes $ORCVHD -SwitchName $NetworkSwitch1
Set-VM -Name $ORC -DynamicMemory -MemoryMinimumBytes $ORCMIN -MemoryMaximumBytes $ORCMAX -ProcessorCount $ORCCPU

New-VM -Name $OM -Path $VMLOC -MemoryStartupBytes $OMMIN -NewVHDPath $VMLOC\$OM.vhdx -NewVHDSizeBytes $OMVHD -SwitchName $NetworkSwitch1
Set-VM -Name $OM -DynamicMemory -MemoryMinimumBytes $OMMIN -MemoryMaximumBytes $OMMAX -ProcessorCount $OMCPU

New-VM -Name $SM -Path $VMLOC -MemoryStartupBytes $SMMIN -NewVHDPath $VMLOC\$SM.vhdx -NewVHDSizeBytes $SMVHD -SwitchName $NetworkSwitch1
Set-VM -Name $SM -DynamicMemory -MemoryMinimumBytes $SMMIN -MemoryMaximumBytes $SMMAX -ProcessorCount $SMCPU

New-VM -Name $VCS -Path $VMLOC -MemoryStartupBytes $VCSMIN -NewVHDPath $VMLOC\$VCS.vhdx -NewVHDSizeBytes $VCSVHD -SwitchName $NetworkSwitch1
Set-VM -Name $VCS -DynamicMemory -MemoryMinimumBytes $VCSMIN -MemoryMaximumBytes $VCSMAX -ProcessorCount $VCSCPU

# Configure Virtual Machines
Set-VMDvdDrive -VMName $ADM -Path $W81
Set-VMDvdDrive -VMName $DC1 -Path $WSR2
Set-VMDvdDrive -VMName $SQL -Path $WSR2
Set-VMDvdDrive -VMName $STOR -Path $WSR2
Set-VMDvdDrive -VMName $VMM -Path $WSR2
Set-VMDvdDrive -VMName $OM -Path $WSR2
Set-VMDvdDrive -VMName $ORC -Path $WSR2
Set-VMDvdDrive -VMName $SM -Path $WSR2
Set-VMDvdDrive -VMName $VCS -Path $W2K8

Start-VM $ADM
Start-VM $DC1
Start-VM $SQL
Start-VM $STOR
Start-VM $VMM
Start-VM $OM
Start-VM $ORC
Start-VM $SM
Start-VM $VCS

Please remember that until a little under a week ago I had not written a single script longer than a couple of lines.  While I am sure there are efficiencies that can be improved upon, I don’t think it’s too bad for a first go at it.

So now that I am scripting, what do you think you could come up with?  The way I see it, if I could do it… anyone can!

Windows 8 Experience Index… What it means and how to check it

SNAGHTML30c0a5cSix years ago Microsoft introduced the Windows Experience Index, a better way to measure the actual speed of computers, rather than simply relying on the single measurement of the CPU speed.

Although it really is more complicated than this, Microsoft has broken the speed of a computer down to five components: CPU, RAM, graphics and gaming graphics, and hard drive speed.  In Vista and then Windows 7 each of these was measured on a scale from 1.0-7.9.  In Windows 8 this has been changed to a scale from 1.0 to 9.9.

If you upgrade your computer from Windows 7 to Windows 8 then you will notice that your WEI has dropped; that’s because Microsoft realizes that newer hardware is available, and the hardware that was top of the line three years ago is now a bit longer in the tooth.

Each of the measurements has its own subscore, but the truth is that the speed of your computer is determined by the slowest of these – i.e.: the bottleneck.  So the Base Score of your computer – the one in the big blue square – is not a calculation or an average of the others, it is the lowest subscore from the five.

As you can see from the screenshot I took from my own laptop (an HP EliteBook 2740p) my Base Score is a 4.3.  As a business user I don’t see a particular need to invest in a machine with high-end graphics (especially pricy in laptops).  I don’t play games, and to watch the occasional movie all I need is a simple video card.  I am more concerned with the CPU, RAM, and hard drive performance in my system, and with these subscores at 6.8 and 7.7 I am very pleased with the laptop’s performance.

If you would like to check your Windows Experience Index, there are a couple of ways to do it:

  • Using the traditional method: In Windows Explorer right-click on Computer, click on Properties, and click on Windows Experience Index.
  • SNAGHTML32dfd04In the Windows 8 Start Screen type ‘experience’ (or enough of the word for it to be recognized.  Make sure you are in the Settings context, and click Use tools to improve performance.

From the Performance Information and Tools screen, click either Run the assessment or, if you have already run it previously, click Re-run the assessment.  Remember, it will not work if you are running on battery power… you will have to plug in your laptops to run it!  Also if you are running off a boot-from-VHD you can’t run it because the VHD performance interferes with the ability to measure the actual hard disk speed.

Windows 8 is faster than any operating system I have ever seen, even on legacy hardware.  However on newer hardware it is going to be incredible; the only issue with that right now is that you are going to have to wait until October 26th to buy it! Smile

Free software? Contest with Giveaways? Wow, this is good stuff!

Hey folks! So many of you have heard me talk about the importance of backing up your software (See Oakville.Com Tech Tuesday) but if you have kids it is also a good idea to back up other media – especially things like DVDs that you have invested money in.  Digiarty Software, Inc. has a couple of great tools for that, and for the next few days they are giving them away!

During their Easter Software Giveaway” they are providing two pieces of software for free, in stages.

Stage 1: WinX HD Video Converter Deluxe

From now until April 10, Digiarty will be giving away their WinX HD Video Converter Deluxe.  This is a great package that allows you to convert video between file formats.  However you have to hurry – the offer ends Tuesday!  To download the software for free, click here.

Stage 2: WinX DVD Copy Pro

For five days only – April 11 through April 15 (that’s next Sunday!) they will be giving away their WinX DVD Copy Pro software.  I know that as a parent I have already had to buy a lot of my kids’ DVDs a few times, because they scratch, break, get fed to dogs.  WinX DVD Copy Pro allows me to buy the DVD and copy it before giving it to the kids.  If the copy gets destroyed, all I have to do is make another copy, and not go out and pay full price again.  For those of you who are wondering, this is completely legal… as long as I do not give the copies to anyone else.  To download the software for free (starting Wednesday), click here.

Contest: WinX DVD Ripper Platinum

To celebrate all sorts of things – the coming of Spring, my 1000th follower on Twitter, and what should be this Monday or Tuesday the 45,000th visitor to the new World According to Mitch Digitary has given me five copies** of the software you will want most from their catalogue to give away.  So for the next ten business days, I will give away a copy of WinX DVD Ripper Platinum to one lucky reader, with the following caveats:

  1. I will only give away a copy on days where the site has over 150 visitors (Of the last 21 weekdays, 18 have exceeded 150 hits, and Good Friday probably shouldn’t count as a weekday).
  2. I will give the software away at random to a visitor who comments on my blog – any comment will do, as long as WordPress and I do not consider it spam.  That means you can comment on certifications, virtualization, Windows 8, or you can comment here and say ‘I want to win the prize!’
  3. I have to have your e-mail address.  That will not be published, but if I cannot contact you I cannot award you the prize!

I use WinX DVD Ripper Platinum all the time – we buy DVDs, and I rip them into our Windows Home Server Media Center so that the kids can watch them from the XBox any time they want without accidentally feeding DVDs to the dogs.  I also use it for myself – I can now watch movies on airplanes on my HP EliteBook 2740p tablet without bringing the docking station (the PC itself doesn’t have a DVD player).  I can rip my movies into any format, which means I can watch them in full size on my laptop, or really small on my Zune or Windows Phone 7.5.  If you don’t already have this software you will want it!  And all you have to do is… click Comment once Smile

Good luck, and happy Spring/Easter/Passover/45000th hit/1000th visitor!


**Software giveaways will not be hard copies, but will be fully licensed software codes already in the possession of the writer.  These copies are given away freely with the permission and endorsement of the software vendor.  They are distributed by The World According to Mitch, and not by any company or corporate entity that the writer may work for or contract for.  Odds of winning are directly related to the number of valid entries received.  The winners will be chosen at random according to the terms stated in the contest, however the selection process will be at the discretion of the writer, and his decisions are final and not subject to any audit process.  There are five licenses of the software to be given away beginning on Monday April 9th, 2012.

Installing the Hyper-V Role in Windows Server 8 ‘beta’

I am off to the races with Windows 8, both client (on a HP EliteBook 2740p) and Server 8 “beta” (on an HP ProLiant ML 350 G5)!  When I say off to the races, I mean it… this is a much faster operating system than I am used to, and I am coming from really good stuff Winking smile

This first in a series of videos demonstrates how easy it is to install the Hyper-V role on Windows Server 8.  Hope you enjoy! -M

Installing the Hyper-V Role is easy… all done in five minutes!
%d bloggers like this: