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
}