Retrieve VM Information in VMware vSphere

This post details a PowerShell script designed to retrieve and display vital information about virtual machines (VMs) in a VMware vSphere environment. By automating this process, you can easily monitor VM configurations and performance.
### Step 1: Connect to vCenter Server
To interact with your VMware environment, youll first need to connect to the vCenter Server using the `Connect-VIServer` cmdlet. This step establishes the necessary session.

# Define vCenter Server details
$vcServer = "vcenter_server_IP_or_FQDN"
$vcUser = "username"
$vcPassword = "password"
# Connect to the vCenter Server
Connect-VIServer -Server $vcServer -User $vcUser -Password $vcPassword

### Step 2: Get the List of Virtual Machines
Here, you will gather a list of the VMs in the vCenter environment using the `Get-VM` cmdlet. This command retrieves all active VMs, which will be processed in the subsequent steps.

# Retrieve all virtual machines
$vms = Get-VM

### Step 3: Display VM Information
With the list of VMs ready, the next step is to iterate through each VM and display relevant information such as name, power state, and CPU/memory details.

# Display information for each VM
foreach ($vm in $vms) {
    Write-Host "VM Name: $($vm.Name)"
    Write-Host "Power State: $($vm.PowerState)"
    Write-Host "CPU Count: $($vm.NumCpu)"
    Write-Host "Memory Size (MB): $($vm.MemoryMB)"
    Write-Host "-------------------------------------"
}

### Step 4: Disconnect from vCenter Server
Finally, after gathering and displaying the VM information, its important to disconnect from the vCenter Server to maintain good session hygiene.

# Disconnect from the vCenter Server
Disconnect-VIServer -Server $vcServer -Confirm:$false

Explore more powerful automation tools at ServerEngine or visit our website at [https://serverengine.co](https://serverengine.co) for additional resources and capabilities tailored for your server management needs!