Question
Tableau - Récupérer valeur
- bob kent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 10 ans 1 mois #21424
par bob kent
Tableau - Récupérer valeur a été créé par bob kent
Bonjour,
J'ai un petit problème pour récupérer toutes mes données contenu dans une requêtes powershell.
J'ai une requête qui permet de récupérer des info d'une GPO concernant des imprimantes.
Je veux donc un tableau excel en sorti avec une colonne nom de la gpo et une autre avec les imprimantes en fonction du nom de la gpo.
Sa marche presque bien, le problème se situe pour récupérer les imprimantes, les data sont bien la et dispo mais j'arrive pas à les stocké dans mon tableau et les exporté correctement.
lorsque j'exécute mon script en sortie (sans export csv, affichage sur la console powershell) j'ai le nom de mes imprimantes entouré de {imprimante1, imprimante2,...}
avec export j'ai dans la colonne des imprimantes => System.Object[]
[code:1]#Création d'un tableau
$tableau =@()
#Relevé de la configuration des GPO
$gpo = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly
foreach ($gpocitrix in $gpo){
$Object = new-object PSObject
#récupère le nom de la gpo
$GpoName = $gpocitrix.policyname
#récupère les SessionPrinters
$SPR = $gpocitrix.sessionprinters | select-object values
foreach ($SPV in $SPR){
$SPResult = $SPV.values
#echo $SPV.values
}
$Object | add-member -name \"PolicyName\" -membertype Noteproperty -value $GpoName
$Object | add-member -name \"sessionprinters\" -membertype Noteproperty -value $SPResult
$tableau += $Object
}
echo $tableau[/code:1]
Ce qui est agacant c'est que mon \"#echo $SPV.values\" fonctionne et me retourne mes info mais je n'arrive pas à faire passer ce résultat dans mon tableau !
merci de votre aide
J'ai un petit problème pour récupérer toutes mes données contenu dans une requêtes powershell.
J'ai une requête qui permet de récupérer des info d'une GPO concernant des imprimantes.
Je veux donc un tableau excel en sorti avec une colonne nom de la gpo et une autre avec les imprimantes en fonction du nom de la gpo.
Sa marche presque bien, le problème se situe pour récupérer les imprimantes, les data sont bien la et dispo mais j'arrive pas à les stocké dans mon tableau et les exporté correctement.
lorsque j'exécute mon script en sortie (sans export csv, affichage sur la console powershell) j'ai le nom de mes imprimantes entouré de {imprimante1, imprimante2,...}
avec export j'ai dans la colonne des imprimantes => System.Object[]
[code:1]#Création d'un tableau
$tableau =@()
#Relevé de la configuration des GPO
$gpo = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly
foreach ($gpocitrix in $gpo){
$Object = new-object PSObject
#récupère le nom de la gpo
$GpoName = $gpocitrix.policyname
#récupère les SessionPrinters
$SPR = $gpocitrix.sessionprinters | select-object values
foreach ($SPV in $SPR){
$SPResult = $SPV.values
#echo $SPV.values
}
$Object | add-member -name \"PolicyName\" -membertype Noteproperty -value $GpoName
$Object | add-member -name \"sessionprinters\" -membertype Noteproperty -value $SPResult
$tableau += $Object
}
echo $tableau[/code:1]
Ce qui est agacant c'est que mon \"#echo $SPV.values\" fonctionne et me retourne mes info mais je n'arrive pas à faire passer ce résultat dans mon tableau !
merci de votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 1 mois #21429
par Philippe
Réponse de Philippe sur le sujet Re:Tableau - Récupérer valeur
bonjour Cartoon17
dans ce sujet tu à deux solutions donné par Laurent et moi dans les deux premières réponses.
choisi celle que tu préfère ou que tu comprend !
si tu n'arrive pas à adapté ton script reviens on le fera ensemble
c'est un courant dans les exports !avec export j'ai dans la colonne des imprimantes => System.Object[]
dans ce sujet tu à deux solutions donné par Laurent et moi dans les deux premières réponses.
choisi celle que tu préfère ou que tu comprend !
si tu n'arrive pas à adapté ton script reviens on le fera ensemble
Connexion ou Créer un compte pour participer à la conversation.
- bob kent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 10 ans 1 mois #21434
par bob kent
cool sa fonctionne.
Au fait lorsque l'on a plusieurs data dans une variable il faut \"construire\" un tableau
[code:1]
$resultat = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly | foreach {
#récupère le nom de la gpo
$GpoName = $_.policyname
#récupère les SessionPrinters
$_.sessionprinters | select @{n=\"GPOName\";e={$($GpoName)}}, @{n=\"SessionPrinters\";e={($_.values)}}
}
$resultat | export-csv c:\temp\GPO_conf.csv [/code:1]
Par contre petite question bonus, je souhaite également récupérer la valeur \"DefaultPrinter\". J'ai le résultat dans mon CSV mais il est entouré de @{Value= } dans ma colonne DefaultPrinter.
[code:1]
$resultat = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly | foreach {
#récupère le nom de la gpo
$GpoName = $_.policyname
$GpoType = $_.type
$DefaultPrinter = $_.DefaultClientPrinter | select-object value
#récupère les SessionPrinters
$_.sessionprinters | select @{n=\"GPOName\";e={$($GpoName)}}, @{n=\"GPOType\";e={$($GpoType)}}, @{n=\"DefaultPrinter\";e={$($DefaultPrinter)}}, @{n=\"SessionPrinters\";e={($_.values)}}
}
$resultat | export-csv c:\temp\GPO_conf.csv [/code:1]
Pour info voici à quoi ressemble le résultat d'un Get-CtxGroupPolicyConfiguration
PolicyName : Nom de la GPO
Type : User
DefaultClientPrinter : @{State=Enabled; Value=\\Mon Imprimante; Path=ICA\Printing\DefaultClientPrinter}
SessionPrinters : @{State=Enabled; Values=System.Object[]; Path=ICA\Printing\SessionPrinters}
ClientPrinterAutoCreation : @{State=Enabled; Value=DoNotAutoCreate; Path=ICA\Printing\ClientPrinters\ClientPrinterAutoCreation}<br><br>Message édité par: Cartoon17, à: 28/01/16 10:23
Réponse de bob kent sur le sujet Re:Tableau - Récupérer valeur
Au fait lorsque l'on a plusieurs data dans une variable il faut \"construire\" un tableau
[code:1]
$resultat = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly | foreach {
#récupère le nom de la gpo
$GpoName = $_.policyname
#récupère les SessionPrinters
$_.sessionprinters | select @{n=\"GPOName\";e={$($GpoName)}}, @{n=\"SessionPrinters\";e={($_.values)}}
}
$resultat | export-csv c:\temp\GPO_conf.csv [/code:1]
Par contre petite question bonus, je souhaite également récupérer la valeur \"DefaultPrinter\". J'ai le résultat dans mon CSV mais il est entouré de @{Value= } dans ma colonne DefaultPrinter.
[code:1]
$resultat = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly | foreach {
#récupère le nom de la gpo
$GpoName = $_.policyname
$GpoType = $_.type
$DefaultPrinter = $_.DefaultClientPrinter | select-object value
#récupère les SessionPrinters
$_.sessionprinters | select @{n=\"GPOName\";e={$($GpoName)}}, @{n=\"GPOType\";e={$($GpoType)}}, @{n=\"DefaultPrinter\";e={$($DefaultPrinter)}}, @{n=\"SessionPrinters\";e={($_.values)}}
}
$resultat | export-csv c:\temp\GPO_conf.csv [/code:1]
Pour info voici à quoi ressemble le résultat d'un Get-CtxGroupPolicyConfiguration
PolicyName : Nom de la GPO
Type : User
DefaultClientPrinter : @{State=Enabled; Value=\\Mon Imprimante; Path=ICA\Printing\DefaultClientPrinter}
SessionPrinters : @{State=Enabled; Values=System.Object[]; Path=ICA\Printing\SessionPrinters}
ClientPrinterAutoCreation : @{State=Enabled; Value=DoNotAutoCreate; Path=ICA\Printing\ClientPrinters\ClientPrinterAutoCreation}<br><br>Message édité par: Cartoon17, à: 28/01/16 10:23
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 10 ans 1 mois #21435
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau - Récupérer valeur
Salut,
Cartoon17 écrit:
[code:1]
$o=\"$(\"s2\"|select length)\"
$o.ToString()
# @{Length=2}
[/code:1]
Il faut construire un objet personnalisé afin d'avoir toutes les infos.
Cartoon17 écrit:
Select-Object renvoi un nouvel objet de type PSObject qui est transformé de cette manière :Par contre petite question bonus, je souhaite également récupérer la valeur \"DefaultPrinter\". J'ai le résultat dans mon CSV mais il est entouré de @{Value= } dans ma colonne DefaultPrinter.
[code:1]
$o=\"$(\"s2\"|select length)\"
$o.ToString()
# @{Length=2}
[/code:1]
Il faut construire un objet personnalisé afin d'avoir toutes les infos.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- bob kent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 10 ans 1 mois #21437
par bob kent
Réponse de bob kent sur le sujet Re:Tableau - Récupérer valeur
je suis pas sur d'avoir compris:blink: .
j'ai fais un $DefaultPrinter.ToString() et la valeur ne s'affiche pas.
Si il faut faire un PSObject (comme mon idée de départ au fait ? mon 1er script) comment \"mixer\" mes résultats qui sont dans $resultat avec PSObject ?
Je ne peux pas me débarrasser directement des @{} pour avoir ma valeur dans $DefaultPrinter ?
Message édité par: Cartoon17, à: 28/01/16 14:39<br><br>Message édité par: Cartoon17, à: 28/01/16 14:40
j'ai fais un $DefaultPrinter.ToString() et la valeur ne s'affiche pas.
Si il faut faire un PSObject (comme mon idée de départ au fait ? mon 1er script) comment \"mixer\" mes résultats qui sont dans $resultat avec PSObject ?
Je ne peux pas me débarrasser directement des @{} pour avoir ma valeur dans $DefaultPrinter ?
Message édité par: Cartoon17, à: 28/01/16 14:39<br><br>Message édité par: Cartoon17, à: 28/01/16 14:40
Connexion ou Créer un compte pour participer à la conversation.
- bob kent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 10 ans 1 mois #21438
par bob kent
Réponse de bob kent sur le sujet Re:Tableau - Récupérer valeur
Je viens de trouver 
C'est peut être un peu moche mais cela fonctionne
[code:1]
$resultat = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly | foreach {
#récupère le nom de la gpo
$GpoName = $_.policyname
$GpoType = $_.type
$DefaultPrinter = $_.DefaultClientPrinter
$DefaultPrinterResult = $DefaultPrinter.value
#récupère les SessionPrinters
$_.sessionprinters | select @{n=\"GPOName\";e={$($GpoName)}}, @{n=\"GPOType\";e={$($GpoType)}}, @{n=\"DefaultPrinter\";e={$($DefaultPrinterResult)}}, @{n=\"SessionPrinters\";e={($_.values)}}
}
$resultat | export-csv c:\temp\GPO_conf.csv [/code:1]
Je crois que la ligne avec $DefaultPrinterResult peut être sur la même que celle d'avant mais bon, sa marche.
merci encore du coup de main<br><br>Message édité par: Cartoon17, à: 28/01/16 15:19
C'est peut être un peu moche mais cela fonctionne
[code:1]
$resultat = Get-CtxGroupPolicyConfiguration com* -ConfiguredOnly | foreach {
#récupère le nom de la gpo
$GpoName = $_.policyname
$GpoType = $_.type
$DefaultPrinter = $_.DefaultClientPrinter
$DefaultPrinterResult = $DefaultPrinter.value
#récupère les SessionPrinters
$_.sessionprinters | select @{n=\"GPOName\";e={$($GpoName)}}, @{n=\"GPOType\";e={$($GpoType)}}, @{n=\"DefaultPrinter\";e={$($DefaultPrinterResult)}}, @{n=\"SessionPrinters\";e={($_.values)}}
}
$resultat | export-csv c:\temp\GPO_conf.csv [/code:1]
Je crois que la ligne avec $DefaultPrinterResult peut être sur la même que celle d'avant mais bon, sa marche.
merci encore du coup de main<br><br>Message édité par: Cartoon17, à: 28/01/16 15:19
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 débutants
- Tableau - Récupérer valeur