一、PowerCLI基础命令

二、PowerCLI之快照

三、PowerCLI之ESXi

 

首先我们来介绍快照的一些基础命令

1、

# PowerCLI makes it easy to deal with snapshots.
# Powercli使得更容易处理快照,通过该命令,可以查看到所有虚拟机的快照、描述以及状态,但看不出哪个快照属于哪个虚拟机,所以快照和描述可以写得详细些。
Get-VM | Get-Snapshot

 

实用 —— PowerCLI (二)_第1张图片

2、

# One of the most important attributes is the age of the snapshot.
#这个命令就是对无法显示虚拟机和快照对应关系进行了调用,
#可以看出快照属于哪个虚拟机,在什么时间创建的,非常方便用于Troubleshooting
Get-VM | Get-Snapshot | Select Name, VM, Created

实用 —— PowerCLI (二)_第2张图片

3、

# You can create snapshots in a very targeted way, because we rely on Get-VM
#查看群集或者主机上的虚拟机,方便接下来的快照创建
Get-Cluster "Cluster 01" | Get-VM
Get-VMHost 10.132.97.x  | Get-VM

 

实用 —— PowerCLI (二)_第3张图片

4、

# Snapshot every VM on host 10.132.97.X
#为ESXi主机10.132.X.X上每一台虚拟机创建一个快照,批量创建快照功能
Get-VMHost 10.132.97.19  | Get-VM | New-Snapshot -Name "Snap1"

 

实用 —— PowerCLI (二)_第4张图片

实用 —— PowerCLI (二)_第5张图片

5、

You can search for snapshots based on their age.
# Identify any snapshot older than a day.
#筛选出某个日期之前的快照
Get-Snapshot | Where { $_.Created -lt (Get-Date).addDays(-1) }
提示命令错误

 

实用 —— PowerCLI (二)_第6张图片

help get-snapshot

 

实用 —— PowerCLI (二)_第7张图片

#通过命令提示,发现get-snapshot后面缺参数来显示所有的VM虚拟机,
#那么刚刚的第一条命令就可以起到作用,显示主机上虚拟机的全部快照,
#然后设置addDays参数为-1.这样刚刚做的snap的快照就不会显示在清单
get-vm | get-snapshot  | Where { $_.Created -lt (Get-Date).addDays(-1) }

 

实用 —— PowerCLI (二)_第8张图片

#衍生下,针对单个虚拟机查看此刻之前存在的快照
Get-Snapshot AD-25 | Where { $_.Created -lt (Get-Date).addDays(-0) }

 

实用 —— PowerCLI (二)_第9张图片

#那么,批量创建了10多个快照,怎么批量删除刚刚创建的测试快照?
addDays(+1)是不行的,个人也没有找到命令,不过换个思路,
我们可以通过快照名称来进行删除
get-vm | get-snapshot -name "Snap1" | remove-snapshot –confirm Y
删除前

 

实用 —— PowerCLI (二)_第10张图片

#删除中,13个虚拟机,命令运行了13分钟后,去vsphere client界面,
#才看到任务都完成,删除的时候有些长

 

实用 —— PowerCLI (二)_第11张图片

删除后

 

实用 —— PowerCLI (二)_第12张图片

6、

# Remove *ALL* snapshots.
#移除所有快照,命令就不尝试了,有些测试快照还有用,大家可以试下。。后果自负。。
Get-Snapshot | Remove-Snapshot

 

 

大家有兴趣可以跟下一篇,ESXi