我来自 Linux,正在尝试使用 PowerShell 脚本自动收集 Veeam Backup 作业。
我开始了解 PowerShell 数组是如何工作的,然后我尝试了一个小测试:
$users = 'mark','josh','stephen'
$city = 'seattle','boston','chicago'
for ($i = 0; $i -lt $users.Count; $i++) {
Write-Host $users[$i] 'live in' $city[$i]
}
输出:
马克住在西雅图 乔希住在波士顿 斯蒂芬住在芝加哥
但是当我修改我的 2 个数组添加命令而不是字符串时:
$jobname = @(gwmi -Namespace "root/veeambs" -Class "job" | select typetostring, name | ft -HideTableHeaders | Out-String)
$isenabled = @(gwmi -Namespace "root/veeambs" -Class "job" | select typetostring, scheduleenabled | ft -HideTableHeaders | Out-String)
for ($i = 0; $i -lt $jobname.Count; $i++) {
echo $jobname[$i] ' --> ' $isenabled[$i]
}
输出是:
工作1 工作2 工作3 工作4 工作5 工作6 工作7 工作8 工作9 工作10 工作11 工作12 工作13 工作14 作业15 工作16 工作17 工作18 工作19 工作20 --> 错误的 真的 真的 错误的 真的 真的 错误的 真的 真的 真的 真的 真的 真的 真的 真的 真的 真的 真的 真的 真的
代替:
工作 1 --> 假 工作 2 --> 真 Job3 --> 真 Job4 --> 错误 等等
手动运行整个命令我得到:
PS> gwmi -命名空间“root/veeambs”-类“工作”| 选择 typetostring、name、scheduleenabled typetostring name scheduleenabled ------------ ---- ---------------- 作业 1 错误 工作 2 真 工作 3 真 Job4 错误 Job5 真 Job6 真 Job7 错误 Job8 真 Job9 真 Job10 真 Job11 真 Job12 真 Job13 真 Job14 真 Job15 真 Job16 真 Job17 真 Job18 真 Job19 真 Job20 真
我可能做错了什么!