伙计们,PowerShell的事先通过在foreach循环数组(或嵌套的foreach)
我发现了一些答案,但他们似乎是手工阵列,或当你知道确切数字。我会有一个数组,我不知道有多少人会在那里。想知道我能否得到帮助。
基本上 - 我希望它通过每个服务器,获取OCX和DLL的名称,版本和日期,并将其放入电子表格中。
它似乎工作正常......只有一次。它不会继续到我的数组中的下一个文件。
林如此接近,有人可以帮我告诉它(OK,不前进到下一个服务器,直到你完成让所有的文件)
这里是我到目前为止的代码。效果很好 - 但仅适用于每台服务器一个文件。
非常感谢提前。
$Servers = Get-Content C:\temp\Servers.txt
$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=-1
$WorkBook=$objExcel.WorkBooks.Add()
$sheet=$workbook.worksheets.item(1)
$class = "win32_Share"
$sheet.Cells.item(1,1)=("Server")
$sheet.Cells.item(1,2)=("File Name")
$sheet.Cells.Item(1,3)=("File Version")
$sheet.Cells.Item(1,4)=("Date")
$sheet.Range("A1:D1").interior.colorindex = 43
$x=2
$i = 0
foreach ($Server in $Servers) {
$infos = Invoke-Command -computername $Server {Get-ChildItem "V:\Service\*" -File -Include *.dll, *.ocx | Select-Object name,@{label="FileVersion";expression={$_.versioninfo.fileversion}},@{label="Date";expression={$_.LastWriteTime}}}
$info = $infos[$i]
$sheet.Cells.item($x, 1)=($Server)
$sheet.Cells.item($x, 2)=($info.name)
$sheet.Cells.item($x, 3)=($info.FileVersion)
$sheet.Cells.item($x, 4)=($info.Date)
$x++
$i++
}
#Autofit columns when completed
$range = $sheet.usedRange
$range.EntireColumn.Autofit()
它似乎从来没有通过$ info [$ i]数组前进。
非常感谢! – TelluRye