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 :

utilisation CPU serveur distant


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Par défaut utilisation CPU serveur distant
    Bonjour,

    je cherche à consulter l'activité CPU d'un serveur distant.

    En fouillant sur internet, j'ai récupéré un script à exécuter en local:

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # Option A: This is if you just have the name of the process; partial name OK
    $ProcessName = "SQL"
    # Option B: This is for if you just have the PID; it will get the name for you
    #$ProcessPID = "6860"
    #$ProcessName = (Get-Process -Id $ProcessPID).Name
    $CpuCores = (Get-WMIObject Win32_ComputerSystem).NumberOfLogicalProcessors
    $Samples = (Get-Counter "\Process($Processname*)\% Processor Time").CounterSamples
    $Samples | Select `
    InstanceName,
    @{Name="CPU %";Expression={[Decimal]::Round(($_.CookedValue / $CpuCores), 2)}}

    Comment l'utiliser pour interroger un serveur distant SVP?

    merci pour votre aide!

  2. #2
    Membre émérite Avatar de suchiwa
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2010
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2010
    Messages : 435
    Par défaut
    Bonjour Nutopia,

    Encapsuler ton script dans un invoke-command.
    La partie session avec le nom de ton serveur et tes credentials.
    la partie scriptblock qui prend ton code
    et la partie argumentlist optionnelle, suivant ton scriptblock

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function ta-fonction{
    param($server, $scriptblock, $argumentlist)
    
    $session = New-PSSession -ComputerName $server -credential get-credential
    $command = $(Invoke-Command -Session $session -ScriptBlock $scriptBlock -ArgumentList $argumentlist)
    }
    Si tu as plusieurs serveurs, à partir d'un fichier (avec tous les serveurs) et d'un foreach
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $serveurs = get-content serveurs.txt
    $serveurs | % {
    ta-fonction -server $_ -scriptblock $scriptblock -argumenlist $argumentlist
    }
    Vincent

  3. #3
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2015
    Messages : 66
    Par défaut
    Une alternative à Invoke-Command est d'utiliser le paramètre -ComputerName de Get-WMIObject et Get-Counter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $server = "" # nom du serveur à renseigner
    $ProcessName = "SQL"
    $CpuCores = (Get-WMIObject Win32_ComputerSystem -ComputerName $server).NumberOfLogicalProcessors
    $Samples = (Get-Counter "\Process($Processname*)\% Processor Time" -ComputerName $server).CounterSamples
    $Samples | Select `
    InstanceName,
    @{Name="CPU %";Expression={[Decimal]::Round(($_.CookedValue / $CpuCores), 2)}}
    Par contre si tu n'es pas admin tu n'auras pas les droits d'exécuter ce code à distance. Ce qu'il faudra alors faire c'est d'ajouter le paramètre -Credential aux deux cmdlets avec un object $credential créé à partir de Get-Credential.

  4. #4
    Membre émérite Avatar de suchiwa
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2010
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2010
    Messages : 435
    Par défaut
    Citation Envoyé par mickyballadelli Voir le message

    Par contre si tu n'es pas admin tu n'auras pas les droits d'exécuter ce code à distance. Ce qu'il faudra alors faire c'est d'ajouter le paramètre -Credential aux deux cmdlets avec un object $credential créé à partir de Get-Credential.
    Bonjour,

    Oui le get-credential (qui est une fonction implicite) de l'objet $session doit avoir des privilèges élevés.

    Cordialement,
    Vincent

  5. #5
    Membre émérite Avatar de suchiwa
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2010
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2010
    Messages : 435
    Par défaut
    Citation Envoyé par mickyballadelli Voir le message
    Une alternative à Invoke-Command est d'utiliser le paramètre -ComputerName de Get-WMIObject et Get-Counter

    mickyballadelli,

    En relisant le code, c'est pas une alternative à l'invoke-commande, ici tu détailles le contenu de "$scriptblock", qui peut être ton code ou autres.

    Cordialement,
    Vincent

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2015
    Messages : 66
    Par défaut
    Je faisais référence à la question initiale, c'est à dire adapter le code qu'il/elle a trouvé, pour récupérer les informations d'un serveur distant. En ça, c'est une alternative, car le résultat est le même.
    J'aurais dû être plus clair dans ma réponse.

Discussions similaires

  1. [MySQL] BD utilisant un serveur distant
    Par Nasku dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/05/2014, 11h15
  2. [Jenkins] Utiliser le plugin Phing sur un serveur distant
    Par pagoda dans le forum Intégration Continue
    Réponses: 0
    Dernier message: 09/07/2013, 17h25
  3. Réponses: 3
    Dernier message: 08/11/2010, 18h20
  4. Utilisation du Serveur SMTP distant pour les messages locaux
    Par EDegroote dans le forum Exchange Server
    Réponses: 1
    Dernier message: 13/02/2009, 21h16
  5. Connectivité avec des serveurs distants
    Par Ph. B. dans le forum XMLRAD
    Réponses: 8
    Dernier message: 07/02/2003, 13h16

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