Question
Déplacement user dans Group
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
la ligne ou j'ai un peu de mal c'est :
[code:1](Get-ADGroupMember -Identity $NameG1 | where {$_.SamAccountName -eq $user.SamAccountName}[/code:1]
Pourquoi faire une condition afin de savoir si un utilisateur est présent dans un groupe ? ( c'est ce que je comprends ) sachant qu'on s'en fiche un peu ici de la gestion d'erreur ^^
En gros c'est la condition que je ne comprends pas en fait ...
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
faut bien aidée les débutantstout d'abord je tiens à te remercier pour ton investissement , tu dois y passer bcp de temps alors que t'as d'autres chats à fouetter enfin bref ,
et puis j'ai un quota d'heure a faire chaque mois pour les bonnes actions
de plus on t'envoie la facture en fin de mois
pour le \"beaucoup de temps\", c'est beaucoup moins que toi ^^
ici le but est de ne pas afficher une erreur à la quelle on s'attend pour pouvoir voir les autresPourquoi faire une condition afin de savoir si un utilisateur est présent dans un groupe ? ( c'est ce que je comprends ) sachant qu'on s'en fiche un peu ici de la gestion d'erreur ^^
de plus c'est plus propre pour des logs
ca facilite le débogage
et enfin pourquoi s'en privé quand c'est simple a faire ?
voila la bonne remarque enfinEn gros c'est la condition que je ne comprends pas en fait ...
puisque il n'existe pas de fonction Request-ADGroupMember \"l'utilisateur est t'il dans ce groupe ?\" , il faut la faire !!
Get-ADGroupMember te liste les membres du goupe inscrit dans la variable $NameG1
| where reçois un à un les membres du groupe
et avec {$_.SamAccountName -eq $user.SamAccountName} il compare chaque membre ($_.SamAccountName) à l'utilisateur $user.SamAccountName
au final si il trouve rien il renvoie null (false)
sinon il renvoie la liste des utilisateurs correspondants à la comparaison, dans le cas d'une condition d'un if c'est comme si il renvoyé true
Message édité par: 6ratgus, à: 3/02/15 09:52<br><br>Message édité par: 6ratgus, à: 3/02/15 09:57
Connexion ou Créer un compte pour participer à la conversation.
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
çà fait pas trop partie du réseaux, la programmation informatique et le domaine ADc'est un aspect un peu laissé de côté dans ma formation , alors que je suis spécialisé en réseaux mais bon
même si çà l'utilise comme support
Bon courage pour la suite de ta formation
Connexion ou Créer un compte pour participer à la conversation.
- Dupont
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 48
- Remerciements reçus 0
On m'a demandé de récupérer la première ligne de mon fichier qui équivaut aux noms de groupes et que tant que le fichier contient des lignes il faut affecter les utilisateurs aux groupes . L'objectif est le même mais je n'arrive pas à comprendre ce raisonnement pourtant vieux comme l'informatique ! D’où l'explication à 2 francs ...
Je mets le code/algorithme/ qui sera peut-être plus parlant :
[code:1]$EnTete = @()
$GroupeATraiter = @()
$File = \"C:\Projet2\Group.csv\"
Import-Csv -Encoding UTF8 -Delimiter \",\" $File
$PremiereLigne = Get-Content $File | Select-Object -Index 1
$EnTete = $PremiereLigne.Split(\",\"«»)
foreach ($ligne in $File) #Tant que le fichier n'est pas fini
{
$Utilisateur = $EnTete[0]
echo $Utilisateur
<#for ($i = lbound($EnTete)+1 -le ubound($EnTete) , $i++) #Récupéer
{
$Groupe = $EnTete[$i]
$DansGroupeOuPas = $GroupeATraiter[$i]
if ($Utilisateur -eq 1 -and !(Get-ADGroupMember -Identity $Groupe | where {$_.SamAccountName -eq $Utilisateur.SamAccountName})) {
Add-ADGroupMember -Identity $Groupe -Members $Utilisateur -Verbose
}
if ($Utilisateur -eq 0 -and !(Get-ADGroupMember -Identity $Groupe | where {$_.SamAccountName -eq $Utilisateur.SamAccountName})) {
Remove-ADGroupMember -Identity $Groupe -Members $Utilisateur -Verbose
}
}#>
}[/code:1]
A la base on m'a expliqué en vbscript-francisé d'ou le lbound et ubound qui servent à récupérer tous les groupes tant que la 1ere ligne n'est pas vide , je ne trouve pas d'équivalent , je ne comprends le raisonnement qu'à moitié ... Bref je suis perdu
J'ai réutilisé la structure en if du code précédent , seulement à chaque groupe il fallait rajouter 2 blocs , et les dirigeants étaient pas pour cette solution x)<br><br>Message édité par: KaAzZ01, à: 4/03/15 15:39
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Si je comprend bien, quelqu'un se facilite la saisieOn m'a demandé de récupérer la première ligne de mon fichier qui équivaut aux noms de groupes et que tant que le fichier contient des lignes il faut affecter les utilisateurs aux groupes.
On peut, comme tous le reste, détourner l'usage du CSV...
A te lire, il s'agit d'une représentation d'une relation 1-N :
Un groupe - Plusieurs utilisateurs
Si la première ligne est la liste des groupes, il te faut boucler sur chaque occurrences de nom de groupe.
Le csv étant importé dans un tableau d'objets, il te suffit de deux variable $GroupesName et $User :
[code:1]
$Objets='Groupes',1,2,3 #Import-csv ...
$GroupesNames=$Objets[0]
$Users=$Objets[1..($Objets.Count -1)]
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 4/03/15 16:33
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Déplacement user dans Group