HVTools – SCVMM Inventory Utility


HVTools (formerly VMM Tools) is the swiss-army knife for SCVMM admins. A lightweight app for performing a complete SCVMM inventory.

It reports crucial information about your SCVMM environment including clusters, hosts, virtual machines, storage arrays, storage pools, networks, VLANs, workload health and much more.

Simple table views make it easy to use, find gaps and improvements in SCVMM.

Excellent for a clearer insight into your SCVMM environment, general troubleshooting, capacity planning and/or reporting.


  • Zombie VHD/VHDX finder.
  • Quickly and thoroughly inventory your SCVMM environment.
  • Virtual machine inventory info including FQDN, Hyper-V host, checkpoints, storage, network, VLAN, vCPU, vMem and status.
  • VHD/VHDX locations.
  • Network interface card (NIC) info including IPv4, subnet mask, default gateway and DNS server.
  • Cluster inventory.
  • Hyper-V host inventory.
  • Storage arrays and pool inventory.
  • Cluster storage volume inventory.
  • Network inventory.
  • Find patch levels.
  • Find firmware version info.
  • Promptly pinpoint improvements in your SCVMM environment.
  • No installation required.
  • Designed for System Centre Virtual Machine Manager 2012 and up.
  • Tabular report and search filter.
  • Clipboard copy feature using CTRL + C.
  • Excel CSV reporting.
  • Save complete inventory to Zip file.




Ensure you have the following recommended requirements.


1. Download and extract the HVTools Zip file onto a SCVMM server (or jump server with VMM modules installed).
2. Run “HVTools.exe”
3.HVTools will open and appear like so.
4. Enter SCVMM Administrator credentials, SCVMM instance IP or FQDN and click Login.
5. When complete, a SCVMM report window will automatically pop-up.
6. You can then peruse the report, filter results using the search bar at the top right.
7. If you wish, you can save the report to an Excel spreadsheet by clicking File -> Save As.
8. Finish.


  • Run the utility from a SCVMM instance or a server with Virtual Machine Manager module.
  • If a VM has “N/a GB” in the memory column, it is indicative that is has Dynamic Memory and vice versa.
  • Clicking File -> Save As will export the entire inventory to a Zip file.

Upcoming features

  • SCVMM overall health.


Initially started off as a PowerShell script, which I have now wrapped my GUI around with thanks to .Net. In fact, a primitive version of this script can be found in my blog post here.

This utility was designed for easy management of Microsoft SCVMM, giving you a nice, snappy and easy to read report.

Developed using Microsoft Visual Studio Code.
HVTools stands for “Hugo’s VMM Tools”.
RVTools was my inspiration for this passion project.


Code signed compiled file.
Added VMM server name to title bar form of report.
Removed empty var filename.
1.7.3 fixed tab name to Cluster Storage Volumes.
Clipboard copy/paste will include headers.
1.7.2 Enabled datagrid clipboard CTRL + C of selected rows. Achieved this by configuring RunspacePool apartmentState as STA from default.
Removed 2nd form runspace.close calls as they are irrelevant.
1.7.1 Fixed exit bug where runspaces would keep the process open. App now exits cleanly.
Fixed bug where the Login button would remain disabled post inventory completion.
New feature; Zombie VHDs tab is now available, reporting orphaned VHD/VHDX files in SCVMM.
1.7.0 Appended new column in Virtual Machines table called Location. This contains VHD/VHDX path.
Removed automatic export of Virtual Machines table to Desktop.
1.6.9 ZIP multi-report saving now final. Cleanup feature added.
Rounded off all numbers to single decimal point.
Added experimental save to ZIP feature from line 2509. Exports all tables into a temp path before ZIPing to desired save path via dialog.
1.6.8 New feature: Cluster storage volumes tab between at tab 7.
1.6.7 removed $script:powershell = [powershell]::Create() from line 2322.
1.6.6 Removed surplus $script:powershell = [powershell]::Create() from line 2331
Rounded off data columns.
1.6.5 Cometic update, added About button in 2nd report form.
Added reset counter for clusters $c in ClusterNetworks foreach loop.
1.6.4 Added tab filter for all 8 datagrids.
1.6.3 Major update. Packed new features in including Clusters, Hosts, Storage Pools, Storage Arrays, Cluster Disks, Networks and Cluster Networks!
1.6.2 Added hosts feature including data table, tab, foreach loop and data grid.
Re-enabled maxthreads to all available processor count on system.
New feature, Cluster info! Added 2nd table for Clusters.
1.6.1 Fixed unprotected memory exceptions by remove Add-OutputBoxLine calls within ForEach loops. This is because there are lots of objects in SCVMM and it overloads the richtexbox output.
1.6.0 Adding more tables and tabs for comprehensive information cluding clusters, hosts, storage and networks.
1.5.9 Attempt to resolve unprotected memory leak by calling $script:powershell.EndInvoke($script:handle) at every exit function.
Changed $maxthreads to 3 in order to resolve unprotected memory exceptions.
Added extra tabs, preparing for future releases.
Re-enabled maxthreads.
Updated colour scheme.
#1.5.6 Attempt at fixing memory leak by converting $VMS to an array by casting as such prior.
Fixed VLAN not displaying by changing column type from int32 to String.
Reduced $maxthreads to static 3, as app crashes on unhandled protected memory exceptions in a multi-user RDP session SCVMM instance.
Further enhancements to GUI, streamlining tab view and changed datagridview colour to moccasin.
Fixed 2nd form colour.
Minor bug fixes including table column types as memory, dynamic memory and vCPU were int and not working.
Major GUI updates.
Converted array to data grid view.
Code-signed application using Sectigo certificate.
#1.5.0 Using multi-threading thanks to runspace pools.
Added Out-Grid GUI view.
Performance improvements.
Using array instead of flat memory.
Added static/dynamic memory optimisations.