{ * info-rmatique ! }

création dossier perso avec droits et mappage lecteur réseau pour les utilisateurs d’une UO


#$GroupeSup = Get-ADGroup -Identity « Encadrants »

#Récupération des utilisateurs dans l’OU
$PathOU = « OU=Preo-Groupe1,OU=stagiaires,DC=SupremeAuto,DC=fr »
$users = Get-ADUser -Filter * -SearchBase $PathOU

#Parcourir les utilisateurs de l’OU
Foreach($utilisateur in $users){
$NomUtil = $utilisateur.SamAccountName
write-host $NomUtil

#Boucle de création des dossiers et d'attribution des droits
Try {
  $PathFolderDP = "\\TULIPE\share\"
  $NameNewFolder = "D-$NomUtil"
  $PathNewFolder = $PathFolderDP+$NameNewFolder

  #Création dossier personnel de l'utilisateur      
  New-Item -Path $PathFolderDP -Name $NameNewFolder -ItemType Directory
  Write-Host "dossier créé pour $NomUtil"

  # Liste toutes les lettres de lecteur possibles
  #$allDrives = 'E'..'Z'

  # Récupère les lettres déjà utilisées
  #$usedDrives = Get-PSDrive -PSProvider FileSystem | Select-Object -ExpandProperty Name

  # Cherche une lettre libre
  #$freeDrive = ($allDrives | Where-Object {$_ -notin $usedDrives})[0]

  # Si trouvé, on monte dessus
  #if ($freeDrive) {
  #$DriveLetter = "${freeDrive}:"
  #net use $DriveLetter "\\TULIPE\share\$NameNewFolder"
  #Write-Host "Montage sur $DriveLetter pour $NomUtil"
  #} else {
  #Write-Warning "Pas de lettre disponible pour $NomUtil !"
  #}



  #Désactive l'héritage sur dossiers perso
  icacls $PathNewFolder /inheritance:r

  #Donne droits en contrôle total à Administrateurs sur dossier perso    
  icacls $PathNewFolder /grant "${Administrateurs}:(OI)(CI)F" /T

  #Donne droits en contrôle total à l'utilisateur sur dossier perso    
  icacls $PathNewFolder /grant "${NomUtil}:(OI)(CI)F" /T

  #Donne droit en modification au groupe Encadrants
  icacls $PathNewFolder /grant "Encadrants:(OI)(CI)M" /T

  #Supprime l'écriture pour les autres utilisateurs du domaine
  #icacls $PathNewFolder /deny "SupremeAuto\Utilisateurs":W /T

  Write-Host "Droits appliqués à $NomUtil et Encadrants"
}
Catch {
  Write-Warning "erreur avec le traitement de l'utilisateur : $NomUtil"
}

}
#Monte le lecteur réseau avec la lettre Y sur le poste de l’utilisateur
net use Y: \TULIPE\share
Write-Host « Montage sur Y: pour le dossier share »