Résolu Import utilisateurs dans active directory et export des données

Plus d'informations
il y a 2 ans 10 mois - il y a 2 ans 10 mois #30997 par witness
Merci eric, en effet ça semble fonctionner.
J'ai dû ajouter le paramètre -force à la dernière ligne car sinon j'avais une erreur:
Export-Csv : Impossible d’ajouter du contenu CSV au fichier suivant:
C:\Users\Administrateur\Desktop\export.csv. L’objet ajouté ne possède pas de propriété correspondant à la
colonne suivante: Nom,"Prenom","Description". Pour continuer avec des propriétés différentes, ajoutez le paramètre
-Force, puis réessayez d’exécuter la commande.
Au caractère Ligne:1 : 13
+ $NewUsers | Export-Csv -path "C:\Users\Administrateur\Desktop\ ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData : (Nom,"Prenom","Description":String) [Export-Csv], InvalidOperationExceptio
   n
    + FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell.Commands.ExportCsvComman
   d

Sinon, peux-tu m'expliquer la commande ci-dessous qui t'a servi à pouvoir récupérer les infos ?

PSCustomObject]@

Merci
Dernière édition: il y a 2 ans 10 mois par witness.

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

Plus d'informations
il y a 2 ans 9 mois - il y a 2 ans 9 mois #30998 par witness
Bonjour Eric,

Je pense que j'ai parlé trop vite.
En effet, ton script me génère bien un fichier de sortie comme attendu mais il ne crée par les utilisateurs dans l'OU.
Il ne me renvoie pas de message d'erreur mais il n'y a pas de création des utilisateurs.



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 "C:\Users\Administrateur\Desktop\importusers.csv" -delimiter ";"

$NewUsers = $users | ForEach-Object {
    $sn= $_.Nom
    $givenname= $_.Prenom
    $ou= "OU=importusers,DC=Mondomaine,DC=local"
    $description= $_.Description
    $SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()
    $CN = $givenname + " " + $sn
    $displayName = $CN
    $UPN = $SAM + "@Mondomaine.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 "C:\Users\Administrateur\Desktop\export.csv" -Append -NoTypeInformation -Delimiter ";"

J'ai même essayé seulement ce bloc du coup, mais sans succès


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 "C:\Users\Administrateur\Desktop\importusers.csv" -delimiter ";"

$NewUsers = $users | ForEach-Object {
    $sn= $_.Nom
    $givenname= $_.Prenom
    $ou= "OU=importusers,DC=Mondomaine,DC=local"
    $description= $_.Description
    $SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()
    $CN = $givenname + " " + $sn
    $displayName = $CN
    $UPN = $SAM + "@Mondomaine.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
}
 
Dernière édition: il y a 2 ans 9 mois par witness.

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

Plus d'informations
il y a 2 ans 9 mois #30999 par witness
Il manquait le New-ADuser en fait.
En l'ajoutant ça marche.
Merci

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

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