Flash info

"La connaissance ce n’est point la possession de la vérité, mais d’un langage cohérent."

Antoine de Saint Exupéry (1900-1944)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
PatriceLT
Utilisateur

PowerShelleur Amateur
Messages: 63
graphgraph
Karma: 0  
Problème SystemObject exportCSV - 8/08/18 15:00 Bonjour à tous,

J'ai actuellement un soucis dans mon code que voici :

Code:

  Import-Module ActiveDirectory Import-Module Grouppolicy $Domaine patrice.lan $Groupes Get-ADObject -Filter 'objectClass -eq "group"' -SearchBase "OU=Groupes,DC=Patrice,DC=lan" -Server $Domaine where {$_.Name -match "Exclusion-"} $Traitement = foreach($Groupe in $Groupes){ Get-ADGroupmember -Identity $Groupe -Server $Domaine | foreach{ $Type $_.ObjectClass $Computer $_.Name $User $_.SamAccountName if($Type -eq "computer"){ Get-ADComputer -Identity $Computer -Server $Domaine where {$_.Enabled -eq $True} | foreach {$_.Name} }elseif($Type -eq "user"){ Get-ADUser -identity $User -Server $Domaine where {$_.Enabled -eq $True} | foreach {$_.SamAccountName}} $Tableau = New-Object PSObject $Tableau Add-Member -MemberType Noteproperty -Name "Domaine" -Value $Domaine $Tableau Add-Member -MemberType Noteproperty -Name "Groupe" -Value $Groupe $Tableau Add-Member -MemberType Noteproperty -Name "Membre" -Value $<span style="color: #FF0000">??</span> } } $Traitement Export-Csv ".\Test.csv" -Delimiter ";" -NoTypeInformation



Mon problème :

Je n'arrive pas à savoir quelle valeur mettre ou il y'a les 2 "??" en rouge afin de récupérer ma liste de computers et users qui sont actifs, dans mes différents groupes.

J'ai déjà testé plusieurs choses, mais lors de mon export, il me met le "SystemObject[]" car du coup, ce qu'il y'a dans la Value de membre c'est un tableau d'objet, mais comment faire dans mon foreach pour que chaque "adobject de type computer ou user" soit sur chaque ligne, et ce, pour tous mes groupes ?

Ce que je souhaiterai en sortie :

Domaine | Groupe | Membre
Patrice.Lan | Test1 | Ordi1(computer actif)
Patrice.Lab | Test1 | Ordi2(computer actif)
Patrice.Lab | Test1 | Test1(utilisateur actif)
Patrice.Lab | Test2 | Ordi1(computer actif)
Patrice.Lab | Test3 | Test2(utilisateur actif)

et que cela sorte comme ça dans mon csv, colonne et data associé. D'où la PSObject dans mon foreach sinon il me met un seul domaine, un seul groupe, tous les membres séparé par une "," donc pas top à traiter sous excel quand on a des stats à faire...

Merci d'avance pour ceux qui auront une solution (ça fait 2 jours que je bosse sur ce satané truc ! )

Cdt.

Message édité par: PatriceLT, à: 8/08/18 15:01
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1467
graphgraph
Karma: 110  
Re:Problème SystemObject exportCSV - 10/08/18 16:13 salut PatriceLT

Je n'arrive pas à savoir quelle valeur mettre ou il y'a les 2 "??" en rouge afin de récupérer ma liste de computers et users qui sont actifs, dans mes différents groupes.il faut mettre les membres dans une chaine de caractères !

Code:

 Import-Module ActiveDirectory $Domaine patrice.lan $Groupes Get-ADObject -Filter 'objectClass -eq "group"' -SearchBase "OU=Groupes,DC=Patrice,DC=lan" -Server $Domaine where {$_.Name -match "Exclusion-"} $Traitement = foreach($Groupe in $Groupes) {     Get-ADGroupmember -Identity $Groupe -Server $Domaine | foreach {         $Type $_.ObjectClass         $Computer $_.Name         $User $_.SamAccountName         if($Type -eq "computer") {             $members Get-ADComputer -Identity $Computer -Server $Domaine where {$_.Enabled -eq $True} | foreach {"$($_.Name) "}             }         elseif ($Type -eq "user") {             $members Get-ADUser -identity $User -Server $Domaine where {$_.Enabled -eq $True} | foreach {"$($_.SamAccountName) "}             }         $Tableau = New-Object PSObject         $Tableau Add-Member -MemberType Noteproperty -Name "Domaine" -Value $Domaine         $Tableau Add-Member -MemberType Noteproperty -Name "Groupe" -Value $Groupe         $Tableau Add-Member -MemberType Noteproperty -Name "Membre" -Value $members         $Tableau         }     } $Traitement Export-Csv ".\Test.csv" -Delimiter ";" -NoTypeInformation



Message édité par: 6ratgus, à: 10/08/18 16:14
correction après relecture de la quection

Message édité par: 6ratgus, à: 10/08/18 16:20
  | | L'administrateur a désactivé l'accés public en écriture.
© 2018 PowerShell-Scripting.com