Question
[Résolu]Invoke-Command/WinRM:récupérer le résultat
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
bilbao écrit:
Le résultat est émis dans le pipeline ou dans un fichier ?Voilà, j'ai récemment écris un script qui récupère plein plein d'informations sur un ordinateur en Workgroup.
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.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
Mais je n'avais pas vu que Invoke-Command retourne un résultat.
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.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
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.je ne voit toujours pas comment récupérer les variables de la sessions distante pour pouvoir ensuite les exporter.
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.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Non puisque l'export utilise un fichier, donc le FileSystem sur le distant.Si j'ai bien compris tu propose quelque chose du genre :
bilbao écrit:
Le pipe est un canal de transmission 'provisoire', l'export se fait sur un dispositif persistant.Je ne voit pas trop comment tous les exporter via un pipe.
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:
Bienvenue au club, faire simple n'est pas le plus facilePS: Je sais je complique toujours tous.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]Invoke-Command/WinRM:récupérer le résultat