===== 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" } }