Question [Résolu]Invoke-Command/WinRM:récupérer le résultat

Plus d'informations
il y a 15 ans 10 mois #6719 par Arthur
Voilà, j'ai récemment écris un script qui récupère plein plein d'informations sur un ordinateur en Workgroup.(EventLog,process,services,info matériels etc..)
Bref le script marche au poil,mais il ne fait pas très \"classe\".En effet pour récupérer mes informations je suis obligé de créer une 2em session WinRM, depuis l'ordinateur distant vers le mien.
C'est très gênant car du coup cela demande de rentrer un deuxième mot de passe et cela allonge le temps d'exécution du script.J'ai cherché dan le Man de powershell pour savoir si il y avait un moyen pour que \"Invoke-Command\" retourne un résultat (un peut comme dans \"Start-Job\") mais je n'est rien trouvé.

Alors voilà avant que j'abandonne définitivement l'idée de n'utiliser qu'une seul session WinRM, je voulais savoir si quelqu'un avait une solution ?

Message édité par: bilbao, à: 6/05/10 09:50<br><br>Message édité par: Arnaud, à: 6/05/10 18:56

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6720 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:WInRM-Résultat
Salut,
bilbao écrit:

Voilà, j'ai récemment écris un script qui récupère plein plein d'informations sur un ordinateur en Workgroup.

Le résultat est émis dans le pipeline ou dans un fichier ?
J'ai un peu de mal à comprendre le pourquoi d'une seconde session :

L'applet de commande Invoke-Command exécute des commandes sur ordinateur local ou distant et retourne toute les sorties des commandes, notamment les erreurs. Avec une commande Invoke-Command unique, vous pouvez exécuter des commandes sur plusieurs ordinateurs.


Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6721 par Arthur
Réponse de Arthur sur le sujet Re:WInRM-Résultat
En faite le script crée une seconde session pour exporter les données dans des fichiers html et csv.
Mais je n'avais pas vu que Invoke-Command retourne un résultat. :whistle: (Enfin je ne l'avais pas compris comme ca :pinch: faut vraiment que je dorme plus.)
Je vais explorer la piste.

EDIT : En y réfléchissant plus je ne voit toujours pas comment récupérer les variables de la sessions distante pour pouvoir ensuite les exporter. :dry:<br><br>Message édité par: bilbao, à: 6/05/10 10:18

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6723 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:WInRM-Résultat
bilbao écrit:

je ne voit toujours pas comment récupérer les variables de la sessions distante pour pouvoir ensuite les exporter.

Tu dois revoir la conception de ton script, tout du moins séparer la récupération des informations de leur présentation ( html), ainsi tu émets tes objets dans le pipe et plus dans une variable locale.
Tu auras donc, à confirmer, plutot un get-infos qu'un view-html.
Au final tu obtiendras quelque chose comme Get-Infos -Computer Srv |View-Htlm<br><br>Message édité par: Laurent Dardenne, à: 6/05/10 16:05

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6726 par Arthur
Réponse de Arthur sur le sujet Re:WInRM-Résultat
Le problème est que j'ai plusieurs objets à exporter dans différents fichiers (j'utilise 3 Export-csv et 1 Out-file ) Je ne voit pas trop comment tous les exporter via un pipe.

Si j'ai bien compris tu propose quelque chose du genre :

[code:1]Invoke-Command XXX.XXX.XXX.XXX-ScriptBlock { Get-date } -Credential XXX.XXX.XXX.XXX\XXXXXX | export-csv date.csv[/code:1]

PS: Je sait je complique toujours tous. :evil:<br><br>Message édité par: bilbao, à: 6/05/10 11:59

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6728 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:WInRM-Résultat
bilbao écrit:

Si j'ai bien compris tu propose quelque chose du genre :

Non puisque l'export utilise un fichier, donc le FileSystem sur le distant.
bilbao écrit:

Je ne voit pas trop comment tous les exporter via un pipe.

Le pipe est un canal de transmission 'provisoire', l'export se fait sur un dispositif persistant.
Si tu utilise le pipe, l'export se fera sur le poste local. En théorie, là où tu utilises un cmdlet d'export tu devrais avoir une émission de l'objet dans le pipe.
C'est pour cette raison qu'il est recommandé que chaque script/fonction/cmdlet renvoit des objets. Tu peux vouloir un jour le 'formater' en Htlml, un autre le 'formater' en Excel
Les cmdlet out-xx sont utilisé dans la dernière partie des traitements, mais ne doivent pas être liés aux traitements de collecte des informations.
Ton pb est dans le découpage du traitement, tu commences à faire du dev ;)
bilbao écrit:

PS: Je sais je complique toujours tous.

Bienvenue au club, faire simple n'est pas le plus facile :P<br><br>Message édité par: Laurent Dardenne, à: 6/05/10 16:07

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.050 secondes
Propulsé par Kunena