|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Ошибки в Powershell при создании пользователей |
|
|
PowerShell - Ошибки в Powershell при создании пользователей
|
Пользователь Сообщения: 75 |
Что я делаю не так?
Взял скрипт отсюда http://www.howtogeek.com/50187/how-t...th-powershell/ тупо скопировал его поменял домен $objOU=[ADSI]“LDAP://OU=abc,DC=contoso,DC=com” $dataSource=import-csv “users.csv” foreach($dataRecord in $datasource) { $cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName $sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName $givenName=$dataRecord.FirstName $sn=$dataRecord.LastName $sAMAccountName=$sAMAccountName.ToLower() $displayName=$sn + “, ” + $givenName $userPrincipalName=$sAMAccountName + “@contoso.com” $objUser=$objOU.Create(“user”,”CN=”+$cn) $objUser.Put(“sAMAccountName”,$sAMAccountName) $objUser.Put(“userPrincipalName”,$userPrincipalName) $objUser.Put(“displayName”,$displayName) $objUser.Put(“givenName”,$givenName) $objUser.Put(“sn”,$sn) $objUser.SetInfo() $objUser.SetPassword(“P@assw0rd”) $objUser.psbase.InvokeSet(“AccountDisabled”,$false) $objUser.SetInfo() } так выглядит csv FirstName;LastName Avis;Flamm Kurt;Pharris В результате получаю кучу ошибок Исключение при вызове "Create" с "2" аргументами: "Был передан недопустимый путь службы каталогов " C:\ADscripts\testscript.ps1:11 знак:23 + $objUser=$objOU.Create <<<< (“user”,”CN=”+$cn) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))" C:\ADscripts\testscript.ps1:15 знак:13 + $objUser.Put <<<< (“givenName”,$givenName) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))" C:\ADscripts\testscript.ps1:16 знак:13 + $objUser.Put <<<< (“sn”,$sn) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)" C:\ADscripts\testscript.ps1:17 знак:17 + $objUser.SetInfo <<<< () + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "SetPassword" с "1" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)" C:\ADscripts\testscript.ps1:18 знак:21 + $objUser.SetPassword <<<< (“P@assw0rd”) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "InvokeSet" с "2" аргументами: "Свойства службы каталогов не могут быть найдены в кэше. " C:\ADscripts\testscript.ps1:19 знак:26 + $objUser.psbase.InvokeSet <<<< (“AccountDisabled”,$false) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodTargetInvocation Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)" C:\ADscripts\testscript.ps1:20 знак:17 + $objUser.SetInfo <<<< () + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "Create" с "2" аргументами: "Был передан недопустимый путь службы каталогов " C:\ADscripts\testscript.ps1:11 знак:23 + $objUser=$objOU.Create <<<< (“user”,”CN=”+$cn) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))" C:\ADscripts\testscript.ps1:15 знак:13 + $objUser.Put <<<< (“givenName”,$givenName) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))" C:\ADscripts\testscript.ps1:16 знак:13 + $objUser.Put <<<< (“sn”,$sn) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)" C:\ADscripts\testscript.ps1:17 знак:17 + $objUser.SetInfo <<<< () + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "SetPassword" с "1" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)" C:\ADscripts\testscript.ps1:18 знак:21 + $objUser.SetPassword <<<< (“P@assw0rd”) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI Исключение при вызове "InvokeSet" с "2" аргументами: "Свойства службы каталогов не могут быть найдены в кэше. " C:\ADscripts\testscript.ps1:19 знак:26 + $objUser.psbase.InvokeSet <<<< (“AccountDisabled”,$false) + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodTargetInvocation Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)" C:\ADscripts\testscript.ps1:20 знак:17 + $objUser.SetInfo <<<< () + CategoryInfo : NotSpecified: ( [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI |
|
Отправлено: 13:34, 29-12-2011 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Надо указать разделитель в команде Import-CSv - Import-Csv users.csv -Delimiter ";"
|
Отправлено: 14:59, 29-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 75
|
Профиль | Отправить PM | Цитировать Помогло. Спасибо.
Тогда второй вопрос по кодировкам. Excel автоматически сохраняет в ANSI. А powershell у меня ANSI не понимает, слова на русском не записывает. Только если ставить UTF-8 то тогда все OK. Но csv в UTF-8 уже не понимает excel. Есть какое-нибудь решение этой проблемы? |
Отправлено: 16:40, 29-12-2011 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $dataSource = Get-Content users.csv | ConvertFrom-Csv -Delimiter ";"
|
Отправлено: 17:47, 29-12-2011 | #4 |
Пользователь Сообщения: 75
|
Профиль | Отправить PM | Цитировать Спасибо! Все заработало. Но появилась следующая проблема. Если у меня какой-то из атрибутов пустой, не вбит в таблице excel то появляется ошибка "Для службы каталогов указан недопустимый синтаксис атрибута" и объект не создается. Можно как-нибудь прописать что если у меня атрибут не вбит что-бы он его и не создавал?
|
|
Отправлено: 10:48, 30-12-2011 | #5 |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать Baggurd
Дружище, извини, что вмешиваюсь в вашу беседу, просто хочу поделиться с тобой, да и с другими кому будет интересно. Я тут давеча скрипт для создание пользователей через модуль Active Directory в PowerShell состряпал. Посмотри может быть будет полезен. Файл .csv .Разделение между параметрами ";", сохранён в utf8, можно и в utf16 содержимое файла: Цитата:
Цитата:
|
||
Отправлено: 11:14, 30-12-2011 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Baggurd
Сделать условие,что переменная определена и имеет значение,и только потом присваивать параметр. |
Отправлено: 11:41, 30-12-2011 | #7 |
Пользователь Сообщения: 75
|
Профиль | Отправить PM | Цитировать ratibor79, Проблема в том что module active directory есть только на windows 2008 r2 и windows 7.
Kazun, А где бы посмотреть синтаксис? |
Отправлено: 20:51, 30-12-2011 | #8 |
Пользователь Сообщения: 112
|
Профиль | Отправить PM | Цитировать Baggurd
Попробуй другой вариант. Скрипт испытан, работает. Единственно в нем вместо ";" используется "`t" - табуляция (при желании можно изменить). В архиве также и прилагается к нему файл из которого экспортируются данные. Посмотри, если не нравиться табуляция замени на ";" Да ещё если не пойдёт, то в скрипте замени $OU на $objOU, а $u на $objUser Но по идее должно работать и так |
Последний раз редактировалось ratibor79, 30-12-2011 в 21:24. Отправлено: 21:15, 30-12-2011 | #9 |
Пользователь Сообщения: 75
|
Профиль | Отправить PM | Цитировать ratibor79, К сожалению до 16 января попробовать ничего не смогу. Но мне почему-то кажется что этот скрипт примерно такой-же как и мой и если в каком-нибудь поле (например description) ничего не вбить он точно также выдаст ошибку. Вроде бы проще использовать командлеты от Quest. Не знаю есть ли там те же проблемы, попробую как приеду.
|
Отправлено: 21:47, 30-12-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Импорт пользователей с помощью POwerShell и CSV файла. | Temafet | Скриптовые языки администрирования Windows | 19 | 18-01-2012 16:45 | |
При создании трансляции вэб-камеры Мозилла вылетает, при этом за что-то извиняется. | vovikrus | Хочу все знать | 2 | 17-02-2010 19:03 | |
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD | alex_frog | Скриптовые языки администрирования Windows | 6 | 22-07-2009 18:41 | |
Ошибка - при создании нового подключения при сохранений логина и пароля пишет ошибку 1305 | p.s-bagdan | Microsoft Windows 2000/XP | 1 | 09-10-2008 09:33 | |
Router - Ошибка при создании сети | Glamur | Сетевое оборудование | 3 | 03-10-2008 21:49 |
|