Question Résultat trop long pour la console

Plus d'informations
il y a 1 an 11 mois #27480 par Tomalley
Alors j'avais déjà essayé cela et là j'obtiens ça dans mes colonnes qui devraient avoir les valeures :

Microsoft.ActiveDirectory.Management.ADPropertyValueCollection


???

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

Plus d'informations
il y a 1 an 11 mois #27481 par Arnaud
Ah ah !!! On tient le coupable !!!

Tu obtiens ce résultat car la propriété ne contient pas une valeur scalaire mais plusieurs résultats (une collection ou tableau).

Pourrais-tu poster ton code pour que l'on puisse t'aider stp ?

Créateur du forum de la communauté PowerShell Francophone

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

Plus d'informations
il y a 1 an 11 mois #27482 par Tomalley
Oui effectivement, cette valeur d'attribut est une suite de valeure séparées par | ou ,
L'attribut en question est attribut que nous avons créé dans notre Active Directory, il n'est donc pas \"natif\" de Windows et il contient une liste de chemin d'imprimantes réseau à monter pour chaque employés de notre société.
exemple (\\SERVEURIMP\IMPRIMANTE1|\\SERVEURIMP\IMPRIMANTE24|......) donc pour certaines personnes qui n'ont que 1, 2 ou 3 imprimantes, j'obtiens bien ce que je veux mais si un utilisateur possède plus de 4 ou 5 imprimantes (ce qui arrive assez souvent) je suis coincé. Merci pour ton retour. voici le code je pensais que je l'avais mis lors de mon post ?
[code:1]
Import-Module ActiveDirectory

$users = Get-ADUser -filter * -SearchBase \"OU=toto,OU=titi,dc=tutu,dc=fr\" -properties Samaccountname,l0CSysImp2 | where {$_.l0CSysImp2 -ne $null}
#$users |select-object l0CSysImp2,Samaccountname | Export-csv C:\temp\monfichier.csv -delimiter ';'
$users |select-object l0CSysImp2,Samaccountname | Export-csv C:\temp\monfichier.csv -delimiter ';'
[/code:1]

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

Plus d'informations
il y a 1 an 11 mois #27483 par Arnaud
Ok je comprends mieux à présent.

Nous allons donc devoir faire en sorte de retourner une valeur scalaire au lieu d'un tableau comme c'est le cas actuellement.

Pour se faire on va utiliser une fonctionnalité assez peu connue de Select-Object qui est la forme suivante :

[code:1]
... | Select-Object propriété1, propriétéN, @{name = \"nomDeProprietePersonnalisee\"; expression = { bloc de script } }
[/code:1]

Soit dans le cas présent on va concaténer chaque valeur de notre tableau avec un séparateur pour au final obtenir une chaine simple, comme par exemple :
[code:1]
PS > 'aaa','bbb','ccc' -join ';'
aaa;bbb;ccc
[/code:1]

Soit le code final :
[code:1]
$users | Select-Object Samaccountname, @{name = 'l0CSysImp2'; expression = {$_ -join ';'} } | Export-Csv C:\temp\monfichier.csv -delimiter ';'[/code:1]

Arnaud

Créateur du forum de la communauté PowerShell Francophone

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

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