Powershell

Fermé
madmyke Messages postés 52792 Date d'inscription dimanche 20 janvier 2008 Statut Modérateur Dernière intervention 22 avril 2024 - 20 oct. 2016 à 15:16
madmyke Messages postés 52792 Date d'inscription dimanche 20 janvier 2008 Statut Modérateur Dernière intervention 22 avril 2024 - 12 nov. 2016 à 21:44
Bonjour,

Pour la gestion de nos utlisateurs, j'ai un script trouvé sur le net "aménagé" par un collègue qui nous permet de faire un copy des groupes (tous) d'un utilisateur AD vers un autre utilisateur (nouveau) .
Il fait un copy ET exclu certains groupes qui se trouvent dans un fichier CSV (raison technique et de différents département)

Le soucis que j'ai est que dans le process de créations des utilsateurs il se passe ceci:
1) un process venant du HR nous donne l'info pour créer automatiquement un compte utilisateur avec 3 ou 4 groupe de bases en fonctions de ce qui coché dans la demande initiale.
(ICI un group d'accès à internet et un groupe pour le VPN)

2) vient le script qui copie les groupes d'un utilsateur existant sur notre nouveau et efface ceux qui seraient dans la liste d'excusion.

Le soucis que nous avons est que le user de référence peut très avoir nos groupes VPN et Http, qui vont donc être copié ALORS qu'il na pas la permission d'avoir les accès.

Avous avons donc du ajouter ces 2 groupes dans les exclusions et nous les rajoutons manuellement à la fin du process SI il ont les permissions.

La question est donc:
Comment modifier le script pour qu'il fasse la copie en excluant la liste des groupes (csv) mais qu'il ne copie les 2 groupes ciblé seulement si il les voit déjà dans le compte de base (presque vide).

En gros
SI new AD user = 1 ou les 2 groupes présent
Copier les groupes du AD user de référence + le ou les 2 groupes déjà présents (moins les exclusion du CSV)
SI new AD user = 0 des 2 groupes présents
Copier les groupes du user référence + le ou les 2 groupes déjà présent (moins les exclusion du CSV et donc pas les 2 groupes ciblés.)


(Je sais que c'est un peu tordu mais l'organisation de la boite (1200 personnes) fait que c'est comme ça.
PS: je ne suis pas programmeur, je comprends mais ne maitrise pas et mon collègue est passionné mais débute)

Merci d'avance à ceux qui pourront m'aider si c'est possible bien sur.

Le script
======================================

# import the Active Directory module in order to be able to use get-ADuser and Add-AdGroupMembe cmdlet

import-Module ActiveDirectory

# enter login name of the first user
$copy = Read-host "Enter username to copy from: "

# enter login name of the second user
$paste = Read-host "Enter username to copy to: "

# copy-paste process. Get-ADuser membership | then selecting membership | and add it to the second user
get-ADuser -identity $copy -properties memberof | select-object memberof -expandproperty memberof | Add-AdGroupMember -Members $paste -ErrorAction SilentlyContinue

# import Group HRDB
$hrdb = Import-Csv "\\AWE-GFS\ict\System and Helpdesk\Active Directory\HRDB_Group_Ad.csv"

#exclude these groups

foreach ($group in $hrdb)
{
Remove-ADGroupMember -Identity $group.group -Members $paste -confirm:$false -ErrorAction SilentlyContinue
}









1 réponse

jarjar4545 Messages postés 27 Date d'inscription jeudi 12 janvier 2012 Statut Membre Dernière intervention 11 novembre 2016 14
11 nov. 2016 à 16:16
Bonjour

ci j'ai bien compris tu récupère la liste des groupes du 1er utilisateur que tu copie dans le 2eme utilisateur avec cette commande :

get-ADuser -identity $copy -properties memberof | select-object memberof -expandproperty memberof | Add-AdGroupMember -Members $paste -ErrorAction SilentlyContinue

ensuite tu supprime les groupes qui ce trouve dans le csv avec ton foreach

c'est bien sa?
0
madmyke Messages postés 52792 Date d'inscription dimanche 20 janvier 2008 Statut Modérateur Dernière intervention 22 avril 2024 12 047
12 nov. 2016 à 21:44
Bonjour et merci
Oui c'est bien ça.
LE soucis est que ces groupes sont soumis à autorisation. donc SI l'utilisateur qu'on copie possède ces groupes et que le que le nouveau a les autorisations pas de soucis.
Par contre si ce n'est pas le cas, nous devons les supprimer.

Or, lors de la création automatique de l'utilisateur AD, le responsable coche (ou non) si le nouveau aura besoin des accès. Ce qui fait que SI le nouveau compte qui est vide (domain user), AVANT la copie, a les autorisations on a déjà un compte vide + juste les groupes autorisé et seulement ensuite on fait la copie.
Donc si les groupes du csv sont DEJA présent dans le compte vide, il ne faut PAS les supprime. SI ils ne sont pas présent ALORS il faut les enlever.

:-)
0