Scripted RV Tools

17 Sep 2018

One of the best free tools out there for VMware is RVTools by Rob de Veij at Robware.

If you haven’t use RVTools, it is a Windows app that will connect to a specified vCenter and display almost all the inventory information about the contents of that vCenter. The data can be reviewed in the app or even better, exported to Excel. Anytime I am working on a project with VMware, I use RVtools to gather information about a client’s environment for leading into a design, point in time view before a cutover, and more. Of all the tools and scripts I use, RVTools is the one I use the most. Now that I’m working with AWS, GCP, and other cloud environments, I wish there was a similar tool or script that would capture and export practically everything about them.

If you work with VMware and haven’t used RVTools before, go try it!

One thing I recently discovered, is RVTools can be scripted. This is very useful when a client has multiple vCenters and you want to set names on the exported files. One client I’ve worked with, does a daily RVTools run so they have a copy of what their VMware environment looked like every day. While there are many ways to track infrastructure changes, this is a very simple one that anyone can do.

This is the below PowerShell code I use whenever I need to connect to a vCenter and export the data.


#List of vCenters
$vCenters = "vcenter1.venting.cloud","vcenter2.venting.cloud","vcenter3.venting.cloud","vcenter4.venting.cloud"#creds
$User = "venting.cloud\user"
$password = "secret!"
#where the Excel files will be saved
$outputDIR = "Z:\Projects\venting\"
foreach ($vCenter in $vCenters) {
     #setting up the arguments to be used for RVTools. This sets the name to the vCenter, and a good date format.
     $outputFile = $vCenter + "-RVToolsExport-" + $(get-date -uformat %m-%d-%Y-%H-%m-%S) + ".xlsx"

#combine the variables into one argument string
$Arguments = "-u $User -p $password -s $vCenter -c ExportAll2xlsx -d $outputDIR -f $outputFile"
#starts the export process by calling RVTools and passes in the arguments.
Start-Process -FilePath "C:\Program Files (x86)\Robware\RVTools\RVTools.exe" -ArgumentList   $Arguments -NoNewWindow -Wait -PassThru
}

There are other CLI options as well for RVTools, that are listed in their documentation.