如何在PowerShell中创建具有一些要求的广告用户?

时间:2015-04-10 04:15:20

标签: powershell

我必须创建adUser。密码应该是身份证的前6个字符和姓氏。我应该将全名分为名字和姓氏。

这是我的脚本,但它不起作用:

$Userslist = import-csv "C:\teacherslist.csv"

ForEach ($User in $Userslist){
    $name = $User.FullName -split '\s+'
    $firstName = $name[0]
    $lastName = $name[1]
    $pass = $User.IDcard.subString(0,6)+$lastName


    New-ADUser -name $User.StaffID 
        -GivenName $FirstName 
        -Surname $LastName 
        -DisplayName $user.FullName 
        -AccountPassword (ConvertTo-SecureString $pass -AsPlainText -force) 
        -Path 'OU=Teacher,DC=school,DC=com' 
        -HomeDrive 'F:'
        -changePasswordAtLogon $true 

}

1 个答案:

答案 0 :(得分:0)

好的,您可能会在不同的行上解析您的参数问题。我知道它更易于阅读,但PowerShell并不知道下一行包含New-ADUser cmdlet的另一个参数,除非您在每行末尾添加反引号(必须是最后一行)该行的字符)。

如果你想让你的参数组织起来更好的方法是将它们作为哈希表分配给变量,然后将哈希表作为New-ADUser的参数进行处理。

ForEach ($User in $Userslist){
    $name = $User.FullName -split '\s+'
    $firstName = $name[0]
    $lastName = $name[1]
    $pass = $User.IDcard.subString(0,6)+$lastName


   $Params = @{'name' = $User.StaffID;
        'GivenName' = $FirstName;
        'Surname' = $LastName;
        'DisplayName' = $user.FullName;
        'AccountPassword' = (ConvertTo-SecureString $pass -AsPlainText -force);
        'Path' = 'OU=Teacher,DC=school,DC=com';
        'HomeDrive' = 'F:';
        'changePasswordAtLogon' = $true}

   New-ADUser @Params

}