Мне нужна помощь в понимании того, почему $ myCol_Table всегда имеет счетчик 2
, если я запускаю эту часть скрипта
$vms = Get-VM
ForEach ($vm in $vms) {$snapshots = Get-Snapshot -VM $vm | Where-Object { $_.Description -notlike "*RPData*"}
$myObj = $vm | Select-Object VM, NumSnapshots
$myObj.VM = $vm.name
$myObj.NumSnapshots = ($snapshots | measure-object).count
$ myObj.NumSnapshots имеют счетчик ноль, а электронное письмо отправлено, а таблица тела пуста
кто-нибудь знает, почему?
Это полный скрипт
# Creation de l'usager et mot de passe
$secpasswd = Get-content C:\password.txt | convertto-securestring
$mycreds = New-Object System.Management.Automation.PSCredential ("test\test", $secpasswd)
#Connection au vcenter
Connect-VIServer -Server vcenter -Credential $mycreds
# Trouver tout les VM
$vms = Get-VM
$myCol = @()
# Trouver les Vm avec des snapshots
ForEach ($vm in $vms) {$snapshots = Get-Snapshot -VM $vm | Where-Object { $_.Description -notlike "*RPData*"}
$myObj = $vm | Select-Object VM, NumSnapshots
$myObj.VM = $vm.name
$myObj.NumSnapshots = ($snapshots | measure-object).count
If ($myObj.NumSnapshots -ge '1'){
$myCol += $myObj; }
# Utilisation de PSObject pour créé une table HTML
$myCol_Table = $myCol | ConvertTo-Html -Fragment
}
if ($myCol_Table.Count -ge 1) {
$SMTPServer = "192.168.2.3"
$enc = New-Object System.Text.utf8encoding
Send-MailMessage -to "xxx@xxx" `
-from "xxx@xxx" `
-Subject "VM avec snapshot" `
-body $myCol_Body `
-smtpserver $SMTPServer `
-BodyAsHtml `
-Encoding $enc
}
Else {
Write "vide" }