获取 vCenter 管理的虚拟机中所有快照的列表?

lee*_*d00 18 vmware-vcenter

我们有多个由 vCenter 管理的 ESXi 服务器;有没有办法获得所有虚拟机中所有快照的列表?

eww*_*ite 16

Grrr... VMware 快照。如果我按照我的方式,它们将仅用于备份目的和测试更改。

您可以使用 vSphere 客户端集群级别的“存储视图”选项卡查看快照占用的空间(这可能是您真正想知道的)。

在此处输入图片说明

从那里开始,然后深入到各个 VM。具有字节 (B) 值的条目本质上意味着没有快照。

  • 船尾。我讨厌他们这样做。 (2认同)

Hop*_*00b 12

听起来像是 PowerCLI 的工作!好吧,无论如何,这就是我拥有的 Windows 工作站。

Get-Snapshot

Surly Admin 的博客甚至有一个脚本,您可以通过复制粘贴来获取环境中所有 VM 的所有快照,为了您的方便,我将在下面发布其中的内容。

$Report = Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created
If (-not $Report)
{  $Report = New-Object PSObject -Property @{
      VM = "No snapshots found on any VM's controlled by $VIServer"
      Name = ""
      Description = ""
      Size = ""
      Created = ""
   }
}
$Report = $Report | Select VM,Name,Description,Size,Created | ConvertTo-Html -Head $Header -PreContent "<p><h2>Snapshot Report - $VIServer</h2></p><br>" | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd
Run Code Online (Sandbox Code Playgroud)


Mar*_*son 8

HopelessNoob 的回答非常适合人类可读的报告。有时我更喜欢将我的解析为其他 PS 对象。它也与 HopelessNoob 非常相似 - 我想我们都从相同的代码片段开始构建我们的脚本:

$VIServer = "vsphere.ad.example.com"

If (-not (Get-PSSnapin VMware.VimAutomation.Core))
{  Try { Add-PSSnapin VMware.VimAutomation.Core -ErrorAction Stop }
   Catch { Write-Host "Unable to load PowerCLI, is it installed?" -ForegroundColor Red; Break }
}

Connect-VIServer $VIServer -Credential (Get-Credential) | Out-Null

Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created | FT
Run Code Online (Sandbox Code Playgroud)

给出:

VM                              Name                            Description                     Size                            Created
--                              ----                            -----------                     ----                            -------
ENETSXS2                        VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 19.28 GB                        8/11/2014 8:42:18 AM
ENETSDFS-BS                     VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 16.30 GB                        8/11/2014 5:24:44 AM
Run Code Online (Sandbox Code Playgroud)

然后,您可以将其通过管道传输Remove-Snapshot或过滤或其他任何内容。


小智 5

这是我们用来转储所有具有快照的 VM 列表的脚本,在 PowerCLI 中工作。它非常简单和干净。它将通过 .csv 文件将结果转储到您的本地桌面。

#  Possible "Select-Object -Property" variables: Description, Created, Quiesced, PowerState, VM, VMId, Parent, ParentSnapshotId, ParentSnapshot, Children, SizeMB, SizeGB, IsCurrent, IsReplaySupported, ExtensionData, Id, Name, Uid, Client


get-vm | get-snapshot | Select-Object -Property vm,created,sizeGB,name,description | Export-Csv -Path C:\Users\$env:username\Desktop\snapshots.csv
Run Code Online (Sandbox Code Playgroud)