请求协助修正VM快照报告脚本:显示快照创建者及创建日期
解决VM快照报告中获取创建者和创建日期的问题
问题说明
你原本的PowerShell脚本用于生成VM快照报告并邮件发送,想要新增快照创建者用户名和快照创建日期两列,但自行修改的代码显示的是报告生成者的用户名和当前日期,而非快照本身的创建信息。
问题原因
你使用的$env:USERNAME是获取执行脚本的当前用户,Get-Date是获取脚本运行时的日期,这两个值都和快照本身无关。VMware PowerCLI的Get-Snapshot返回的快照对象自带Created(创建日期)和CreatedBy(创建者)属性,直接调用这些属性就能得到正确信息。
修改后的完整脚本
#Variables $vCenter = "Your VSphere address" $vCenterUser = "Domain\adm-yourusername" $vCenterPass = "Your Password" $Date = Get-Date -Format "yyyy-MM-dd" # 补充定义日期变量,避免邮件主题报错 #HTML样式 $style = @' <style> body {font-family: Arial; font-size: 10pt;} table {border: 1px solid red; border-collapse: collapse;} th {border: 1px solid; background-color: #4CAF50; color: white; padding: 5px;} td {border: 1px solid; padding: 5px;} </style> '@ #连接vCenter服务器 CLS Write-Host "Connecting to $vCenter" -ForegroundColor Blue Connect-VIServer -Server $vCenter -User $vCenterUser -Password $vCenterPass -Force | Out-Null Write-Host " Connected to $vCenter" -ForegroundColor Green #生成快照报告:新增创建者和创建日期列 $SnapshotReport = Get-Vm | Get-Snapshot | Select-Object VM, Description, PowerState, SizeGB, @{Name='创建者用户名';Expression={$_.CreatedBy}}, @{Name='创建日期';Expression={$_.Created.ToString("yyyy-MM-dd HH:mm:ss")}} | Sort-Object SizeGB -Descending | ConvertTo-Html -Head $style | Out-String #发送邮件报告 Write-Host "Sending VM snapshot report" -ForegroundColor Blue #使用Splatting方式组织邮件参数,提升可读性 $params = @{ SmtpServer = "Your SMTP server address" From = "your email address" To = "your email address" Subject = "Snapshot Email Report for $Date" Body = $SnapshotReport BodyAsHtml = $true # 可添加其他邮件参数,如CC、Attachments等 } Send-MailMessage @params Write-Host " Completed" -ForegroundColor Green #断开vCenter连接,清理会话 Disconnect-VIServer -Server $vCenter -Confirm:$false
关键修改点说明
@{Name='创建者用户名';Expression={$_.CreatedBy}}:直接引用快照对象的CreatedBy属性,获取创建该快照的用户账号@{Name='创建日期';Expression={$_.Created.ToString("yyyy-MM-dd HH:mm:ss")}}:调用快照的Created属性,并格式化为清晰的日期时间格式- 补充了
$Date变量的定义,解决原脚本中邮件主题未定义变量的报错 - 添加
Disconnect-VIServer命令,执行完成后自动断开vCenter连接,避免残留会话占用资源
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

