Administrators Admins Hyper-V VMware

Build Your Own IT Lab


One thing that sets apart an amateur from a professional is experience. What a better way to gain experience than by building a lab and testing. From the basic AD installations, Exchange installations to the more complex hybrid O365 environments, labs are quintessential. When in doubt use a lab, when the change in question will have broad business effects, test in the lab, you get where I am going. If you are starting out in the IT industry the lab is your friend and teacher. Where else are you going to be able gain skills without any risk?

When I tried to build my lab I used Hyper-V as my hypervisor and ran into issues with network connectivity. This doesn’t mean that it can’t work for you. That being said, I decided to use VMWare Workstation which is the free version. Once I changed hypervisors the network issue experienced with Hyper V was resolved.

Pitfalls experienced during the process:

  • VM boot times where slow this grew exponentially when booting multiple VMS.
  • Issue number two, when running multiple VMs they were sluggish.

After combing the web and looking at countless benchmarks, I decided to purchase a Samsung 850 Pro. The new drive solved both problems. I took it a step further and decided to use it as my boot drive as well.

Below is the two step process to build a lab without the need of a dedicated server or desktop.

Step 1

Download and install VMware Workstation

Step 2

I like to download Microsoft Trial software from TechNet or Linux ISOs from DistroWatch.


One thing that you will encounter eventually is that you will want to open up a VM to the world. By default this is not possible because VMs are defaulted to use NAT behind the host’s NIC. This doesn’t allow a VM to see the rest of the LAN thus not allowing port forwarding or adding the VM to the DMZ. This can be resolved by making the changes below.

Provide LAN access

Navigate to the VMs settings shown below.

Network-Settings VMWare Workstation -1

Navigate to the Network Adapter option and choose Custom, choose a vnet. Don’t worry about the which vnet you use as long as you do not use the vnet labeled NAT.

Network-Settings VMWare Workstation.png

That is all I have on building a LAB.


Administrators Admins Microsoft Exchange PowerShell

Best PowerShell Exchange Health Report


There are many exchange tools on the web but this has been the most useful I have ever encountered. It provides a the bulk of what you need to know about an exchange organization. Every exchange admin should have this in their toolbox. Its called the Exchange Environment Report, it was developed by Steve Goodman Microsoft MVP.

This Report is like a Swiss Army Knife of reports.  It provides a comprehensive view on the exchange organization, from roles to database health, backup information, DAGS, mailbox counts, etc.. it includes this and more!

Enough bragging about it, you can get more information and a copy at Steve’s website or a direct download here. I would like to thank Steve for writing this awesome tool. Don’t forget to send him a message on Twitter!


Active Directory Administrators Admins Microsoft Patches PowerShell

Two step process to export a list of installed patches using PowerShell


Building on the previous post Easy Server Inventory!

Not all businesses can afford expensive patch management solutions. Some organizations may have WSUS but not know how to use it properly or its outdated. Some of you may think SCCM can produce reports. SCCM is great when you have staff that can take advantage of it; for some its not a viable solution, because no one on staff has the skill set, price tag or a combination of time and/or money it takes to send someone to train on SCCM.


The auditors, boss, corporate folks, etc. request a list or sample list of servers, they want to see  installed patches on each server with dates. A hefty proposition if you do not have one of these fancy applications that handle all of these things for you! No worries! Below is a quick way to keep things under control and provide the necessary information quickly and effectively.

Step 1

You can either gather a list of all servers in the domain via the AD Users and Computers, PowerShell or any other preferred method. You will use this to populate a txt file that will be used to feed the script.

Below is a script I like to use which can be useful for inventory, etc.

Export all servers to a friendly csv by running the following in PowerShell

Get-ADComputer -Filter {(OperatingSystem -Like "Windows *Server*")-and (Enabled -eq "True")} -Property * | Select Name,OperatingSystem,OperatingSystemServicePack,IPv4Address | export-csv Servers.csv -notypeinformation

*Added the (Enabled -eq "True") to filter only enabled Severs, thanks to the comment posted on Reddit by Master_apprentice .  -Thank you again

Step 2

Populate a file name servers.txt with the requested selection of servers.  Store this file in the same directory as the script below. The script below simply needs to be copied into either the PowerShell ISE or a notepad and saved as a ps1.

$ErrorActionPreference= 'silentlycontinue' # Allows the script to run in case of an error.

$servers = Get-Content -path Servers.txt  # Pulls the servers in question.

# The foreach below run the commands as the commands states for each server in the txt file.

# It then exports them to a useful csv.

foreach ($server in $servers)


(Get-Hotfix -ComputerName  $server | sort InstalledOn)| select CSName, Description, HotFixID, InstalledOn, RebootRequired | export-Csv -Path export.csv -append -notypeinformation


Once the report runs you will have a CSV with the information needed.

Active Directory Administrators Admins PowerShell

Easy Server Inventory using PowerShell – Minor Update

Easy Inventory with PowerShell

Ever need a quick inventory, well the following script pulls servers directly from AD. It cannot get easier than this. There is no need for fancy software or databases. Once the data is exported you can give it a facelift in excel and turn it in to the C level folks, share it with the team, your boss or perhaps you simply need a copy for yourself.

Export all servers to a friendly csv by running the following in PowerShell:

Get-ADComputer -Filter {(OperatingSystem -Like "Windows *Server*")-and (Enabled -eq "True")} -Property * | Select Name,OperatingSystem,OperatingSystemServicePack,IPv4Address | export-csv Servers.csv -notypeinformation

*Added the (Enabled -eq "True") to filter only enabled Severs, thanks to the comment posted on Reddit by Master_apprentice .  -Thank you again!

It can be saved as a script and set to automatically run as a scheduled task or use the script to feed a dataset somewhere with Power Bi, SQL, Access, etc.