powershell service powershell-v2.0 powershell-v3.0

¿Cómo puedo extraer "Ruta al ejecutable" de todos los servicios con PowerShell?



service powershell-v2.0 (2)

Creo que tendrás que recurrir a WMI:

Get-WmiObject win32_service | ?{$_.Name -like ''*sql*''} | select Name, DisplayName, State, PathName

Actualizar Si desea realizar alguna manipulación en los datos seleccionados, puede usar las propiedades calculadas como se describe here .

Por ejemplo, si solo deseaba el texto entre comillas para el nombre de ruta, podría dividir entre comillas dobles y tomar el elemento de la matriz 1:

Get-WmiObject win32_service | ?{$_.Name -like ''*sql*''} | select Name, DisplayName, @{Name="Path"; Expression={$_.PathName.split(''"'')[1]}} | Format-List

Get-Service *sql* | sort DisplayName | out-file c:/servicelist.txt

Tengo un script de PowerShell de una línea para extraer la lista de todos los servicios que se ejecutan en mi máquina local, ahora, además de mostrar "Estado", "Nombre" y "Nombre de pantalla " También quiero mostrar "Ruta al ejecutable"


Una variante en la consulta WMI que puede ser más rápida (solo tuve que hacer esto para un cliente SCCM)

$SQLService=(get-wmiobject -Query ''Select * from win32_service where Name like "*SQL*"'') | Select-object Name, DisplayName, State, Pathname

El otro truco es interceptar los múltiples resultados de SQL si desea los nombres de ruta sin las comillas dobles (para que pueda actuar sobre ellos)

$SQLService | Select-Object Name, DisplayName, State, @{Name=''PathName'';Expression=$_.Pathname.replace(''"'','''')}

La gran ventaja de usar -query en el get-wmiobject (o get-ciminstance ) es la velocidad de procesamiento. El ejemplo anterior obtiene una lista completa y luego se filtra, mientras que el último toma una lista muy directa.

Sólo añadiendo dos centavos :)

Saludos a todos! Sean The Tech Energized