객체에 무언가를 추가하기 위해 루프를 사용하는 데 문제가 있습니다.
이 부분은 작동합니다.
# Get Backup Jobs
$jobs = Get-VBRJob | ?{$_.JobType -eq "Backup"}
foreach ($job in $jobs) {
$jobOptions = New-Object PSObject
$jobOptions | Add-Member -MemberType NoteProperty -Name "JobName" -value $job.name
$jobOptions | Add-Member -MemberType NoteProperty -Name "Enabled" -value $job.isscheduleenabled
산출:
Jobname,Enabled,...
Job1,True,...
내가 원하는 것은 :
VMName,Jobname,Enabled
VM1,Job1,True,...
VM2,Job1,True,...
VM3,Job2,True,...
나는 시도했다 :
# Get Backup Jobs
$jobs = Get-VBRJob | ?{$_.JobType -eq "Backup"}
foreach ($job in $jobs) {
$vmnames = ($job.GetObjectsInJob()).name
$jobOptions = New-Object PSObject
$jobOptions | Add-Member -MemberType NoteProperty -Name "VMName" -value
$vmnames
$jobOptions | Add-Member -MemberType NoteProperty -Name "JobName" -value
$job.name
$jobOptions | Add-Member -MemberType NoteProperty -Name "Enabled" -value
$job.isscheduleenabled
이렇게하면 다음이 생성됩니다.
VMName,Jobname,Enabled
VM1 VM2,Job1,True,...
무엇을 변경해야합니까?
내부 루프에서는 이름을 반복하는 대신 개체를 반복하려고합니다. 이 라인을 따라 뭔가 :
# Get Backup Jobs
$jobs = Get-VBRJob | ?{$_.JobType -eq "Backup"}
foreach ($job in $jobs) {
# change starts here; additional loop over VMs
foreach ($vm in $job.GetObjectsInJob()){
[array]$jobOptions += New-Object PSObject -Property @{
"VMName" = $vm.name
"JobName" = $job.name
"Enabled" = $job.isscheduleenabled
}
}
}
나는 gms0ulman의 응답에서 대부분의 코드를 빌렸다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다