Question Récupération des tableaux avec les JOBs limités
- clément
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 11 ans 9 mois #17671
par clément
Récupération des tableaux avec les JOBs limités a été créé par clément
Bonjour à tous,
J'ai un soucis lors de la récupération des données après l’exécution d'un job.
Je m’explique,
Au départ je lance un start-job, puis un Wait-job,
Ensuite j’exécute un receive-job qui me permet de récupérer mon tableau.
Le problème est que mon tableau contient des sous tableaux qui peuvent eux aussi contenir d'autres sous tableaux.
Lors de la récupération de mon tableau, je peut visualiser le 1er et le 2ème niveau, mais je n'ai pas de données en dessous.
En clair il ne me récupère pas l'intégralité des données de mon tableau
Savez vous comment récupérer tout les niveaux de mon tableau, Comment enlever cette limitation de récupération de données??
((De ce que j'ai pu lire sur le livre \"Windows PowerShell V3\", cela serai du à la limitation des données lors du transfert d'un powershell à un autre qui se fais via du XML.))
Merci d'avance pour votre aide et bonne journée à vous
J'ai un soucis lors de la récupération des données après l’exécution d'un job.
Je m’explique,
Au départ je lance un start-job, puis un Wait-job,
Ensuite j’exécute un receive-job qui me permet de récupérer mon tableau.
Le problème est que mon tableau contient des sous tableaux qui peuvent eux aussi contenir d'autres sous tableaux.
Lors de la récupération de mon tableau, je peut visualiser le 1er et le 2ème niveau, mais je n'ai pas de données en dessous.
En clair il ne me récupère pas l'intégralité des données de mon tableau
Savez vous comment récupérer tout les niveaux de mon tableau, Comment enlever cette limitation de récupération de données??
((De ce que j'ai pu lire sur le livre \"Windows PowerShell V3\", cela serai du à la limitation des données lors du transfert d'un powershell à un autre qui se fais via du XML.))
Merci d'avance pour votre aide et bonne journée à vous
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 9 mois #17675
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Récupération des tableaux avec les JOBs limités
anonym17 écrit:
Dans ce cas il faut modifier le type ETS dans le code du scriptblock :
[code:1]
$j = Start-job {
Update-TypeData -TypeName Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet -SerializationDepth 10 -Force
Get-Counter '\Processor(_total)\% Processor Time' -MaxSamples 2} | Wait-job | Receive-job
}
$j[0].CounterSamples.CookedValue
[/code:1]
A confirmer.
C'est peut être un pb de serialization depth .((De ce que j'ai pu lire sur le livre \"Windows PowerShell V3\", cela serai du à la limitation des données lors du transfert d'un powershell à un autre qui se fais via du XML.))
Dans ce cas il faut modifier le type ETS dans le code du scriptblock :
[code:1]
$j = Start-job {
Update-TypeData -TypeName Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet -SerializationDepth 10 -Force
Get-Counter '\Processor(_total)\% Processor Time' -MaxSamples 2} | Wait-job | Receive-job
}
$j[0].CounterSamples.CookedValue
[/code:1]
A confirmer.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clément
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 11 ans 9 mois #17679
par clément
Réponse de clément sur le sujet Re:Récupération des tableaux avec les JOBs limités
Merci pour ta réponse,
Malheureusement, je n'utilise pas ça pour les compteurs de performances.
Mon but est d'envoyer une requête sur un vCenter via PowerCli, est c'est lors de ma requête :
\"(Get-Cluster <Mon_Cluster> | get-View)\"
Que celui-ci me génère des tableaux dans des sous tableaux qui eux même intègre des sous tableaux...etc.
As-tu une solution?
[code:1]
$j = Start-job {
$b = Add-PSSnapin -Name \"VMware.VimAutomation.Core\" -ErrorAction SilentlyContinue
$a = Connect-VIServer \"My_IP\" -Session \"MyIdSession\"
$ClusterInfo = (Get-cluster -Name \"My_Cluster\" | Get-View)
Return $ClusterInfo
} | Wait-job | Receive-job
[/code:1]
Merci d'avance
Malheureusement, je n'utilise pas ça pour les compteurs de performances.
Mon but est d'envoyer une requête sur un vCenter via PowerCli, est c'est lors de ma requête :
\"(Get-Cluster <Mon_Cluster> | get-View)\"
Que celui-ci me génère des tableaux dans des sous tableaux qui eux même intègre des sous tableaux...etc.
As-tu une solution?
[code:1]
$j = Start-job {
$b = Add-PSSnapin -Name \"VMware.VimAutomation.Core\" -ErrorAction SilentlyContinue
$a = Connect-VIServer \"My_IP\" -Session \"MyIdSession\"
$ClusterInfo = (Get-cluster -Name \"My_Cluster\" | Get-View)
Return $ClusterInfo
} | Wait-job | Receive-job
[/code:1]
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 9 mois #17682
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Récupération des tableaux avec les JOBs limités
anonym17 écrit:

Une version remaniée 'Fr':
[code:1]
$j = Start-job {
Get-Counter '\processeur(_total)\% Temps processeur' -MaxSamples 2}
$res=$j| Wait-job | Receive-job
$res[0].CounterSamples[0].CookedValue
$j = Start-job {
Update-TypeData -TypeName Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet -SerializationDepth 10 -Force
Get-Counter '\processeur(_total)\% Temps processeur' -MaxSamples 2}
$res=$j| Wait-job | Receive-job
$res[0].CounterSamples[0].CookedValue
[/code:1]
Dans le premier cas, l'objet renvoyé ne contient qu'un niveau, Objet.Objet.
Dans le second cas on modifie la profondeur des niveaux, ici 10, Objet1.Objet2.Objet3.etc.
C'est bien l'imbrication d'objet qui pose problème.
Dans ton cas il faut retrouver le type du ou des objets émis dans le pipeline.
C'est un exempleMalheureusement, je n'utilise pas ça pour les compteurs de performances.
Une version remaniée 'Fr':
[code:1]
$j = Start-job {
Get-Counter '\processeur(_total)\% Temps processeur' -MaxSamples 2}
$res=$j| Wait-job | Receive-job
$res[0].CounterSamples[0].CookedValue
$j = Start-job {
Update-TypeData -TypeName Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet -SerializationDepth 10 -Force
Get-Counter '\processeur(_total)\% Temps processeur' -MaxSamples 2}
$res=$j| Wait-job | Receive-job
$res[0].CounterSamples[0].CookedValue
[/code:1]
Dans le premier cas, l'objet renvoyé ne contient qu'un niveau, Objet.Objet.
Dans le second cas on modifie la profondeur des niveaux, ici 10, Objet1.Objet2.Objet3.etc.
C'est bien l'imbrication d'objet qui pose problème.
Dans ton cas il faut retrouver le type du ou des objets émis dans le pipeline.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clément
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 11 ans 9 mois #17689
par clément
Réponse de clément sur le sujet Re:Récupération des tableaux avec les JOBs limités
Merci pour tes réponses et réactivités, j'avais mal vu la nuance à ton 1er poste, c'était de ma faute.
J'ai donc testé, mis le bon typeName qui correspond pour moi à \"VMware.Vim.ClusterComputeResource\"
Maintenant, le problème est que je pense que sous mon PowerShell V2
, cette commande ne fonctionne pas, car cela ne change strictement rien.
Je pense que sous PowerShell V3 ou V4 ça fonctionnerai, mais pas sous ma version (Mais je n'affirme pas).
j'aurai voulu garder ma Version 2 pour une histoire de compatibilité plus grande.
Pense tu qu'il y est une solution alternative?
merci encore
J'ai donc testé, mis le bon typeName qui correspond pour moi à \"VMware.Vim.ClusterComputeResource\"
Maintenant, le problème est que je pense que sous mon PowerShell V2
Je pense que sous PowerShell V3 ou V4 ça fonctionnerai, mais pas sous ma version (Mais je n'affirme pas).
j'aurai voulu garder ma Version 2 pour une histoire de compatibilité plus grande.
Pense tu qu'il y est une solution alternative?
merci encore
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 9 mois #17691
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Récupération des tableaux avec les JOBs limités
anonym17 écrit:

anonym17 écrit:
La v2 ayant un bug sur ce point, il existe une solution dynamique (je dois retrouver le lien).
Sinon créer/reconstruire le fichier .ps1xml en modifiant la balise adéquate.
Un module est peut être préférable pour le charger ainsi chacun de tes scripts pourrait en bénéficier.
Enfin à toi de voir.
D'après ce post ceci devrait suffire :
[code:1]
<Types>
<Type>
<Name>VMware.Vim.ClusterComputeResource</Name>
<Members>
<MemberSet>
<Name>PSStandardMembers</Name>
<Members>
<NoteProperty>
<Name>SerializationDepth</Name>
<Value>
10
</Value>
</NoteProperty>
</Members>
</MemberSet>
</Members>
</Type>
</Types>
[/code:1]
Attention toutefois à la surcharge (réseau et/ou processeur) que cela apporte.
Enfin si l'exécution du job se fait sur la même machine, un export-clixml est peut être une autre solution.
A tester.
Dans le forum 'pour les initiés', je prend qq libertés dans le contenuj'avais mal vu la nuance à ton 1er poste
anonym17 écrit:
Au temps pour moi je n'ai pas précisé la version, ici la V3.Pense tu qu'il y est une solution alternative?
La v2 ayant un bug sur ce point, il existe une solution dynamique (je dois retrouver le lien).
Sinon créer/reconstruire le fichier .ps1xml en modifiant la balise adéquate.
Un module est peut être préférable pour le charger ainsi chacun de tes scripts pourrait en bénéficier.
Enfin à toi de voir.
D'après ce post ceci devrait suffire :
[code:1]
<Types>
<Type>
<Name>VMware.Vim.ClusterComputeResource</Name>
<Members>
<MemberSet>
<Name>PSStandardMembers</Name>
<Members>
<NoteProperty>
<Name>SerializationDepth</Name>
<Value>
10
</Value>
</NoteProperty>
</Members>
</MemberSet>
</Members>
</Type>
</Types>
[/code:1]
Attention toutefois à la surcharge (réseau et/ou processeur) que cela apporte.
Enfin si l'exécution du job se fait sur la même machine, un export-clixml est peut être une autre solution.
A tester.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.057 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Récupération des tableaux avec les JOBs limités