Начнем с того, что я новичок в Powershell и не лучший из тех, кто работает с его кодом и скриптами, но пытается учиться. А теперь к проблеме!
Я работаю над сценарием, который извлекает информацию с компьютеров в сети. У меня есть код, который вполне подходит для моих целей. Но у меня проблема, когда дело доходит до некоторой информации, в основном информации, содержащей несколько объектов, например службы.
#This application will pull information from a list of devices. The devices list is
sent with C:\Users\test.txt and output is pushed to a file C:\Users\devices.csv
function kopiera
{
param
(
[Parameter(ValueFromPipeline=$true)]
[string[]]$Computer=$env:computername
)
Process
{
$computer | ForEach-Object{
$service=Get-WmiObject -Class Win32_Service -Computername $_
$prop= [ordered]@{
Service =$service.caption
}
New-Object PSCustomObject -Property $prop
}
}
}
Get-Content C:\Users\test.txt | kopiera | Export-csv c:\Users\devices.csv
Когда я экспортирую файл csv, он выглядит так:
ТИП System.Management.Automation.PSCustomObject
"Услуга"
"System.Object []"
Таким образом, он не получает service.caption (потому что их слишком много?). Но если я заменю export-csv C: \ Users \ device.csv на out-файл C: \ Users \ devices.txt, он будет выглядеть так:
{Adobe Acrobat Update Service, Adobe Flash Player Update Service, Andrea ADI Filters Service, Application Experience ...}
Так что он начинает выглядеть лучше, но не все (все еще потому, что сервисов слишком много?). Что я хотел бы сделать с этим файлом экспорта / вывода, так это чтобы информация отображалась вертикально, а не горизонтально.
(Требуемый результат)
Служба Adobe Acrobat
Служба обновления Adobe Flash Player
и так далее..
вместо: (Фактический результат)
Служба обновления Adobe Acrobat, служба обновления Adobe Flash Player и так далее ...
Есть ли способ сделать это возможным, я пытался какое-то время и не могу осмыслить это.
Любая помощь приветствуется!