TP n°4 - Powershell
Transcription
TP n°4 - Powershell
TP n°4 - Powershell Création d’utilisateurs Active Directory Nous apprendrons dans ce TP à : ❖ Créer des utilisateurs ❖ Créer des O.U. ❖ Créer des groupes (!) Changement du mot de passe du serveur windows 2012 : m2l@password. http://powershell.jumbor.fr/2013/12/les-listes-dacces-12.html 1 - Création de l’arborescence et des groupes Créer l’arborescence suivante sur le serveur (n’oubliez pas les droits NTFS et les autorisations de partage) : - perso - groupe - profil Commande pour créer un répertoire. new-item -path c:\ -name nomdurépertoire -itemtype directory Commande pour donner des droits aux répertoires grâce aux ACL. $acl = Get-Acl c:\nomdurépertoire $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission $acl.SetAccessRule($accessRule) $acl | Set-Acl c:\nomdurépertoire $permission = "domain\user","FullControl","Allow" - le répertoire perso stockera le répertoire privé de chacun - le répertoire groupe contient des documents communs aux utilisateurs d’un groupe - le répertoire profil contient le profil de chaque utilisateur Créer les groupes INFO et COMPTA (vous devrez ensuite dans votre fichier texte répartir des utilisateurs dans ces 2 groupes) Commande pour créer un groupe. $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $group = $adsi.Create('Group','GROUPE1') $group.SetInfo() Commande pour ajouter un nouvel utilisateur. $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $user = $adsi.Create('User', 'U1') $user.SetPassword('Azerty93!') $user.SetInfo() Commande pour ajouter un utilisateur à un groupe. $users = [ADSI]"WinNT://$env:COMPUTERNAME/GROUPE1,group" $users.PSBase.Invoke('Add', $user.Path) _______________________________________________________________ Add-QADGroupMember -Identity "groupname" -Member "userlogin" Résultat du script : #Création d'un répertoire. new-item -path c:\ -name perso -itemtype directory new-item -path c:\ -name groupe -itemtype directory new-item -path c:\ -name profil -itemtype directory #Création d'un groupe. $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $group = $adsi.Create('Group','Info') $group.SetInfo() $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $group = $adsi.Create('Group','Compta') $group.SetInfo() #Création d'un utilisateur. $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $user = $adsi.Create('User', 'U1') $user.SetPassword('Azerty93!') $user.SetInfo() $adsi = [ADSI]"WinNT://$env:COMPUTERNAME" $user = $adsi.Create('User', 'U2') $user.SetPassword('Azerty93!') $user.SetInfo() #Ajout d'un utilisateur à un groupe. $users = [ADSI]"WinNT://$env:COMPUTERNAME/Info,group" $users.PSBase.Invoke('Add', $user.Path) 2 - Création d’utilisateurs en masse Créer un fichier texte contenant les informations suivantes : nom,login,groupe • A partir de ce fichier écrire un script permettant de : • Créer les utilisateurs avec le nom et le login compris dans le fichier texte http://my-powershell.fr/importation • Générer un mot de passe aléatoire de 8 caractères contenant des chiffres , lettres et caractères accentués • Insérer l’utilisateur dans son groupe • Créer un profil itinérant pour chaque utilisateur • Créer un script .bat permettant de générer un lecteur réseau M: pointant vers le répertoire privé de chacun, un lecteur réseau G: pointant vers un répertoire commun au groupe de l’utilisateur. SCRIPT : ##Création des utilisateurs à partir du fichier texte tab. $var = @(Import-Csv e:\TP7\Exercice2\Tab.csv) $obJOU = [ADSI] "LDAP://PC/OU=Utilisateurs,dc=goussainville, dc=lan" foreach($v in $var) { $nomcomplet = $v.prenom + " " + $v.nom $objUser = $obJOU.Create("user", "cn=$nomcomplet") $objUser.put("SAMAccountName", "$v.login") #Creation mot de passe aléatoire $objuser.setpassword ('$password') $objuser.SetInfo() # Fonction de création de Password aléatoire function RandomPassword ([int]$intPasswordLength) { $caractere = "azertyuiopqsdfghjklmwxcvbn0123456789" $rand = new-object random for ($i = 0 ; $i -lt 9 ; $i++) { } return $RandomPassword } # PROGRAMME PRINCIPAL # Génération aléatoire du Password en lançant la fonction définie précédemment RandomPassword 8 $objuser.put("givenName", "$v.prenom") $objuser.put("sn", "$v.nom") $objUser.put("userprincipalName", "$v.login") $objuser.put("description", "$v.badge") $objuser.put("profilePath", "\\srv-ad\ad\profils\$v.login") #Remplissage de script-prof.bat net use M: \\srv-ad\ad\profils\$v.login > script-prof.bat net use G: \\srv-ad\ad\utilisateurs\info\$v.login >> script-prof.bat $objuser.put("scriptpath", "script-prof.bat") $objuser.SetInfo() #$$objuser.psbase.InvokeSet('AccountDisabled',$fake) #$objuser.SetInfo() } ##Insertion des utilisateurs dans leurs groupes respectifs. #Déclaration des variables. $PathCSV = "e:\TP7\Exercice2\Tab.csv" $GrpName = "Info" #Importation du fichier csv. Import-CSV $PathCSV | % { Add-ADGroupMember -Identity $GrpName -Member $_.UserName }