Powershell acces否认批量用户AD
两周前,我已经为我的广告中的批量用户制作了脚本。 我的服务器桌面上有一个.ps1文件和一个.csv文件。Powershell acces否认批量用户AD
通常,我可以右键单击.ps1文件并选择“使用Powershell运行”,并且一切正常。
这一次我得到了这个。我真的不知道这个问题可能是什么:
我的.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
有什么事情是问题吗? 感谢您的帮助! 洛朗
只是修改,以确保它运行如您所愿:
#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
嗨! 谢谢你的回答。但它没有解决问题。问题是我无法以管理员身份运行它。奇怪,因为这在过去不是问题。 我不知道很多PowerShell。你的解决方案有什么不同?谢谢! –
@LaurentVeys使用splatting,它可以减少编写脚本时发生错误的机会,因为您的参数在散列表中定义并且易于更改和定义。另外,它使用'#requires'语句,所以脚本本身将不会运行,除非您以管理员身份运行(如预期的那样),并且会给出一条错误消息,说明这一点。 – TheIncorrigible1
非常感谢! –
没有你的权限更改? – ArcSet
你是否试过以管理员身份运行它? – ArcSet
您使用的是哪个版本的PowerShell? – TheIncorrigible1