Hi
I want to export VM list of my Vcenter with Username who created that and Power Off Since date. Someone please help me here.
With something like PowerCLI?
I will look through my scripts. I know I have something that you are looking for using PowerCLI.
Here's the function I wrote a couple years back. The function requires you already be connected to your vCenter.
function Get-VMLastPowerTimes
{
<#
.SYNOPSIS
[PowerCLI] Retrieves the power on/off times of one or more VMs
.DESCRIPTION
Retrieves the power on/off times of one or more VMs
.EXAMPLE
Get-VMLastPowerTimes -VMs "myVM1"
.EXAMPLE
Get-VMLastPowerTimes -VMs "myVM1","myVM2"
.PARAMETER VMs
Comma-delimited list of VMs
#>
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true,
Position = 0,
ValueFromPipeline = $true,
HelpMessage = "Comma-delimited list of VMs")]
[String[]]$VMs
)
$results = foreach ($VM in $VMs)
{
$eventsOn = $VM | Get-VIEvent -MaxSamples 10000 | Where { $_.FullFormattedMessage -like "*powered on*" }
$eventsOff = $VM | Get-VIEvent -MaxSamples 10000 | Where { $_.FullFormattedMessage -like "*powered off*" }
New-Object PSObject -Property @{
Name = $VM.Name
PowerState = $VM.PowerState
LastPowerOn = ($eventsOn | Sort -Descending | select -Last 1 | select CreatedTime).CreatedTime
UserPowerOn = ($eventsOn | Sort -Descending | select -Last 1 | select UserName).UserName
LastPowerOff = ($eventsOff | Sort -Descending | select -Last 1 | select CreatedTime).CreatedTime
UserPowerOff = ($eventsOff | Sort -Descending | select -Last 1 | select UserName).UserName
}
}
return $results
}