2015-04-10 2 views
0

Мне нужно создать adUser's. Пароль должен быть первым 6 символами ID-карты и фамилия. Я должен разделить полное имя на имя и фамилию.Как создать пользователя с некоторыми требованиями в powershell?

Это мой сценарий, но он не работает:

$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

У вас возникла ошибка? – TheMadTechnician

ответ

0

Хорошо, вы, вероятно, получить разбор проблем с вашими аргументами на разных линиях, как это. Я понимаю, что это упрощает чтение, но PowerShell не знает, что следующая строка содержит другой параметр для вашего командлета New-ADUser, если вы не поставите обратную линию в конце каждой строки (должен быть последним символом строки).

Если вы хотите, чтобы ваши параметры были организованы таким образом, лучший способ сделать это - назначить их переменной как хэш-таблице, а затем отобразить хеш-таблицу в качестве параметров для 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 

} 
Смежные вопросы