|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Добавление информации из csv-файла в AD с обработкой |
|
|
PowerShell - [решено] Добавление информации из csv-файла в AD с обработкой
|
Новый участник Сообщения: 32 |
Профиль | Отправить PM | Цитировать Доброго времени суток.
Прошу помочь в решении посредством PowerShell следующей задачи: Есть users1s.csv - содержащий два поля - полное ФИО (name) и табельный номер (tabnum), необходимо в AD найти сотрудника с таким ФИО (при условии, что в AD вместо полного отчества есть только инициал) и добавить в поле почтового индекса табельный номер, удалив при этом запись об этом сотруднике из users1s.csv, чтобы в итоге в файле остались только необработанные сотрудники. P.S. Обращение к AD необходимо реализовать с помощью командлетов PowerGUI. |
|
Отправлено: 09:55, 13-07-2011 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата IvanXXL:
Цитата IvanXXL:
|
||
Отправлено: 09:42, 14-07-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 32
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Цитата IvanXXL:
Цитата amel27:
|
|||
Отправлено: 10:18, 14-07-2011 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать примерно так:
$file="file.csv" $temp="temp.csv" Get-Content $file|Out-File $temp -Encoding "Unicode" $header = "FIO","Index" $csv = Import-CSV $temp -header $header $csv | Select-Object @{Name="FIO"; Expression={($_.FIO).Split(" ")}}, Index | ForEach-Object { $index = $_.Index $user = get-QADUser -SearchRoot 'domain.local/Users' -LastName $_.FIO[0] -FirstName $_.FIO[1] -Initials ($_.FIO[2]).Substring(0,1) -ErrorVariable errs 2>&1 $user | set-QADUser -PostalCode $index -ErrorVariable errs 2>&1 If ($errs.Count -gt 0) { Out-File $file -InputObject ($_.FIO[0]+" "+$_.FIO[1]+" "+$_.FIO[2]+","+$_.Index) -Encoding "Default" } } | Out-Null во 2-м блоке полученный файл загружается в переменную $csv ну и 3-й блок - собственно конвейер обработки P.S. предполагается, что исходный CSV в ANSI и не содержит заголовка |
Последний раз редактировалось amel27, 15-07-2011 в 04:52. Отправлено: 14:05, 14-07-2011 | #4 |
Новый участник Сообщения: 32
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Set-QADUser : Не удается проверить аргумент для параметра "Identity". Аргумент пустой или имеет значение NULL. Укажите не п устой аргумент, не имеющий значение NULL, после чего повторите выполнение команды. O:\_ps\TabNumInAD.ps1:12 знак:22 + $user | set-QADUser <<<< -PostalCode $index -ErrorVariable errs 2>&1 + CategoryInfo : InvalidData: (:) [Set-QADUser], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets.Se tUserCmdlet |
||
Отправлено: 06:46, 15-07-2011 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата IvanXXL:
|
|
Отправлено: 08:13, 15-07-2011 | #6 |
Новый участник Сообщения: 32
|
Профиль | Отправить PM | Цитировать Цитата amel27:
|
|
Отправлено: 08:30, 15-07-2011 | #7 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата IvanXXL:
$file="file.csv" $temp="temp.csv" Get-Content $file|Out-File $temp -Encoding "Unicode" $header = "FIO","Index" $csv = Import-CSV $temp -header $header -delimiter ";" $csv | Select-Object @{Name="FIO"; Expression={($_.FIO).Split(" ")}}, Index | ForEach-Object { $index = $_.Index $user = get-QADUser -SearchRoot 'domain.local/Users' -LastName $_.FIO[0] -FirstName $_.FIO[1] -Initials ($_.FIO[2]).Substring(0,1) -ErrorVariable errs 2>&1 $user | set-QADUser -PostalCode $index -ErrorVariable errs 2>&1 If ($errs.Count -gt 0) { Out-File $file -InputObject ($_.FIO[0]+" "+$_.FIO[1]+" "+$_.FIO[2]+";"+$_.Index) -Encoding "Default" } } | Out-Null |
|
Отправлено: 08:42, 15-07-2011 | #8 |
Новый участник Сообщения: 32
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Скрипт работает, спасибо огромное! |
|
Отправлено: 08:53, 15-07-2011 | #9 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Очень нужна помощь! Как перезапустить службу в Power Shell на локальном компьютере, сделал только это, а дальше заплутал. Помогите, плизззззз!
|
Отправлено: 17:42, 22-07-2014 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Сложное преобразование xls или csv файла в текстовый | tarasov.evgeny | Скриптовые языки администрирования Windows | 1 | 29-05-2011 15:04 | |
[решено] Добавление OEM информации - все вопросы | ANDYru | Автоматическая установка Windows 2000/XP/2003 | 228 | 05-09-2010 09:52 | |
CMD/BAT - Добавление информации в реестр, с помощью мастера планирования заданий | achsel | Скриптовые языки администрирования Windows | 5 | 04-05-2010 18:42 | |
Получение и обработка информации из текстового файла | ya158 | AutoIt | 3 | 11-09-2009 01:24 | |
Добавление информации на сайт через вэб-интерфейс | Vopros | Вебмастеру | 1 | 26-06-2003 08:50 |
|