Question Automatisation des tâches dans l'AD

Plus d'informations
il y a 7 mois 1 semaine - il y a 7 mois 1 semaine #33725 par BOURGOT
J'ai crée un script de création d’utilisateurs en masse avec un fichier CSV ,il devra inclure les spécifications suivantes:  Prénom, Nom, adresse mail, description, identifiant unique (login) ,Mot de passe répondant aux exigences de complexité avec changement à la prochaine connexion de l’utilisateur , Placement dans l’unité d’organisation et ajout au groupe global de sécurité selon le service d’affectation , Création et partage du dossier personnel avec autorisations d’accès à l’utilisateur seul et mappage automatique sur P.
Ci joint mon script : 

Import-Module ActiveDirectory
# Importer les données
$CSVFile = “C:\Scripts\AD_Users\CSVperso.csv”
$CSVData = Import-CSV -Path $CSVFile -Delimiter “;” -Encoding UTF8
# Parcourez chaque ligne du fichier CSV
foreach ($Utilisateur in $CSVData) {
    $UtilisateurPrenom = $Utilisateur.Prenom
    $UtilisateurNom = $Utilisateur.Nom
    $UtilisateurLogin = $Utilisateur.Login
    $UtilisateurEmail = $Utilisateur.Mail
    $UtilisateurMotDePasse = $Utilisateur.Password
    $UtilisateurFonction = $Utilisateur.Fonction
    $UtilisateurOU = $Utilisateur.Service
    $UtilisateurGroupe = $Utilisateur.Groupe
    $UtilisateurNomComplet = $UtilisateurPrenom + ” ” + $UtilisateurNom
    $PATH = "\\SRV-AD\E`$\Partages personnels utilisateurs"
    $PATHSMB = "‪E:\Partages personnels utilisateurs"

# Vérifier la présence de l’utilisateur dans l’AD
    if (Get-ADUser -Filter {SamAccountName -eq $UtilisateurLogin}) {
        Write-Warning “L’identifiant $UtilisateurLogin existe déjà dans l’AD”
    }
    else {
        # Créez le compte utilisateur
         $NewUserParams = @{
                    Name = $UtilisateurNomComplet 
                    DisplayName = $UtilisateurNomComplet 
                    UserPrincipalName = $UtilisateurEmail 
                    Title = $UtilisateurFonction 
                    Department = $UtilisateurOU 
                    EmailAddress = $UtilisateurEmail 
                    GivenName = $UtilisateurPrenom 
                    Surname = $UtilisateurNom 
                    SamAccountName = $UtilisateurLogin 
                    Path = “OU=$UtilisateurOU,OU=AXEPLANE,DC=AXEPLANE,DC=LOC” 
                    AccountPassword = (ConvertTo-SecureString $UtilisateurMotDePasse -AsPlainText -Force) 
                    ChangePasswordAtLogon = $true 
                    Enabled = $true 
                    HomeDirectory = "$PATH$UtilisateurLogin"
                    HomeDrive = "P:" 
                    }
               New-ADUser @NewUserParams    

        Write-Output “Création de l’utilisateur : $UtilisateurLogin”
        }
        # Assurez-vous que la colonne “Groupe” existe dans votre CSV
        if ($Utilisateur.Groupe) {
            # Ajouter l’utilisateur au groupe de sécurité global spécifié dans le CSV
            Add-ADGroupMember -Identity $UtilisateurGroupe -Members $UtilisateurLogin
            Write-Output “Ajout de l’utilisateur au groupe : $($UtilisateurGroupe)”
        }
        
        try {
        if (-Not (Test-Path -Path "$PATH$UtilisateurLogin")) {
            # Creation du dossier partage
            New-Item "$PATH$UtilisateurLogin" -type Directory
            Write-Output "Le dossier $PATH$UtilisateurLogin a ete cree correctement."
        }
        else {
            Write-Output "Le dossier $PATH$UtilisateurLogin existait deja." # Si le dossier existe déjà, on ne le créé pas à nouveau. 
        }
        # Si le partage existait déjà, il sera supprimé puis recréé pour être sur qu'il corresponde à ce qui est voulu.0
        if (Get-SMBShare -Name $UtilisateurLogin -ErrorAction Ignore){
            Write-Output "Le dossier $PATH$UtilisateurLogin est deja partage a un utilisateur $UtilisateurLogin. Suppression du partage precedent et creation d'un nouveau."
            Remove-SmbShare -Name $UtilisateurLogin -Confirm:$false
        }
        New-SMBShare -Name $UtilisateurLogin -Path "$PATHSMB$UtilisateurLogin" -FullAccess  "$UtilisateurLogin"
        Write-Output "La creation du dossier partage de l'utilisateur $UtilisateurLogin a reussi."
    
  
        }
            catch {
        Write-Host $_.Exception.Message -ForegroundColor Red
        Write-Host "La creation du dossier partage de l'utilisateur $UtilisateurLogin a echoue."
    }        
    }


