Powershell acces否认批量用户AD

问题描述:

两周前,我已经为我的广告中的批量用户制作了脚本。 我的服务器桌面上有一个.ps1文件和一个.csv文件。Powershell acces否认批量用户AD

通常,我可以右键单击.ps1文件并选择“使用Powershell运行”,并且一切正常。

这一次我得到了这个。我真的不知道这个问题可能是什么:

enter image description here

我的.ps1文件看起来像:

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 

我的CSV文件看起来像:

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 

有什么事情是问题吗? 感谢您的帮助! 洛朗

+0

没有你的权限更改? – ArcSet

+2

你是否试过以管理员身份运行它? – ArcSet

+0

您使用的是哪个版本的PowerShell? – TheIncorrigible1

只是修改,以确保它运行如您所愿:

#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

嗨! 谢谢你的回答。但它没有解决问题。问题是我无法以管理员身份运行它。奇怪,因为这在过去不是问题。 我不知道很多PowerShell。你的解决方案有什么不同?谢谢! –

+0

@LaurentVeys使用splatting,它可以减少编写脚本时发生错误的机会,因为您的参数在散列表中定义并且易于更改和定义。另外,它使用'#requires'语句,所以脚本本身将不会运行,除非您以管理员身份运行(如预期的那样),并且会给出一条错误消息,说明这一点。 – TheIncorrigible1

+0

非常感谢! –