Я пытаюсь создать сценарий Powershell, который выполняет следующие действия: 1) читает список файлов из txt-файла. Файл txt будет содержать путь и имя файла, например: \ Program Files (x86) \ AppName \ application.exe после прочтения списка файлов, Powershell затем считывает из другого txt-файла и импортирует список компьютеров, напримерПроверка нескольких файлов на нескольких компьютерах
pc-001
pc-002
pc-003
...
После проверки каждого компьютера для версий файлов, она затем выводит данные в текстовый файл в следующем формате:
PC-001
\Program Files (x86)\AppName\application.exe - version details
\Program Files (x86)\AppName\anotherfile.dll - version details
PC-002
\Program Files (x86)\AppName\application.exe - version details
\Program Files (x86)\AppName\anotherfile.dll - version details
PC-002
\Program Files (x86)\AppName\application.exe - version details
\Program Files (x86)\AppName\anotherfile.dll - version details
до сих пор, я пришел к этому:
$filename = "\Program Files (x86)\application\application.exe"
$obj = New-Object System.Collections.ArrayList
$computernames = Get-Content C:\Computer.csv
foreach ($server in $computernames) {
$filepath = Test-Path "\\$server\c$\$filename"
if ($filepath -eq "True") {
$file = Get-Item "\\$server\c$\$filename"
$obj += New-Object psObject -Property @{
'Computer' = $server;
'FileVersion' = $file.VersionInfo|Select FileVersion;
'LastAccessTime' = $file.LastWriteTime
}
}
}
$obj | select computer, FileVersion, lastaccesstime |
Export-Csv -Path 'c:\File_Results.csv' -NoTypeInformation
Кто-нибудь знает, как я могу изменить файл, чтобы получить необходимую информацию в формате, указанном выше?
Ваш желаемый формат вывода говорит «сведения о версии», но ваш код выбирает версию файла и последнее время записи (неверно помеченное «последнее время доступа»). Просьба уточнить, что должно содержать ваш вывод. –