2017-09-19 11 views
0

Il y a deux semaines, j'ai créé un script pour créer des utilisateurs en masse sur mon AD. J'ai un fichier .ps1 et un fichier .csv sur le bureau de mes serveurs.L'accès Powershell a été refusé aux utilisateurs en masse AD

Normalement, je peux faire un clic droit sur le fichier .ps1 et choisir "Exécuter avec Powershell", et tout fonctionne bien.

Cette fois, j'ai ça. Je ne sais vraiment pas ce que le problème pourrait être:

enter image description here

Mon fichier .ps1 ressemble:

Import-Module ActiveDirectory 
Import-Csv "C:\Users\laurent\Desktop\NewUsers.csv" | ForEach-Object { 
$userPrincinpal = $_."samAccountName" + "@cvoww.lokaal" 
$weergavenaam = $_."Firstname" + " " + $_."Lastname" 
New-ADUser -Name $weergavenaam ` 
-Path $_."ParentOU" ` 
-SamAccountName $_."samAccountName" ` 
-UserPrincipalName $userPrincinpal ` 
-GivenName $_."Firstname" ` 
-SurName $_."Lastname" ` 
-DisplayName $weergavenaam ` 
-AccountPassword (ConvertTo-SecureString $_."password" -AsPlainText -Force) ` 
-ChangePasswordAtLogon $true ` 
-Description $_."description" ` 
-Enabled $true; 
} 
Pause 

Mon fichier csv ressemble:

Firstname,Lastname,samAccountName,description,ParentOU,password 
Julles,Coutelle,Julles.Coutelle,"Valerie M, Diverse cursussen","OU=Cursisten1718,DC=cvoww,DC=lokaal",cursist 
Walter,Croquey,Walter.Croquey,"Valerie M, Diverse cursussen","OU=Cursisten1718,DC=cvoww,DC=lokaal",cursist 

Que pourrait être le problème? Merci de votre aide! Laurent

+0

vos autorisations changement a fait? – ArcSet

+2

Avez-vous essayé de l'exécuter en tant qu'administrateur? – ArcSet

+0

Quelle version de PowerShell êtes-vous? – TheIncorrigible1

Répondre

0

Juste une modification pour vous assurer qu'il fonctionne comme prévu:

#Requires -RunAsAdministrator 
#Requires -Version 3 

Import-Module ActiveDirectory 

Import-Csv 'C:\Users\laurent\Desktop\NewUsers.csv' | 
    ForEach-Object { 
    $weergavenaam = "$($_.Firstname) $($_.Lastname)" 

    $Params = @{ 
     Name = $weergavenaam 
     Path = $_.ParentOU 
     UserPrincipalName = "$($_.samAccountName)@cvoww.lokaal" 
     SamAccountName = $_.samAccountName 
     GivenName = $_.Firstname 
     SurName = $_.Lastname 
     DisplayName = $weergavenaam 
     AccountPassword = (ConvertTo-SecureString $_.password -AsPlainText -Force) 
     ChangePasswordAtLogon = $True 
     Description = $_.description 
     Enabled = $True 
    } 
    New-ADUser @Params 
    } 

PAUSE 
+0

Salut! Merci pour votre réponse. Cependant, cela n'a pas résolu le problème. Le problème était que je ne pouvais pas l'exécuter en tant qu'administrateur. Étrange, parce que ce n'était pas un problème dans le passé. Je ne connais pas beaucoup de powershell. Quelle est la différence dans votre solution? Merci! –

+0

@LaurentVeys en utilisant splatting, il réduit le risque d'erreur lors de l'écriture de scripts que vos paramètres sont définis dans une table de hachage et facilement modifiés et définis. De plus, il utilise une instruction '# requires 'pour que le script lui-même ne s'exécute que si vous l'exécutez en tant qu'administrateur (comme prévu) et vous donnera un message d'erreur indiquant autant. – TheIncorrigible1

+0

Merci beaucoup! –