2016-03-10 2 views
0
$userarray = import-csv "userlist.csv" 

foreach ($user in $userarray){ 
    $login = $user.username 
    $gname = $user.firstname 
    $sname = $user.lastname 
    $fname = $gname + " " + $sname 
    $passw = ConvertTo-SecureString $user.password -AsPlainText -Force 
    $email = $user.email 
    $dptmt = $user.department 
    $hodir = "\\BYFS01\Home$\$login" 
    $madou = "OU=$dptmt,OU=Staff,DC=breezeyob.v11a,DC=.org" 

    New-ADUser -SamAccountName $login -UserPrincipalName $email  -Name  $fname -GivenName $gname -Surname $sname -EmailAddress $email  -AccountPassword $passw -Enabled 1 -Path $madou -HomeDrive "Z:"  -HomeDirectory $hodir 

}Powershell нового ADUser Выпуск

Это мой текущий код. В моем CSV есть все правильные заголовки, они тоже в порядке. не

Ошибка х я получаю, когда я запускаю это время (Случается для каждого пользователя, ничего получает вводят в ад- пользователей и компьютеров:

Error screen

Так что мой вопрос, почему я получаю эту ошибку? Если вы хотите увидеть мой CSV, дайте мне знать

ответ

0

являются следующие проблемы дети вашей команды:!

$email = $user.email 
$madou = "OU=$dptmt,OU=Staff,DC=breezeyob.v11a,DC=.org" 

помощь для т команда предполагает, что значение должно быть постоянным. Проблема связана с зависимостью электронной почты от другой переменной $ user. Переменная $ user в свою очередь зависит от другой переменной, $ userarray. Это много переменных внутри переменных нестабильно (с точки зрения PowerShell).

Попробуйте достижения значения как следующий за $ электронной переменной перед тем инициализации его в специальной HashTable:

$email = '[email protected]' 

Обратите внимание, что вам не нужно, чтобы он явно указано как мой пример. Это может быть, как это так:

$email = $anotherVariable 

Ключевым моментом здесь является то, что точка $ anothervariable до значения, как

'[email protected]' 

И не что-то вроде

"[email protected]$DontKnowThisYetVariable.org" 

Рассмотрим следующий пример:

$login = $user.username 

Это утверждение, скорее всего, не вызывает никаких проблем, потому что ваша переменная «$ user.username» указывает на строчную константу, такую ​​как «Calvin» или «Hobbes» где-то в вашем CSV.

Я уверен, что если ваши переменные указывают на постоянные значения, ваша команда будет работать плавно. Я воспроизвел ту же ошибку, когда создал быстродействующий домен Active Directory. Я побежал следующий в моем супер новой эры доменных имен, и она работала:

$userarray = Import-Csv "userlist.csv" 

$DefinedVariable = "Users" 

foreach ($user in $userarray){ 

$login = $user.username 
$gname = $user.firstname 
$sname = $user.lastname 
$fname = $gname + " " + $sname 
$passw = ConvertTo-SecureString $user.password -AsPlainText -Force 
$email = $user.email 
$dptmt = $DefinedVariable 

$madou = "CN=$dptmt,DC=contoso,DC=com" 

New-ADUser -SamAccountName $login -UserPrincipalName $email -Name $fname -GivenName $gname ` 
-Surname $sname -EmailAddress $email -AccountPassword $passw -Enabled $true ` 
-Path $madou -HomeDrive "Z:" -HomeDirectory $hodir 
} 
0

Я думаю, что это просто синтаксис переменного $ Мада: (.) ​​ Насколько я знаю, атрибут DistinguishedName не позволяет DOTS в своей строке. Так что я думаю, вместо:

$madou = "OU=$dptmt,OU=Staff,DC=breezeyob.v11a,DC=.org" 

Оно должно быть:

$madou = "OU=$dptmt,OU=Staff,DC=breezeyob,DC=v11a,DC=org" 
Смежные вопросы