Quantcast
Channel: VMware Communities : All Content - All Communities
Viewing all articles
Browse latest Browse all 175326

PowerCLI snapshot reports

$
0
0

I'm struggling with two scripts that I would like to combine, but need assistance. Essentially one outputs html (this i need), the other has information that i also need:

VMSnapNameDaysOldCreatorSizeGBCreated

Description

 

 

Here are the scripts:

# HTML formatting

$a = "<style>"

$a = $a + "BODY{background-color:white;}"

$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"

$a = $a + "TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;foreground-color: black;background-color: LightBlue}"

$a = $a + "TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;foreground-color: black;background-color: white}"

$a = $a + "</style>"

 

 

# Main section of check

Write-Host "Checking VMs for for snapshots"

$date = get-date

$datefile = get-date -uformat '%m-%d-%Y-%H%M%S'

$filename = "C:\Snaps" + $datefile + ".htm"

 

 

# Get list of VMs with snapshots

# Note:  It may take some time for the  Get-VM cmdlet to enumerate VMs in larger environments

$ss = Get-vm | Get-Snapshot

Write-Host "   Complete" -ForegroundColor Green

Write-Host "Generating VM snapshot report"

#$ss | Select-Object vm, name, description, powerstate | ConvertTo-HTML -head $a -body "<H2>VM Snapshot Report</H2>"| Out-File $filename

$ss | Select-Object vm, name, description | ConvertTo-HTML -head $a -body "<H2>VM Snapshot Report</H2>"| Out-File $filename

Write-Host "   Complete" -ForegroundColor Green

Write-Host "Your snapshot report has been saved to:" $filename

 

Other script:

# Load PowerCLI Module

 

  if ( !(Get-Module -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue) ) {

 

  . “C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1”

 

  }

 

function Get-SnapshotSummary {

 

  param(

 

  $InputObject = $null

 

  )

 

    PROCESS {

 

  if ($InputObject -and $_) {

 

  throw 'ParameterBinderStrings\AmbiguousParameterSet'

 

  break

 

  } elseif ($InputObject) {

 

 

  $InputObject

 

  } elseif ($_) {

 

  $mySnaps = @()

 

  foreach ($snap in $_){

 

  $SnapshotInfo = Get-SnapshotExtra $snap

 

  $mySnaps += $SnapshotInfo

 

  }

 

  $mySnaps | Select VM, @{N="SnapName";E={[System.Web.HttpUtility]::UrlDecode($_.Name)}}, @{N="DaysOld";E={((Get-Date) - $_.Created).Days}}, Creator, @{N="SizeGB";E={$_.SizeGB -as [int]}}, Created, Description -ErrorAction SilentlyContinue | Sort DaysOld

 

  } else {

 

  throw 'ParameterBinderStrings\InputObjectNotBound'

 

  }

 

  }

 

}

 

function Get-SnapshotTree{

 

  param($tree, $target)

 

  $found = $null

 

  foreach($elem in $tree){

 

  if($elem.Snapshot.Value -eq $target.Value){

 

  $found = $elem

 

  continue

 

  }


Viewing all articles
Browse latest Browse all 175326

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>