2017-11-10 21 views
0

저는 powerCLI를 시작했습니다. CSV에 VM 이름을 가져 오는 스크립트를 작성하려고하면 CSV에 나열된 전자 메일 주소로 20 % 미만의 여유 공간이있는 VM의 게스트 디스크를 확인하고 전자 메일 주소로 전자 메일을 보냅니다. 그러나 동일한 이메일을 가지고있는 하나의 이메일에 "이름"을 그룹화하기가 어렵습니다. 다음은 VM 이름을 그룹화하고 CSV에서 동일한 이메일을 가지고있는 하나의 이메일로 보내기

내가 VM의 게스트 디스크를 나열하는 데 사용하는 스크립트입니다 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)})} 

:

name email  
vm1 [email protected] 
vm2 [email protected] 
vm3 [email protected] 
vm4 [email protected] 

출력 :

email received by [email protected] 
    No VM Free% 
    1. vm1 10 
    2. vm3  9 

email received by [email protected] 
    No VM Free% 
    1. vm2  13 
    2. vm4  15 

누구든지 도울 수 있다면 감사하게 생각하십시오.

감사합니다. 이 같은

답변

0

시도 뭔가 :

Function SendSimpleMail 
{ 
      # Déclaration des paramètres 
      param([string]$Objet, [string]$Message, [string[]]$ToMail) 

$SmtpServer="yoursmtpname" 
$encoding=[System.Text.Encoding]::UTF8 
$FromMail="[email protected]" 

Send-MailMessage -To $ToMail -Subject $Objet -Body $Message -SmtpServer $SmtpServer -From $FromMail -Encoding $encoding 

} 

import-csv ".\vm.csv" | %{ 
$VM=Get-VM $_.name 
$Email==$_.email 
$VM.Extensiondata.Guest.Disk | %{ 
           [pscustomobject]@{ 
           Email=$Email 
           Name=$VM.Name 
           DiskPath=$_.DiskPath 
           "Capacity(MB)"=[math]::Round($_.Capacity/ 1MB) 
           "Free Space(MB)"=[math]::Round($_.FreeSpace/1MB) 
           "Free Space %"=if ($_.Capacity -eq 0) {0} else {[math]::Round(((100* ($_.FreeSpace))/ ($_.Capacity)),0)} 
           } 
} 

} | group Email | %{ 

$body=$_.group | Out-String 
SendSimpleMail "subject" $body $_.Name 

} 
+0

안녕 Esperento57, 스크립트 주셔서 감사합니다. 스크립트를 실행하면 다음과 같은 오류가 표시됩니다. '0으로 나누려고했습니다. 줄에 18 문자 : 33 + [pscustomobject] {@ + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified (:) []의 RuntimeException + FullyQualifiedErrorId : RuntimeException '. 사려 깊은 조언. – Ally

+0

"%"는 무엇을 의미하는지 알 수 있으며 어떻게 html로 표 형식으로 표시 할 수 있습니까? – Ally

+0

내 코드를 수정했습니다. % = foreach – Esperento57