PowerShell CSV, запросы и т. Д.
У меня есть сценарий, в который я могу импортировать файл.csv, прочитать столбец, который меня интересует, а затем выполнить команду для каждого элемента в этом столбце. Это прекрасно работает, хотя я хотел бы немного глубже понять, как он обрабатывает данные.
$fileone = Import-Csv "C:\myfile.csv"
$fileone.MachineName | ForEach-Object {
$path = Test-Path "\\$_\c$\Program Files (x86)\dir\dir\*" -Include ThisFile.exe
if ($path -eq $true ) {
Write-Host "The file ThisFile.exe exists on $_"
} else {
Write-Host "The file ThisFile.exe does not exist on $_"
}
}
Это запишет в консоль, но я хотел бы экспортировать вывод в другой.csv, организовать его данные. Я также хотел бы знать, как манипулировать вводом больше.
Например, как я могу получить первую строку (строку заголовка) импортированного CSV, выбрать только два столбца, такие как MachineName и AssigneeName, выполнить команду для каждого MachineName (имя компьютера в моей сети), получить результат команды и экспортируйте это в организованный csv, в котором перечислены column1: имя_машины и column2: asignee column3: результат команды / вывода.
И если я захочу запустить его на компьютерах в разных доменах, а не только в текущем, то сделаю еще один шаг вперед
Я хотел бы придерживаться Import-Csv
а также Export-Csv
,
Я пытался использовать:
If ($path -eq $true ) { Write-Output "$_" | Out-File "C:\yesexe.csv" -Append }
Else { Write-Output "$_" | Out-File "C:\noexe.csv" -Append }
}
Это работает, но это не похоже на плавный подход. Что, если бы я хотел больше столбцов, чем просто MachineName? Если бы я хотел column2 и результат в отдельных столбцах?
Экспорт-Csv...