Skip to content

PowerShell script to export Inventory data from multiple VMware vCenter servers using RVTools

2 minute read
Content level: Intermediate
0

This article focuses on a PowerShell script to export RVTools export from multiple vCenter Servers for large VMware environments

Here’s a PowerShell script that uses RVTools to export data from multiple VMware vCenter servers. It automates the process by looping through a list of vCenter servers and saving the exports in a specified directory.

Prerequisites:

  1. RVTools: Ensure RVTools is installed on your system and accessible from the script. : Download RVTools
  2. PowerShell Module for VMware: Install the VMware PowerCLI module if needed for VMware automation (Install-Module -Name VMware.PowerCLI).
  3. Credentials: Ensure you have the necessary credentials and permissions for each vCenter server.
  4. Modify script variables ($vCenterList, $RVToolsPath, $ExportPath) accordingly.

PowerShell Script:: Export-RVTools.ps1

# Define the path to RVTools executable
$RVToolsPath = "C:\Program Files (x86)\Dell\RVTools\RVTools.exe"

# Define the output directory for exported files
$ExportPath = "C:\RVToolsExports"

# Create output directory if it doesn't exist
if (!(Test-Path -Path $ExportPath)) {
    New-Item -ItemType Directory -Path $ExportPath | Out-Null
}

# List of vCenter servers
$vCenterList = @("vcenter1.domain.com", "vcenter2.domain.com")  # Add your vCenter servers

# Credentials (Prompt or predefined)
$Username = "your-vcenter-username"
$Password = "your-vcenter-password"

# Encrypt password (optional, for security)
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)

# Loop through each vCenter and export data
foreach ($vCenter in $vCenterList) {
    Write-Host "Exporting data from $vCenter..."

    # Define output file name
    $ExportFile = "$ExportPath\RVTools_$($vCenter.Replace('.', '_'))_$(Get-Date -Format 'yyyyMMdd_HHmmss').xlsx"

    # Run RVTools command
    Start-Process -FilePath $RVToolsPath -ArgumentList @(
        "-s", $vCenter,
        "-u", $Username,
        "-p", $Password,
        "-c", "ExportAll2xlsx",
        "-d", "`"$ExportFile`""
    ) -NoNewWindow -Wait

    Write-Host "Export completed: $ExportFile"
}

Write-Host "All exports completed successfully!"

Explanation:

  • The script loops through multiple vCenters and exports data using RVTools.
  • It saves the export in an Excel (.xlsx) file in a specified directory.
  • It formats filenames with timestamps to avoid overwriting.
  • Handles credential input securely (consider using Get-Credential instead of storing passwords in plain text).

How to Run:

  1. Save the script as Export-RVTools.ps1.
  2. Run PowerShell as Administrator.
  3. Execute the script:
.\Export-RVTools.ps1

AWS
EXPERT
published a year ago1.4K views