我正在尝试将用户批量添加到我的Active Directory中,但是我在脚本开头就出现了表达式错误。我根本不是一个脚本爱好者,所以我真的没有想法。
$Users = Import-Csv ".\UsersFile.csv"
foreach ($User in $Users)
{
-OrganizationalUnit $User.OU
-SamAccountName $User.UserName
-userPassword $User.Password
-GivenName $User.First
-Initials $USer.Initial
-sn $User.Last
-Displayname $User.DisplayName
-Description $User.Description
-Physicaldeliveryofficename $User.Office
-TelephoneNumber $User.Tel
-Mail $User.mail
-streetaddress $User.Street
-postOfficeBox $User.Postbus
-l $User.Location
-st $User.Provincie
-postalCode $User.Postcode
-c $User.Land
-deparment $User.Department
-Company $User.Organisatie
-Manager $User.Manager
-Password $User.Password -ResetPasswordOnNextLogon $false
}
错误日志。
在一元运算符' - '之后缺少表达式。 在C:\ Users \ Administrator \ Desktop \ CreateUserBulk.ps1:4 char:10 + - <<<< OrganizationalUnit $ User.OU` + CategoryInfo:ParserError:( - :String)[],Parseexception + FullyQualifiedErrorID:MissingExpressionAfterOperator
在尝试链接(来自serv)并相应地编辑CSV和脚本之后,现在就可以获得更多错误。
Import-Csv:无法打开文件“C:\ Users \ administrator \ UsersFile.csv”。 在C:\ Users \ administrator \ Desktop \ Untitled3.ps1:2 char:20 + $ Users = Import-Csv<<<< -Delimiter“;” -Path“。\ UsersFile.csv” + CategoryInfo:OpenError:(:) [Import-Csv],FileNotFoundException + FullyQualifiedErrorId:FileOpenFailure,Microsoft.PowerShell.Commands.ImportCsvCommand 您无法在空值表达式上调用方法。 在C:\ Users \ administrator \ Desktop \ Untitled3.ps1:9 char:53 + $ FirstLetterFirstname = $ UserFirstname.substring<<<< (0,1) + CategoryInfo:InvalidOperation:(substring:String)[],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull
ConvertTo-SecureString:无法将参数绑定到参数“String”,因为它为null。 在C:\ Users \ administrator \ Desktop \ Untitled3.ps1:11 char:195 + New-ADUser -Name $ Detailedname -SamAccountName $ SAM -UserPrincipalName $ SAM -DisplayName $ Detailedname -GivenName $ user.firstname -Surname $ user.name -AccountPassword(ConvertTo-SecureString<<<< $ Password -AsPlainText -Force)-Ena 流血$ true -Path $ OU + CategoryInfo:InvalidData:(:) [ConvertTo-SecureString],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertToSe cureStringCommand
EDIT2:已修复,我将源链接更改为完整性,现在可以正常工作了!
答案 0 :(得分:0)
您没有在脚本中创建新的AD用户。所以-OrganizationalUnit
应该是未定义的并抛出错误,请先将它们声明为变量。
Import-Module ActiveDirectory
$Users = Import-Csv -Delimiter ";" -Path ".\UsersFile.csv"
foreach ($User in $Users)
{
$FirstLetterFirstname = $User.firstname.substring(0,1)
New-ADUser -Name $User.firstname + " " + $User.name
-SamAccountName $FirstLetterFirstName + $User.name
//... and so on
}
您可以先以$FirstletterFirstName
的方式声明所有变量,并在每个循环结束时执行New-ADUser
命令,以便以后更容易阅读和修改。
重要的部分仍然存在:添加新用户是通过您缺少的New-ADUser
命令执行的。您还可以将New-ADUser
添加到循环的顶部,如果您的代码中没有其他语法错误/拼写错误,则可以使查询正常工作
//编辑:你可以在http://gallery.technet.microsoft.com/scriptcenter/ed20b349-9758-4c70-adc0-19c5acfcae45
找到一个有效的例子和New-ADUser的TechNet文章: http://technet.microsoft.com/en-us/library/ee617253.aspx