2015-05-26 2 views
1

У меня есть .csv-файл с несколькими пользователями, и у каждого пользователя есть другое описание. Я пытаюсь создать сценарий, чтобы обновить описание пользователей тем, что находится в CSV-файле. Я искал, но не смог найти сценарий, который делает то, что мне нужно. Может кто-нибудь взглянуть на мой сценарий, пожалуйста? Я ошибаюсь по адресу: Неожиданный токен 'in' в выражении или выражении. В строке: 6 char: 35 Неожиданный токен 'in' в выражении или выражении. В строке: 6 полукокса: 38Обновление пользователей с различными описаниями в AD

ipmo ac* 
$file = c:\user_file.csv 
$user = $_.samaccountname 
$desc = $_.description 

Import-csv $file | Foreach ($user in $file) { 
@(Set-aduser -identity $($file.user) -description $($file.desc)) 
} 

Любая помощь будет оценена, так как я пытался сделать это в течение недели, и я уверен, что это что-то легко?

+0

Это должно быть просто 'Set-aduser -identity $ user.samaccountname -description $ user.description', предполагая, что имя samaccount и описание были именами колонок в этом файле. Не уверен, что вы пытались сделать с '$ user' и' $ desc'. Они были бы пустыми. Также вы используете 'foreach' неправильно. – Matt

ответ

1

Я бы вместо этого сделал что-то подобное.

ipmo ac* 
$file = "c:\user_file.csv" 
Import-csv $file | ForEach-Object{ 
    Set-aduser -identity $_.samaccountname -description $_.description 
} 

Это предполагает, что у вас есть CSV с колоннами называемых samaccountname и description.

Не знаете, что вы пытались сделать с помощью $user и $desc, так что они просто пропущены. Предполагая, что они фактически были бы нулевыми, поскольку $_ предназначен для использования внутри конвейера.

Используемый вами ForEach не предназначен для ввода трубопровода. То, как вы это делаете, обычно стоит само собой. Поэтому мы переключили его на версию ForEach-Object, которая позволяет вводить конвейер.

+0

Полученная ошибка: Set-ADUser: Не удается найти объект с идентификатором: '' под: 'DC = test, DC = net'. В строке: 4 символ: 15 + Set-ADUser <<<< -identity $ _ SamAccountName -description $ _ Описание + CategoryInfo:.. ObjectNotFound: (: ADUser) [Set-ADUser], ADIdentityNotFoundException + FullyQualifiedErrorId: Не удается найти объект с идентификатором: '' под: 'DC = test, DC = net'., Microsoft.ActiveDirectory.Management.Commands.SetADUser Мой файл содержит: SamAccountName, Описание user1, "Alumni, 1234567" user2 , "Alumni, 2345678" user3, "Alumni, 3456789 – priara

+0

@priara Я хочу знать, что первые 3 строки из вас CSV выглядят сейчас ... о, у вас есть. Можете добавить его к своему вопросу. – Matt

+0

Это как это выглядит: SamAccountName, Описание user1, «Alumni, 1234567» user2, «Alumni, 2345678» user3, «Alumni, 3456789» – priara