11
votes

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 contenant la chaîne "SQL". Par exemple, je veux voir

  • SQLAgent $ SQL2008_R2 LI>
  • SQLBrowser LI>
  • sqlwriter li> ul>

    donc j'essaie ceci: p> xxx pré>

    Ceci affiche tous les services, mais comme une liste. P>

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


0 commentaires

3 Réponses :


16
votes

Le moyen le plus simple d'atteindre qui utilise -filter code> paramètre xxx pré>

Si vous voulez aller avec votre code uniquement, voici la façon dont vous pouvez Modifiez-le: P>

Get-WmiObject Win32_Service | Select-Object -ExpandProperty Name | 
Select-String -pattern 'SQL'


1 commentaires

Merci. Mes prochaines tâches d'apprentissage consiste à comprendre la différence entre "Select-Object -ExpandProperty Name" et "Select-Object {$ _. Nom}"



18
votes

Vous pouvez utiliser get-service à la place de Get-WMIObject et le faire comme ceci "

get-service sql* | select -expand name


1 commentaires

Pour revenir (ou liste) plusieurs propriétés, utilisez Select-Object et des propriétés séparées par virgule tels que Get-Service SQL * | Nom de sélection-objet, displayName



9
votes
Get-Service | Where-Object {$_.Name -match "SQL"} |Select-Object Name

1 commentaires

AFAIK C'est le moyen le plus simple que si vous devez exécuter une regex sérieuse pour correspondre à un certain nom