- forum
- PowerShell
- Entraide pour les débutants
- Import utilisateurs dans active directory et export des données
Résolu
Import utilisateurs dans active directory et export des données
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 9 mois - il y a 2 ans 9 mois #30985
par witness
Bonjour,
Je suis en train de travailler sur un script pour importer des utilisateurs dans l'annuaire AD.
Voici mon script:
Le script a l'air de fonctionner mais j'ai plusieurs questions dont les réponses me permettraient de mieux avancer et de mieux comprendre certaines choses:
Le mot de passe est généré aléatoirement, mais comment je peux faire pour le récupérer ?
Car dans le script qui m'a servi de modèle (voir pdf ci-joint), je ne vois rien qui me permettrait de pouvoir le récupérer, ce qui est embêtant si je dois importer 2000 utilisateurs.
Je pense alors que je vais devoir créer un export de chaque utilisateur importé, mais avant que ConvertTo-SecureString ne s'applique j'imagine, car après il n'est plus lisible ?
Merci pour vos lumières pour cette première question.
Je suis en train de travailler sur un script pour importer des utilisateurs dans l'annuaire AD.
Voici mon script:
# Import des éléments du fichier source
$users = import-csv -path "C:\Users\Administrateur\Desktop\importusers.csv" -delimiter ";"
# Fonction de génération d'un password aléatoire de 8 caractères
Function random-password ($length = 8)
{
$punc = 24..24 + 40..40
$digits = 48..57
$letters = 65..90 + 97..122
$password = get-random -count $length `
-input ($punc + $digits + $letters) | % -begin { $aa = $null } `
-process {$aa += [char]$_} `
-end {$aa}
return $password.ToString()
}
foreach ($user in $users)
{
$givenname= $user.Prenom
$sn= $user.Nom
$ou= "OU=importusers,DC=server,DC=local"
$description= $user.Description
$SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()
$CN = $givenname + " " + $sn
$displayName = $CN
$UPN = $SAM + "@domaine.local"
$userAccountControl= 66050
$CannotChangePassword = 1
$HomeDrive = "U"
$HomeDirectory = "\\test\test"
$ProfilePath = "C:\users"
$ScriptLogon = "test"
$Password = random-password
$Secure_String_pwd = ConvertTo-SecureString $Password -AsPlainText -Force
$Enabled = 1
# Export des données dans un fichier TXT
$user | out-file -append -Filepath C:\Users\Administrateur\Desktop\export.txt
# Ajout des données dans la base Active Directory
New-ADuser -displayName $displayName -Path $ou -Description $description -SamAccountName $SAM -givenname $givenname -Surname $sn -name $displayName -UserPrincipalName $UPN -PasswordNeverExpires $userAccountControl -CannotChangePassword $CannotChangePassword -HomeDrive $HomeDrive -HomeDirectory $HomeDirectory -ProfilePath $ProfilePath -ScriptPath $ScriptLogon -Enabled $Enabled -Accountpassword $Secure_String_pwd
}
Le script a l'air de fonctionner mais j'ai plusieurs questions dont les réponses me permettraient de mieux avancer et de mieux comprendre certaines choses:
Le mot de passe est généré aléatoirement, mais comment je peux faire pour le récupérer ?
Car dans le script qui m'a servi de modèle (voir pdf ci-joint), je ne vois rien qui me permettrait de pouvoir le récupérer, ce qui est embêtant si je dois importer 2000 utilisateurs.
Je pense alors que je vais devoir créer un export de chaque utilisateur importé, mais avant que ConvertTo-SecureString ne s'applique j'imagine, car après il n'est plus lisible ?
Merci pour vos lumières pour cette première question.
Pièces jointes :
Dernière édition: il y a 2 ans 9 mois par witness.
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 9 mois - il y a 2 ans 9 mois #30990
par witness
Réponse de witness sur le sujet Import utilisateurs dans active directory et export des données
Avec ce code:
J'obtiens bien un fichier csv formaté convenablement, seulement, il n'y a que 3 informations en sortie de mon fichier csv:
#TYPE System.Management.Automation.PSCustomObject
"Nom","Prenom","Description"
"Einstein","Albert","coucou"
"Newton","Isaac","coucou"
Ce que je souhaiterais, c'est obtenir ces 3 informations plus d'autres informations issues des variables, comme $password, $CN, etc..
Sauriez-vous m'aider ?
Merci d'avance.
# Import des éléments du fichier source
$users = import-csv -path "C:\Users\Administrateur\Desktop\importusers.csv" -delimiter ";"
# Fonction de génération d'un password aléatoire de 8 caractères
Function random-password ($length = 8)
{
$punc = 64..64 + 44..44
$digits = 48..57
$letters = 65..90 + 97..122
$password = get-random -count $length `
-input ($punc + $digits + $letters) | ForEach-Object -begin { $aa = $null } `
-process {$aa += [char]$_} `
-end {$aa}
return $password.ToString()
}
foreach ($user in $users)
{
$sn= $user.Nom
$givenname= $user.Prenom
$ou= "OU=importusers,DC=server,DC=local"
$description= $user.Description
$SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()
$CN = $givenname + " " + $sn
$displayName = $CN
$UPN = $SAM + "@domaine.local"
$userAccountControl= 66050
$CannotChangePassword = 1
$HomeDrive = "U"
$HomeDirectory = "\\test\test"
$ProfilePath = "C:\users"
$ScriptLogon = "test"
$Password = random-password
$Secure_String_pwd = ConvertTo-SecureString $Password -AsPlainText -Force
$Enabled = 1
# Export des données dans un fichier TXT
$user | export-csv -append -path "C:\Users\Administrateur\Desktop\export.csv"
# Ajout des données dans la base Active Directory
New-ADuser -displayName $displayName -Path $ou -Description $description -SamAccountName $SAM -givenname $givenname -Surname $sn -name $displayName -UserPrincipalName $UPN -PasswordNeverExpires $userAccountControl -CannotChangePassword $CannotChangePassword -HomeDrive $HomeDrive -HomeDirectory $HomeDirectory -ProfilePath $ProfilePath -ScriptPath $ScriptLogon -Enabled $Enabled -Accountpassword $Secure_String_pwd
}
J'obtiens bien un fichier csv formaté convenablement, seulement, il n'y a que 3 informations en sortie de mon fichier csv:
#TYPE System.Management.Automation.PSCustomObject
"Nom","Prenom","Description"
"Einstein","Albert","coucou"
"Newton","Isaac","coucou"
Ce que je souhaiterais, c'est obtenir ces 3 informations plus d'autres informations issues des variables, comme $password, $CN, etc..
Sauriez-vous m'aider ?
Merci d'avance.
Dernière édition: il y a 2 ans 9 mois par witness.
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 9 mois #30991
par witness
Réponse de witness sur le sujet Import utilisateurs dans active directory et export des données
Avec un Export-csv plutôt qu'un out-file, il semble que le formatage soit par défaut ce que je recherche.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 37
il y a 2 ans 9 mois #30992
par ericlm128
Réponse de ericlm128 sur le sujet Import utilisateurs dans active directory et export des données
Export-Csv a aussi le paramètre Append
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 9 mois #30993
par witness
Salut Eric,
En effet, je pense que Export-csv correspond plus à ce que je cherche.
Par contre, il ne me renvoie en sortie que 3 éléments, à savoir, Nom Prenom et Description.
Ces 3 éléments sont exactement ceux qu'il y a dans mon fichier d'import, j'imagine que ce n'est pas un hasard.
Comment puis-je faire pour retrouver en sortie ces 3 éléments plus d'autres dont j'ai besoin, notamment la valeur de $Password, de $CN et d'autres ?
Merci.
Réponse de witness sur le sujet Import utilisateurs dans active directory et export des données
Export-Csv a aussi le paramètre Append
Salut Eric,
En effet, je pense que Export-csv correspond plus à ce que je cherche.
Par contre, il ne me renvoie en sortie que 3 éléments, à savoir, Nom Prenom et Description.
Ces 3 éléments sont exactement ceux qu'il y a dans mon fichier d'import, j'imagine que ce n'est pas un hasard.
Comment puis-je faire pour retrouver en sortie ces 3 éléments plus d'autres dont j'ai besoin, notamment la valeur de $Password, de $CN et d'autres ?
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 37
il y a 2 ans 9 mois #30996
par ericlm128
Réponse de ericlm128 sur le sujet Import utilisateurs dans active directory et export des données
Voici une solution simple
Function random-password ($length = 8)
{
$punc = 64..64 + 44..44
$digits = 48..57
$letters = 65..90 + 97..122
$password = get-random -count $length `
-input ($punc + $digits + $letters) | ForEach-Object -begin { $aa = $null } `
-process {$aa += [char]$_} `
-end {$aa}
return $password.ToString()
}
$users = import-csv -path "importusers.csv" -delimiter ";"
$NewUsers = $users | ForEach-Object {
$sn= $_.Nom
$givenname= $_.Prenom
$ou= "OU=importusers,DC=indp57,DC=local"
$description= $_.Description
$SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()
$CN = $givenname + " " + $sn
$displayName = $CN
$UPN = $SAM + "@indp57.local"
$userAccountControl= 66050
$CannotChangePassword = 1
$HomeDrive = "U"
$HomeDirectory = "\\test\test"
$ProfilePath = "C:\users"
$ScriptLogon = "test"
$Password = random-password
$Secure_String_pwd = ConvertTo-SecureString $Password -AsPlainText -Force
$Enabled = 1
[PSCustomObject]@{
sn = $sn
givenname = $givenname
ou = $ou
description= $description
SAM = $SAM
CN = $CN
displayName = $displayName
UPN = $UPN
userAccountControl = $userAccountControl
CannotChangePassword = $CannotChangePassword
HomeDrive = $HomeDrive
HomeDirectory = $HomeDirectory
ProfilePath = $ProfilePath
ScriptLogon = $ScriptLogon
Password = $Password
Secure_String_pwd = $Secure_String_pwd
Enabled = $Enabled
}
}
$NewUsers | Export-Csv -path "export.csv" -Append -NoTypeInformation -Delimiter ";"
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- Import utilisateurs dans active directory et export des données
Temps de génération de la page : 0.096 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Import utilisateurs dans active directory et export des données