powershellservicescriptingless-unix

Powershell, paginating output from foreach


Seems like this should be simple, but powershell is winning another battle with me. Simply wanting to output the name of all the services running on a system, and their executable path, and pipe that into something I can use to search through it like Less.

So far I have:

$services = get-WmiObject -query 'select * from win32_service'
foreach($service in $services){$service.Name $service.Pathname} | less

But thats giving me the "An empty pipe element is not allowed." that I seem to have come up alot. Anyone tell me how to fix this, either by outputting to a file and Ill go through it with vim, or pipe to page/less/etc so I can do quick scan (with my eyes not programically quite yet).


Solution

  • Try doing the following

    $services | %{ $_.Pathname } | less
    

    EDIT Add multiple to the path

    $services | %{ "{0} {1}" -f $_.Pathname,$_.Name } | less