IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Pb nom d'un service contenant $ [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 71
    Par défaut Pb nom d'un service contenant $
    Bonjour,

    Soit le script ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    get-Service *|
     Sort-Object -property Name|
     where {$_.name -match "MSSQL$MSSQL2000"}|
     format-Table Name, DisplayName
    il me renvoi :
    Name | DisplayName
    ---- | -----------
    MSSQL$MSSQL2000 | MSSQL$MSSQL2000
    MSSQLServerADHelper | MSSQLServerADHelper
    SQLAgent$MSSQL2000 | SQLAgent$MSSQL2000
    Le signe $ agit comme un OU.

    comment sélectionner uniquement le service dont le nom = MSSQL$MSSQL2000 ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 71
    Par défaut
    Ma solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $srvName = "MSSQL`$MSSQL2000"
    $servicePrior = get-Service "$srvName"
    $serviceStatus=$servicePrior.status
    
    "Start : " + $srvName + " is now " + $serviceStatus
    if($serviceStatus -eq "Running")
    {
    	$newServiceStatus="Stopped"
    	$servicePrior.Stop()	
    }
    else
    {
    	$newServiceStatus="Running"
    	$servicePrior.Start()
    }
    
    while($serviceStatus -ne $newServiceStatus) 
    { 
        $servicePrior = get-Service "$srvName"
    	$serviceStatus=$servicePrior.status 
    }
    
    $servicePrior = get-Service "$srvName"
    "End : " + $srvName + " is now " + $servicePrior.status

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    il faut échapper le signe dollar, à l'aide du caractère backtick [Alt-Gr]-7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    get-Service *|
      Sort-Object -property Name|
      where {$_.name -match "MSSQL`$MSSQL2000"}|
     f ormat-Table Name, DisplayName
    Sinon ta chaine est expansée, se transformant en
    La variable $MSSQL2000 n'existant pas, ta chaîne est donc égale à "MSSQL", ensuite comme l'opérateur -match est une expression régulière, et bien ça match ! L'opérateur -eq est plus restrictif.

    Tu peux aussi utiliser les simples quotes, pour éviter l'expansion de chaîne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {$_.name -match 'MSSQL$MSSQL2000'}
    [edit]
    Tu peux peut être utiliser la méthode WaitForStatus...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Microsoft officialise le changement de nom de son service cloud
    Par Stéphane le calme dans le forum Microsoft Azure
    Réponses: 0
    Dernier message: 25/03/2014, 23h05
  2. Recherche du nom d'un champs contenant une valeur donnée
    Par gliderman dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/11/2011, 09h18
  3. Service contenant un BroadCastReceiver
    Par David55 dans le forum Android
    Réponses: 34
    Dernier message: 26/08/2011, 13h46
  4. Réponses: 2
    Dernier message: 24/10/2008, 15h50
  5. Nom d'une table contenant une variable
    Par patsak dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 10/07/2008, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo