Script PowerShell

Présentation

Grâce à un fichier .csv d'utilisateurs, le script PowerShell insérera les utilisateur dans l'active directory

Script

#On importe le module active directory
Import-Module ActiveDirectory
 
function Test-ADGroup {
   Param([Parameter(Mandatory=$true)][string]$Identity)
   $filter = 'Name -eq "'+$Identity+'"'
   $groups = Get-ADGroup -Filter $filter
   ($groups -ne $null)
}
 
#A completer L'ip Gestion de l'emplacement des répertoires personnels
$ipServeurDeFichiers="172.25.0.11"
$emplacement="\\"+$ipServeurDeFichiers+"\Repbase\"
 
#Gestion de l'emplacement des répertoires partages
$partage="\\"+$ipServeurDeFichiers+"\Equipes\"
 
#création de l'unité d'organisation
$uo = Read-Host "Donnez le nom de votre UO."
$descriptionuo = Read-Host "Donnez la description de votre UO."
$connexion = [ADSI]"LDAP://dc=gsba,dc=local"
$organisation = $connexion.Create("OrganizationalUnit","ou=$uo")
$organisation.put("description","$descriptionuo")
$organisation.setInfo()
 
#Encryption du Password
$securepwd = ConvertTo-SecureString "Password1" -AsPlainText -Force
 
$chemin = "OU=$uo,DC=gsba,DC=local"
 
Import-Csv .\annuaire.csv -Delimiter ';'|ForEach {
 
 
#création des groupes globaux
 
    if (!(Test-ADGroup -Identity $_.Equipe)) { 
 
	    New-ADGroup -Name $_.Equipe -Path "$chemin" -GroupCategory Security -GroupScope Global -SamAccountName $_.Equipe
 
	    #création des groupes de domaine locaux
	    $nomGroupeLocal = "local_"+$_.Equipe
	    New-ADGroup -Name $nomGroupeLocal -Path "$chemin" -GroupCategory Security -GroupScope DomainLocal -SamAccountName $nomGroupeLocal
 
	    #ajout des groupes globaux dans les groupes de domaines locaux
	    Add-ADGroupMember -Identity $nomGroupeLocal -Members $_.Equipe
    }
 
    #Ajout de l'utilisateur
    $sam = $_.SamAccountName
    $displayName = $_.Name+" "+$GivenName
    $dossier = $emplacement + $sam
 
    New-ADUser -Path "$chemin" -SamAccountName $sam -Name $_.Name -SurName $_.Name -GivenName $_.GivenName -DisplayName "$displayName" -AccountPassword $securepwd -HomeDirectory $dossier -HomeDrive u: -Enabled $True
 
    #On affecte ensuite les utilisateurs dans leur groupe respectif
    $group = $_.Equipe
    Add-ADGroupMember -Identity $group -Members $sam
 
    #On créé le répertoire de chaque utilisateur
    Set-Location $emplacement
    New-item -Name $sam -Itemtype directory
 
    #On créé le répertoire de partage propre au groupe de l'utilisateur
    $testpartage = $partage + $group
    if(Test-Path $testpartage)
    {
        #Si le partage existe déja
        set-ADuser $sam -ScriptPath "sript.bat"
    }
    Else
    {
        #Sinon on créé le partage
        Set-Location $partage
        New-item -Name $group -ItemType directory
        Set-Aduser $sam -ScriptPath "sript.bat"
    }
}