Question rediriger resultat get-gpinheritance vers fichier

Plus d'informations
il y a 14 ans 5 mois #10390 par Steinfield
Bonjour,

Je débute en powershell et j'essaye de récupérer le résultat de la commande get-gpinheritance dans un fichier texte

[code:1]foreach ($_.distinguishedname in $listPcs) {Get-GPInheritance -target $_.distinguishedname -Domain contoso.com | where {$_.gpolinks -ne \"{}\"} | export-csv c:\scripts\liste_pcs.txt}[/code:1]

Le résultat est le suivant :
[code:1]#TYPE Microsoft.GroupPolicy.Som
\"GpoInheritanceBlocked\",\"Name\",\"Path\",\"ContainerType\",\"GpoLinks\",\"InheritedGpoLinks\"
\"False\",\"pcs\",\"ou=pcs,dc=contoso,dc=com\",\"OU\",\"Microsoft.GroupPolicy.GpoLinksCollection\",\"Microsoft.GroupPolicy.GpoLinksCollection\"[/code:1]

Alors que dans la console, j'ai le résultat suivant :
[code:1]Name : pcs
ContainerType : OU
Path : ou=pcs,dc=contoso,dc=com
GpoInheritanceBlocked : No
GpoLinks : {PCS}
InheritedGpoLinks : {PCS, Default Domain Policy}[/code:1]

Pouvez-vous me dire comment faire apparaitre {PCS} dans mon fichier texte au lieu de \"Microsoft.GroupPolicy.GpoLinksCollection\" ?

Merci
Bonne journée

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

Plus d'informations
il y a 14 ans 5 mois #10391 par Steinfield
Re-bonjour,

Je viens de trouver la réponse à ma question.
En fait au lieu d'utiliser export-csv, je devais utiliser out-file

Merci
Bonne journée

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

Plus d'informations
il y a 14 ans 5 mois #10392 par Matthew BETTON
Bonjour,

Pour ne pas voir apparaître la première ligne

[code:1] #TYPE Microsoft.GroupPolicy.Som[/code:1]

lorsque tu utilises la Cmdlet 'Export-Csv', utilises le paramètre '-NoTypeInformation'.

En fait au lieu d'utiliser export-csv, je devais utiliser out-file


Tout dépend du résultat que tu souhaites obtenir et du contexte d'utilisation.

'Out-File' permet d'obtenir un fichier texte contenant des données \"à plat\". Le résultat ainsi obtenu n'est peut être pas judicieux, pour une utilisation ultérieure...

'Export-Csv' permet d'obtenir un fichier texte dans lequel les données sont rangées sous la forme d'un tableau : séparées par un point virgule (ou autre), avec des colonnes et des lignes. Le fichier est ensuite utilisable sous un tableur (Excel) et peut aussi être de nouveau être importé pour un autre traitement via la Cmdlet 'Import-Csv'.

Dans le cas de cette dernière Cmdlet, si l'ordre des colonnes ne te plaît pas, utilises la Cmdlet 'Select-Object' :

[code:1]foreach ($_.distinguishedname in $listPcs) {Get-GPInheritance -target $_.distinguishedname -Domain contoso.com | where {$_.gpolinks -ne \"{}\"}}
| Select-Object Name, ContainerType, Path, GpoInheritanceBlocked, GpoLinks, InheritedGpoLinks | export-csv c:\scripts\liste_pcs.txt[/code:1]

N.B. : Dans cet exemple, je n'ai pas placé 'Export-Csv' dans la 'foreach' ...


@ +

Matthew

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

Plus d'informations
il y a 14 ans 5 mois #10403 par Steinfield
Bonjour,

Merci pour l'information pour la suppression de la première ligne.

[code:1]foreach ($_.distinguishedname in $listPcs) {Get-GPInheritance -target $_.distinguishedname -Domain contoso.com | where {$_.gpolinks -ne \"{}\"}}
| Select-Object Name, ContainerType, Path, GpoInheritanceBlocked, GpoLinks, InheritedGpoLinks | export-csv c:\scripts\liste_pcs.txt[/code:1]

Pour la partie Export-Csv, lorsque j'utilise le code ci-dessus, j'ai le message suivant :

An empty pipe element is not allowed.

Si je l'insère dans le \"Foreach...\", j'ai le message suivant

Unexpected token 'in' in expression or statement.

C'est à cause de ces message que j'utilise le cmdlet \"Out-File\".
Cela demande ensuite beaucoup de travail sur le fichier plat pour en récupérer les informations nécessaires.

Bonne journée

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

Plus d'informations
il y a 14 ans 5 mois #10405 par Matthew BETTON
Je t'avoue que je ne peux actuellement pas tester le code...

Essaye avec ce code :

[code:1]
$objGPO = foreach ($_.distinguishedname in $listPcs) {
Get-GPInheritance -target $_.distinguishedname -Domain contoso.com |
where {$_.gpolinks -ne \"{}\"}
}

$objGPO | Select-Object Name, ContainerType, Path, GpoInheritanceBlocked, GpoLinks, InheritedGpoLinks |
export-csv c:\scripts\liste_pcs.txt[/code:1]

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

Plus d'informations
il y a 14 ans 5 mois #10408 par Steinfield
Merci pour la rapidité de ta réponse.

Effectivement, je parviens à remplir le fichier, mais je reviens sur mon premier post.
Dans le fichier \"liste_pcs.txt\", la valeur correspondant à l'entête \"GpoLinks\" est :
Microsoft.GroupPolicy.GpoLinksCollection

Alors que la sortie console me donne pour \"GpoLinks\" :
{PCS}

J'essaye donc de récupérer cette valeur dans mon fichier, car j'en ai besoin par la suite pour faire une copie de cette GPO en réutilisant la valeur qui ne correspond pas obligatoirement à la valeur de \"Name\"

Bonne journée

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

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