Question Résultat trop long pour la console

Plus d'informations
il y a 5 ans 7 mois #27480 par Malley
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 5 ans 7 mois #27481 par Arnaud Petitjean
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 ?

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 5 ans 7 mois #27482 par Malley
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 5 ans 7 mois #27483 par Arnaud Petitjean
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

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

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