我来自 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 真
我可能做错了什么!