Afficher tous les noms de service correspondant à un modèle de chaîne

J'essaie d'afficher le nom (juste le nom) de tous les services installés qui contiennent la chaîne "SQL". Par exemple, je veux voir

  • SQLAgent$SQL2008_R2
  • SQLBrowser
  • SQLWriter

J'ai donc essayer ceci:

Get-WmiObject Win32_Service

Cette affiche tous les services, mais comme une liste.

Exit Code : 0
Name      : ProtectedStorage
ProcessId : 664
StartMode : Manual
State     : Running
Status    : OK

Exit Code : 1077
Name      : QWAVE
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK
(etc...)

C'est bon, mais je veux juste voir le nom. J'ai donc du type:

Get-WmiObject Win32_Service | select-object Name

Et je reçois ce que j'attends:

sppuinotfy
SQLAgent$SQL2008_RT
SQLBrowser
SQLWriter
SSDPSRV
(etc ..)

Tout est bon. Je prends la prochaine étape de filtrage des noms de n'inclure SQL ceux liés à:

Get-WmiObject Win32_Service | select-object Name | select-string -pattern 'SQL'

Et maintenant, c'est déroutant. Voici mon résultat:

@{Name=BcmSqlStartupSvc}
@{Name=MSOLAP$SQL2008_R2}
@{Name=MSSQL$SQL2008_R2}
(etc ...)

Pourquoi j'obtiens ce résultat, au lieu de simplement les noms?
Que dois-je taper pour obtenir les noms?

OriginalL'auteur Andrew Shepherd | 2011-01-19