Error handling and check if user exists
This commit is contained in:
parent
7df974133a
commit
826c49d164
@ -48,11 +48,6 @@ function GetADSID { #On récupere le SID de l'AD pour pouvoir l'intégrer aux gr
|
||||
return $domaineSID
|
||||
}
|
||||
|
||||
function GetACID { #Fonction de test
|
||||
return "superSID"
|
||||
}
|
||||
#################################
|
||||
|
||||
########### Variables ###########
|
||||
$userList = "Tech-N1","Tech-N2","Tech-N3"
|
||||
|
||||
@ -76,37 +71,46 @@ $grpNetAdmin = "S-1-5-32-556"
|
||||
|
||||
#Pour chaque user, on le crée + ajoute aux bons groupes
|
||||
ForEach($user in $userList){
|
||||
|
||||
$userPass = (GenPass)
|
||||
$userEncPass = ConvertTo-SecureString -String $userPass -AsPlainText -Force
|
||||
try{
|
||||
# On vérifie si l'utilisateur existe déjà, passe au suivant si oui
|
||||
$existingUser = Get-ADUser -Filter { Name -eq $user } -ErrorAction SilentlyContinue
|
||||
if ($existingUser) {
|
||||
Write-Color -Text "L'utilisateur ", $user, " existe déjà. Aucun changement effectué." -Color White, Yellow
|
||||
continue
|
||||
}
|
||||
$userPass = (GenPass)
|
||||
$userEncPass = ConvertTo-SecureString -String $userPass -AsPlainText -Force
|
||||
$detailsUser = @{
|
||||
Name = $user
|
||||
AccountPassword = $userEncPass
|
||||
Enabled = $true
|
||||
ChangePasswordAtLogon = $false
|
||||
PasswordNeverExpires = $true #On fait en sorte qu'il n'expire pas
|
||||
}
|
||||
New-ADUser @detailsUser #On cree l'user...
|
||||
|
||||
$detailsUser = @{
|
||||
Name = $user
|
||||
AccountPassword = $userEncPass
|
||||
Enabled = $true
|
||||
ChangePasswordAtLogon = $false
|
||||
PasswordNeverExpires = $true #On fait en sorte qu'il n'expire pas
|
||||
#...puis on l'ajoute aux bons groupes
|
||||
switch ($user) {
|
||||
"Tech-N1"{$Groups = @($grpAccountOp,$grpPrintOp,$grpDHCPuser)}
|
||||
"Tech-N2"{$Groups = @($grpAccountOp,$grpPrintOp,$grpDHCPadm,$grpGPOadmin,$grpNetAdmin)}
|
||||
"Tech-N3"{$Groups = @($grpDomainAdm)}
|
||||
Default {}
|
||||
}
|
||||
|
||||
$newCsvLine = @([PSCustomObject]@{Username = $user; Password = $userPass})
|
||||
$newCsvLine | Export-CSV "C:\techLogins-$pcName.csv" -Append -NoTypeInformation -Encoding UTF8
|
||||
|
||||
ForEach ($Group in $Groups) {
|
||||
|
||||
Add-ADPrincipalGroupMembership $User -MemberOf $Group
|
||||
|
||||
}
|
||||
|
||||
Write-Color -Text "L'utilisateur ",$User," a bien été crée. Son mot de passe est ",$userPass -Color White,Green,White,Cyan
|
||||
}
|
||||
catch {
|
||||
Write-Error "Erreur pour l'utilisateur $user : $_"
|
||||
}
|
||||
New-ADUser @detailsUser #On cree l'user...
|
||||
|
||||
#...puis on l'ajoute aux bons groupes
|
||||
switch ($user) {
|
||||
"Tech-N1"{$Groups = @($grpAccountOp,$grpPrintOp,$grpDHCPuser)}
|
||||
"Tech-N2"{$Groups = @($grpAccountOp,$grpPrintOp,$grpDHCPadm,$grpGPOadmin,$grpNetAdmin)}
|
||||
"Tech-N3"{$Groups = @($grpDomainAdm)}
|
||||
Default {}
|
||||
}
|
||||
|
||||
$newCsvLine = @([PSCustomObject]@{Username = $user; Password = $userPass})
|
||||
$newCsvLine | Export-CSV "C:\techLogins-$pcName.csv" -Append -NoTypeInformation -Encoding UTF8
|
||||
|
||||
ForEach ($Group in $Groups) {
|
||||
|
||||
Add-ADPrincipalGroupMembership $User -MemberOf $Group
|
||||
|
||||
}
|
||||
|
||||
Write-Color -Text "L'utilisateur ",$User," a bien été crée. Son mot de passe est ",$userPass -Color White,Green,White,Cyan
|
||||
}
|
||||
|
||||
Write-Color -Text "Les utilisateurs ainsi que leur mots de passes ont été exportés ici : ","C:\techLogins-$pcName.csv" -Color White,Green
|
Loading…
Reference in New Issue
Block a user