Flash info

Les vrais admins utilisent la ligne de commande... (dixit le mag Windows IT Pro du 6/02/07) Avis aux amateurs pour affirmer leur virilité Surprised.
La suite est ici.

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 2
graphgraph
Karma: 0  
Script Liunx - 12/10/18 10:08 Bonjour,

je suis un petit nouveau qui à besoin d'un coupe de main avec un petit script powershell-linux,

je vous explique je dois remonter les informations suivantes de mes VM tournant sous linux : Proc/Mémoires/disque dur et je bloc, voilà ce que j'ai pour le moment :

Code:

  $username "scripts-**" $password get-content C:\Users\administrateur.**\Powershell.txt  convertto-securestring         $Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username,$password New-SSHSession -ComputerName $Serveurs -Credential $cred  foreach ($Serveur in $Serveurs) {  $elements Invoke-SSHCommand -Index 0 -Command "df -h"Format-list | Out-String et voila le résultat : Host       s-** Output     : {Sysde fichiers Taille Utilisé Dispo UtiMonté surudev               2,0G       0  2,0G   0% /devtmpfs              396M     46M  351M  12% /run,               /dev/sda1           28G    2,3G   24G   9% /...} ExitStatus 0



Mon problème c'est que je ne récupère pas tout à cause des /... et je bloque dessus,

Quelqu'un à une idée ??

Merci d'avance

Message édité par: JulesP, à: 17/10/18 07:38
  | | L'administrateur a désactivé l'accés public en écriture.
tonic8
Utilisateur

PowerShelleur Platinum
Messages: 226
graphgraph
Karma: 12  
Re:Script Liunx - 12/10/18 20:49 Bonjour Jules

il y a déjà un pb de visulaisation de ton code et du resultat

tu devrais editer ton message et utiliser "[ code ]mettre le code ici[ /code ]

cela permettra de lire plus facilement ton texte

comme ci-dessous:
Code:

  c:\dir



pour ton pb, je ne penses pas que ce soit le "/" ton pb.

en effet il y a "...", et ça, ça veut dire que powershell tronque la reponse pour plus de lisibilité.

je vois pas a quoi sert le format-list et le out-string dans ton code a ce moment là de la boucle

Code:

 Format-list | Out-String



tu devrais proceder a un test sur une seule machine et voir ce que GM (get-member) retourne on aura l'ensemble des proprietes de l'objet $elements

Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $elements gm



une des proprietes devrait être "Output"

donc peut etre le code suivant devrait t'aider , je n'ai pas de linux sous la main, je ne peux pas tester

Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $outputLinux $elements select -expandproperty Output $outputLinux



Bonne chance
Tonic8
  | | L'administrateur a désactivé l'accés public en écriture.
JulesP
Utilisateur

PowerShelleur Débutant
Messages: 2
graphgraph
Karma: 0  
Re:Script Liunx - 17/10/18 09:32 Bonjour,

Tout d'abord merci pour tout cela m'aide beaucoup, alors voici les résultat pour une machine :

pour la commande
Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $elements gm



Le résultat :
Code:

  TypeName Renci.SshNet.SshCommand Name        MemberType   Definition                         ----        ----------   ----------                         Equals      Method       bool Equals(System.Object obj)     GetHashCode Method       int GetHashCode()                  GetType     Method       type GetType()                     ToString    Method       string ToString()                  Duration    NoteProperty timespan Duration=00:00:00.0593341 Error       NoteProperty string Error=                      ExitStatus  NoteProperty int ExitStatus=0                   Host        NoteProperty string Host=s-web10-pp             Output      NoteProperty string[] Output=System.String[]   



et pour la commande
Code:

  $elements Invoke-SSHCommand -Index 0 -Command "df -h" $outputLinux $elements select -expandproperty Output $outputLinux



le résultat :
Code:

  Sysde fichiers Taille Utilisé Dispo UtiMonté sur udev               2,0G       0  2,0G   0% /dev tmpfs              396M     46M  351M  12% /run /dev/sda1           28G    2,3G   24G   9% / tmpfs              2,0G       0  2,0G   0% /dev/shm tmpfs              5,0M       0  5,0M   0% /run/lock tmpfs              2,0G       0  2,0G   0% /sys/fs/cgroup tmpfs              396M       0  396M   0% /run/user/0 tmpfs              396M       0  396M   0% /run/user/1000



c'est parfait, sauf que maintenant il faut que j'arrive a en faire une boucle pour tout les serveurs et que le résultat remonte dans un csv
Donc si tu avais encore une ou deux idée je suis preneur
  | | L'administrateur a désactivé l'accés public en écriture.
tonic8
Utilisateur

PowerShelleur Platinum
Messages: 226
graphgraph
Karma: 12  
Re:Script Liunx - 21/10/18 22:04 Salut

ben le plus gros est fait et tu l'as meme fait.

ta boucle au debut + le nouveau code.

par contre ce que te renvoi linux c'est une string ($outputLinux est finalement une simple chaine de caractere).

Donc tu peux pousser dans un fichier texte qui porte le nom de ton serveur.

si tu veux recuperer les valeurs, là va falloir faire du parsing et c'est pas la même limonade.

Tonic8
  | | L'administrateur a désactivé l'accés public en écriture.
© 2018 PowerShell-Scripting.com