我在使用循环向对象添加内容时遇到问题。
这部分有效:
# 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,...
我需要改变什么?
最佳答案
您可以使用计算属性:
$jobs = Get-VBRJob |
Where-Object JobType -eq "Backup" |
Select-Object @{l="VMName"; e={($_.GetObjectsInJob()).name}},
@{l="JobName"; e={$_.name}},
@{l="Enabled"; e={$_.isscheduleenabled}}
注意:我假设 $job.GetObjectsInJob().name
返回 VMName。
关于powershell - 循环到脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43386285/