【发布时间】:2017-11-10 09:02:21
【问题描述】:
我刚刚开始使用 powerCLI。尝试编写一个以 CSV 格式获取 vm 名称的脚本,检查 vm 的可用空间少于 20% 的访客磁盘,并通过电子邮件发送到 CSV 中列出的电子邮件地址。但是,我很难将“名称”分组到具有相同电子邮件的单个电子邮件中。
下面是我用来列出小于 20% 的虚拟机客户磁盘的脚本
import-csv ".\vm.csv" | Group-Object $_."email"
ForEach ($VM in Get-VM $_."name" ){($VM.Extensiondata.Guest.Disk | `
Select @{N="Name";E={$VM.Name}},DiskPath, `
@{N="Capacity(MB)";E={[math]::Round($_.Capacity/ 1MB)}}, `
@{N="Free Space(MB)";E={[math]::Round($_.FreeSpace / 1MB)}} ,`
@{N="Free Space %";E={[math]::Round(((100* ($_.FreeSpace))/ ($_.Capacity)),0)}} | Where-Object {($_."Free Space %" -lt 20)})}
例如在 CSV 中:
name email
vm1 test1@abc.com
vm2 test2@abc.com
vm3 test1@abc.com
vm4 test2@abc.com
输出:
email received by test1@abc.com
No VM Free%
1. vm1 10
2. vm3 9
email received by test2@abc.com
No VM Free%
1. vm2 13
2. vm4 15
如果有人可以提供帮助,不胜感激。
谢谢。
【问题讨论】:
标签: powershell csv vmware powercli