Question
Problème SystemObject exportCSV
- PatriceLT
- Auteur du sujet
- Visiteur
-
il y a 7 ans 9 mois #27409
par PatriceLT
Problème SystemObject exportCSV a été créé par PatriceLT
Bonjour à tous,
J'ai actuellement un soucis dans mon code que voici :
[code:1]
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 $??
}
}
$Traitement | Export-Csv \".\Test.csv\" -Delimiter \";\" -NoTypeInformation
[/code:1]
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.<br><br>Message édité par: PatriceLT, à: 8/08/18 15:01
J'ai actuellement un soucis dans mon code que voici :
[code:1]
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 $??
}
}
$Traitement | Export-Csv \".\Test.csv\" -Delimiter \";\" -NoTypeInformation
[/code:1]
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.<br><br>Message édité par: PatriceLT, à: 8/08/18 15:01
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 7 ans 9 mois #27410
par Philippe
Réponse de Philippe sur le sujet Re:Problème SystemObject exportCSV
salut PatriceLT
[code:1]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
[/code:1]
Message édité par: 6ratgus, à: 10/08/18 16:14
correction après relecture de la quection<br><br>Message édité par: 6ratgus, à: 10/08/18 16:20
il faut mettre les membres dans une chaine de caractères !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.
[code:1]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
[/code:1]
Message édité par: 6ratgus, à: 10/08/18 16:14
correction après relecture de la quection<br><br>Message édité par: 6ratgus, à: 10/08/18 16:20
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.031 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Problème SystemObject exportCSV