Question Déplacement user dans Group

Plus d'informations
il y a 11 ans 2 semaines #19185 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
Pour récupérer la première ligne , j'ai pas de soucis , je m'y prends comme ça :

[code:1]$Header = @()
$Group = @()
$File = \"C:\Projet2\Group.csv\"
Import-Csv -Delimiter \",\" -Encoding UTF8 -Path \"C:\Projet2\Group.csv\"
$FirstLigne = Get-Content $File | Select-Object -Index 1
$Header = $FirstLigne.Split(\",\"«»)
$Users = $Header[0][/code:1]


C'est pour la boucle j'ai énormément de mal à trouver une façon de dire \" Tant que le fichier contient des lignes --> Faire les instructions \" et j'ai du mal aussi à récupérer le SamAccountName de chaque utilisateur et la valeur affectée à savoir le 0 ou le 1 pour un fichier de ce genre :

#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
sAMAccountName,GroupeTest,Groupe2,Groupe3
montoloj69d,0,1,0
PontaroF74d,1,0,1
pothierv69d,1,1,1
EcomardM74d,0,0,0
richardm69d,1,1,0
LegrisA74d,1,0,1
boisselb69d,1,0,0
CourdieM74d,0,0,0
pocacham69d,1,1,0
BayettoS74d,1,0,1

J'essaie comme ça mais bon :
[code:1]$i = 1

# Tant que le script n'a pas parcouru toutes les lignes

foreach ($ligne in Get-Content $File )
{

if ($i -eq 1) {}
if ($i -gt 2)
{
echo \"\"

}
$i++

}[/code:1]<br><br>Message édité par: KaAzZ01, à: 5/03/15 10:25

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

Plus d'informations
il y a 11 ans 2 semaines #19186 par Laurent Dardenne
KaAzZ01 écrit:

J'essaie comme ça mais bon :

Tu y étais presque :
[code:1]
$File='c:\temp\Datas.csv'
@'
sAMAccountName,GroupeTest,Groupe2,Groupe3
montoloj69d,0,1,0
PontaroF74d,1,0,1
pothierv69d,1,1,1
'@ &gt; $File

$NbUser=0
foreach ($Data in Import-Csv -Delimiter \&quot;,\&quot; -Encoding UTF8 -Path $File )
{

if ($NbUser -eq 0)
{
$Groupe=$Data
Write-Warning \&quot;Info de groupe: $Groupe\&quot;
}
else
{
$Data.sAMAccountName
}
$NbUser++
}
if ($NbUser -eq 0)
{ Write-Error \&quot;Fichier vide\&quot; }
elseif ($NbUser -eq 1)
{ Write-Error \&quot;Un seul objet\&quot; }
[/code:1]
Si tu manipules un fichier structuré, autant utiliser le cmdlet associé même si tu interprétes différemment son contenu.

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 2 semaines #19189 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
Merci ça fait un peu avancer le schmilblik mais j'ai l'impression que comme ça je dois traiter mes noms de groupes en \&quot;dur\&quot; et pas en variable , du moins j'arrive pas après à interagir avec le tableau genre $Group = @() de rang N car le but c'est que Jinette à l'accueil puisse ajouter des colonnes et exécuter toujours le même script. Je n'y parviens pas...

[code:1]foreach ($Data in Import-Csv -Delimiter \&quot;,\&quot; -Encoding UTF8 -Path $File )
{

if ($NbUser -eq 0)
{
$Groupe=$Data
}
else
{
if ($Data.GroupeTest -eq 1 -and !(Get-ADGroupMember -Identity $Data.sAMAccountName | where {$_.SamAccountName -eq $Data.SamAccountName})) {
Add-ADGroupMember -Identity $Data.GroupeTest -Members $Data.SamAccountName -Verbose
}
if ($Data.GroupeTest -eq 0 -and !(Get-ADGroupMember -Identity $Data.sAMAccountName | where {$_.SamAccountName -eq $Data.SamAccountName})) {
Remove-ADGroupMember -Identity $Data.GroupeTest -Members $Data.SamAccountName -Verbose
}

}
$NbUser++
}[/code:1]

Je ferais un truc de ce genre la avec deux if par groupe( la je pense pas que ca fonctionne ) mais je devrais faire un truc du genre deux if quelque soit le nombre de colonnes et récupérer le tableau mais j'ai aucune idée de comment me dépatouiller.

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

Plus d'informations
il y a 11 ans 2 semaines #19190 par Philippe
Réponse de Philippe sur le sujet Re:Déplacement user dans Group
salut KaAzZ01

si c'est pour Jinette ;) :lol: :

[code:1]$File = \&quot;C:\Projet2\Group.csv\&quot;
$fichier = Import-Csv -Encoding UTF8 -Delimiter \&quot;,\&quot; $File
$PremiereLigne = Get-Content $File | Select-Object -Index 1
$EnTete = $PremiereLigne.Split(\&quot;,\&quot;«»)

foreach ($ligne in $fichier) { #Tant que le fichier n'est pas fini

# Write-Host $ligne.sAMAccountName -NoNewline

foreach ($groupe in $EnTete[1..$EnTete.Count]) {

$DansGroupeOuPas = $ligne.\&quot;$groupe\&quot;
if ($DansGroupeOuPas -eq 1 -and !(Get-ADGroupMember -Identity $Groupe | where {$_.SamAccountName -eq $ligne.SamAccountName})) {
Write-Host \&quot; ajoute l'utilisateur $($ligne.sAMAccountName) au goupe $groupe\&quot;
#Add-ADGroupMember -Identity $Groupe -Members $Utilisateur -Verbose
}
if ($DansGroupeOuPas -eq 0 -and (Get-ADGroupMember -Identity $Groupe | where {$_.SamAccountName -eq $ligne.SamAccountName})) {
Write-Host \&quot; supprime l'utilisateur du goupe $groupe\&quot;
#Remove-ADGroupMember -Identity $Groupe -Members $Utilisateur -Verbose
}
}
}[/code:1]

ta plus rien a faire ! B)

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

Plus d'informations
il y a 11 ans 2 semaines #19194 par Laurent Dardenne
KaAzZ01 écrit:

du moins j'arrive pas après à interagir avec le tableau genre $Group = @() de rang N

Donne nous juste une ligne d'exemple et le résultat attendu.

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 2 semaines #19196 par Dupont
Réponse de Dupont sur le sujet Re:Déplacement user dans Group
Ah merci à toi c'est super !

Pour récupérer toute une ligne je ne connaissais pas le : [1..$EnTete.Count] , j'avais jamais vu avant mais c'est juste ce dont j'avais besoin !

Mon stage sans cette communauté n'aurait pas été si agréable ! Merci encore à toi et 6ragtus .

Juste p'tite question : Pour le shell vous répondrez aussi ou vous rejetez catégoriquement tout ce qui n'est pas du PowerShell ? ;)
Ou si vous êtes actifs sur un fofo pour le shell je prendrais bien le nom :)

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

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