public/Get-ServiceImproved.ps1
function Get-ServiceImproved { [CmdletBinding()] Param ( [Parameter(Mandatory=$true, Position=0)] $ComputerName, $searchstring = "*", [System.Management.Automation.PSCredential] $Credential ) $scriptblock = { $services = Get-CimInstance win32_service | Where-Object {$_.Name -like "$using:searchstring"} | Select-Object -property Name,DisplayName,StartMode,State,@{ Name = "LogOnAs"; Expression ={$_.StartName}},Description,PathName,ProcessId | Sort-Object StartMode return $services }# end script block #Execute Scriptblock on Computername(s) with set parameters. $params = @{ ScriptBlock = $scriptblock } if ($ComputerName){ $params['ComputerName'] = $ComputerName } if ($Credential){ $params['Credential'] = $Credential } Invoke-Command @params } |