Les utilisateurs ont bien étés crées et mis dans leur UO respectives , cependant le mappage sur la lettre P n'a pas l'air d'avoir fonctionné et le partage du dossier personnel a été crée pour chaque users or je souhaite qu'il soit regroupé dans un seul dossier : le dossier Partage personnel utilisateurs (je n'arrive pas a vous mettre mon screen )
Que dois je donc modifier pour résoudre ces deux petites anomalies ? 
D'avance merci. 

 
Dernière édition: il y a 7 mois 1 semaine par BOURGOT.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 5 jours #33779 par BOURGOT
J'ai effectué quelques modifications, le partage des dossiers sont bien crées seulement je souhaiterai les avoir en mode caché que l'utilisateur a une vision de seulement de son dossier perso et non tous les dossiers, le mappage sur la lettre P ne veut pas s'effectué auriez vous une idée ? 
Je vous partage mon script modifié : 
Import-Module ActiveDirectory
# Importer les données
$CSVFile = “C:\Scripts\AD_Users\CSVperso.csv”
$CSVData = Import-CSV -Path $CSVFile -Delimiter “;” -Encoding UTF8
# Parcourez chaque ligne du fichier CSV
foreach ($Utilisateur in $CSVData) {
    $UtilisateurPrenom = $Utilisateur.Prenom
    $UtilisateurNom = $Utilisateur.Nom
    $UtilisateurLogin = $Utilisateur.Login
    $UtilisateurEmail = $Utilisateur.Mail
    $UtilisateurMotDePasse = $Utilisateur.Password
    $UtilisateurFonction = $Utilisateur.Fonction
    $UtilisateurOU = $Utilisateur.Service
    $UtilisateurGroupe = $Utilisateur.Groupe
    $UtilisateurNomComplet = $UtilisateurPrenom + ” ” + $UtilisateurNom
    $PATH = "\\SRV-AD\E$\Partages personnels utilisateurs"
    $PATHSMB = "E:\Partages personnels utilisateurs"

# Vérifier la présence de l’utilisateur dans l’AD
    if (Get-ADUser -Filter {SamAccountName -eq $UtilisateurLogin}) {
        Write-Warning “L’identifiant $UtilisateurLogin existe déjà dans l’AD”
    }
    else {
        # Créez le compte utilisateur
         $NewUserParams = @{
                    Name = $UtilisateurNomComplet
                    DisplayName = $UtilisateurNomComplet
                    UserPrincipalName = $UtilisateurEmail
                    Title = $UtilisateurFonction
                    Department = $UtilisateurOU
                    EmailAddress = $UtilisateurEmail
                    GivenName = $UtilisateurPrenom
                    Surname = $UtilisateurNom
                    SamAccountName = $UtilisateurLogin
                    Path = “OU=$UtilisateurOU,OU=AXEPLANE,DC=AXEPLANE,DC=LOC”
                    AccountPassword = (ConvertTo-SecureString $UtilisateurMotDePasse -AsPlainText -Force)
                    ChangePasswordAtLogon = $true
                    Enabled = $true
                    HomeDirectory = "$PATH\$UtilisateurLogin"
                    HomeDrive = "P:"
                    }
               New-ADUser @NewUserParams
        Write-Output “Création de l’utilisateur : $UtilisateurLogin”
        }
        # Assurez-vous que la colonne “Groupe” existe dans votre CSV
        if ($Utilisateur.Groupe) {
            # Ajouter l’utilisateur au groupe de sécurité global spécifié dans le CSV
            Add-ADGroupMember -Identity $UtilisateurGroupe -Members $UtilisateurLogin
            Write-Output “Ajout de l’utilisateur au groupe : $($UtilisateurGroupe)”
        }
        try {
        if (-Not (Test-Path -Path "$PATH\$UtilisateurLogin")) {
            # Creation du dossier partage
            New-Item -Path "\\SRV-AD\E$\Partages personnels utilisateurs\$UtilisateurLogin" -Name $UtilisateurLogin -type Directory
            Write-Output "Le dossier $PATH$UtilisateurLogin a ete cree correctement."
        }
        else {
            Write-Output "Le dossier $PATH$UtilisateurLogin existait deja." # Si le dossier existe déjà, on ne le créé pas à nouveau.
        }
        # Si le partage existait déjà, il sera supprimé puis recréé pour être sur qu'il corresponde à ce qui est voulu.0
        if (Get-SMBShare -Name $UtilisateurLogin -ErrorAction Ignore){
            Write-Output "Le dossier $PATH$UtilisateurLogin est deja partage a un utilisateur $UtilisateurLogin. Suppression du partage precedent et creation d'un nouveau."
            Remove-SmbShare -Name $UtilisateurLogin -Confirm:$false
        }
        New-SMBShare -Name $UtilisateurLogin -Path "$PATHSMB\$UtilisateurLogin" -FullAccess "$UtilisateurLogin"
        Write-Output "La creation du dossier partage de l'utilisateur $UtilisateurLogin a reussi."
        }
            catch {
        Write-Host $_.Exception.Message -ForegroundColor Red
        Write-Host "La creation du dossier partage de l'utilisateur $UtilisateurLogin a echoue."
    }
    }

D'avance merci. 

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.105 secondes
Propulsé par Kunena