Question Script powershell pour création user AD

Plus d'informations
il y a 3 ans 3 mois - il y a 3 ans 3 mois #30285 par Benjamin
Bonjour à tous,

Nouveau ici est débutant en powershell, je me forme en autodidacte.

Je voudrais crée un script pour la création d'un user depuis un script powershell. ci-joint le script ;
# Nom et Prénom de l'utilisateur
$nom = Read-Host "Merci de Rentrer le Nom et le Prenom de l'Utilisateur a creer"

# Login de connexion 
$login = Read-Host "Merci de Rentrer le Login de l'Utilisateur a creer"

#Mot de passe compte
$mdp = Read-Host "Merci de Rentrer le Mot de Passe de l'Utilisateur a creer"

#Ajout utilisateur
New-ADUser -Name $nom -SamAccountName $login -UserPrincipalName $login@xxxxxx -AccountPassword (ConvertTo-SecureString -AsPlainText $mdp -Force) -PasswordNeverExpires $true -CannotChangePassword $true -Enabled $true
# Création dossier user

je voudrais savoir si c'est possbile d'au lieu de taper un mot de passe dans powershell, il serait possible d'avoir automatique un mot de passe par défault qui serait changer une fois la première connexion.

Merci pour vos réponse
Dernière édition: il y a 3 ans 3 mois par Benjamin.

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

Plus d'informations
il y a 3 ans 3 mois - il y a 3 ans 3 mois #30289 par Arnaud Petitjean
Re Bonjour Benjamin ;-)

Je voudrais savoir si c'est possbile d'au lieu de taper un mot de passe dans powershell, il serait possible d'avoir automatique un mot de passe par défault qui serait changer une fois la première connexion.


Oui tout à fait ! Au lieu de demander la saisie interactive du mot de passe, tu le crées en avance de phase.

Voici un petit exemple :
$pwd = ConvertTo-SecureString "MyP@ssw0rd1234!" -AsPlainText -Force

New-ADUser -Name $nom -SamAccountName $login -UserPrincipalName $login@xxxxxx -AccountPassword $pwd -PasswordNeverExpires $true -Enabled $true

Par contre j'ai vu que tu avais mis "-CannotChangePassword $true". En faisant cela j'ai bien peur que ton utilisateur ne puisse pas modifier son mot de passe...

Sur ce, je te souhaite un bon réveillon et te dis à l'année prochaine ! ;)

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Dernière édition: il y a 3 ans 3 mois par Arnaud Petitjean.

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

Plus d'informations
il y a 3 ans 3 mois #30290 par Benjamin
Bonjour Arnaud Petitjean,

Merci pour ta réponse, du coup le mot de passe sera a saisir mais je l'ai cacher pour éviter le mot de passe en clair.

Par contre du coup je voudrais ajouter une fonction sur le script, quand on tape le login le script vérifie si le login existe déjà ou pas et si il existe il invite a taper un autre login. en cherchant j'ai vue qui fallait partir sur la commande GET-ADUSER mais après je n'arrive pas à trouver les commande exact.

Bonne Année à toi et à tous

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

Plus d'informations
il y a 3 ans 3 mois - il y a 3 ans 3 mois #30295 par Philippe
salut Benjamin

Pour ta recherche d'utilisateur tu peut faire une recherche simple :
Get-ADUser "theo"
Mais si l'utilisateur n'existe pas tu aura une erreur. Il faudra donc que tu gère l'erreur avec un try/catch par exemple et pour un débutant c'est pas idéal et pas très lisible quand on ne connais pas.

une autre solution est de faire un filtre sur le login (qui est unique dans le domaine) :
Get-ADUser -filter "SamAccountName -like 'theo*' "
ici pas d'erreur si l'utilisateur n'existe pas, ça renvoie rien. un simple if gère la situation !
$login = "theo"

if  (Get-ADUser -filter ('samaccountname -Like $login ')) {
    write-host "l'utilisateur existe déjà"
     }
else {
    write-host "il n'est pas dans l'AD !!"
    }

Je te conseil deux sites sur Get-ADUser celui de ph Barth et celui de Hicham Kadiri . Ils sont tout deux bourrer d'informations utiles pour un admin windows.



pour les fonctions, il existe de nombreux tutoriels sur internet en voici deux : celui de IT-Connect et celui de so doc

en deux mots, tu crée une fonction comme ceci :
function ma_recherche() {
}

tu récupère des paramètres comme ça :
function ma_recherche() {
    param ($Chemin, 
    $Fichier)
# cette fonction contient deux paramètres dans deux variables : $Chemin et $Fichier

    }

tu renvois des données comme ça :
function ma_recherche() {

# tu a le choix entre ces deux écritures les deux renvoie le contenus de la variable [i]$le_resultat_de_la_recherche[/i]
    $le_resultat_de_la_recherche # tu mes simplement le nom de la variable à la en fin de la fonction
ou 
    return $le_resultat_de_la_recherche # avec le [b]return[/b] tu peux sortir de la fonction en plein milieu

    }

pour appeler la fonction et récupérer le résultat de cette façon :
$le_resultat = ma_recherche $login

pour finir il te faudra faire une boucle pour redemandé les infos, tu trouvera un tuto sur le site de IT-connect cité plus haut
Dernière édition: il y a 3 ans 3 mois par Philippe.

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

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