|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Измение атрибутов в полльзователей в АД. Ошибки Operator Not supported |
|
|
PowerShell - Измение атрибутов в полльзователей в АД. Ошибки Operator Not supported
|
Новый участник Сообщения: 13 |
Подскажите как исправить ошибку. Делаю обновление атрибутов пользователей.
Import-Module ActiveDirectory $Users = Import-Csv -Delimiter ";" -Path "C:\AD\ad-import.csv" Foreach ($CurrentUser in $Users) { $Name = $CurrentUser.Name $Surname = $CurrentUser.Surname $Email = $CurrentUser.EMail $Phone = $CurrentUser.Phone $Organization = $CurrentUser.Organization $JobTitle = $CurrentUser.JobTitle $Login = (Get-ADuser –Filter {GivenName –eq $Name –and Surname –eq $Surname}).SamAccountName #ищем юзера с заданным именем и фамилией и возвращаем его логин Set-ADUser $Login –EmailAddress $Email –MobilePhone $Phone –Company $Organization –Title $JobTitle В итого запуска ошибки: Get-ADUser : Ошибка анализа запроса: "GivenName –eq $Name –and Surname –eq $Surname" Сообщение об ошибке: "Operator Not supported: " с расположением в: "11". строка:21 знак:21 + $Login = (Get-ADuser <<<< –Filter {GivenName –eq $Name –and Surname –eq $Surname}).SamAccountName #ищем юзера с заданным именем и фамилией и возвращаем его логин + CategoryInfo : ParserError: (:) [Get-ADUser], ADFilterParsingException + FullyQualifiedErrorId : Ошибка анализа запроса: "GivenName –eq $Name –and Surname –eq $Surname" Сообщение об ошибке: "Operator Not supported: " с расположением в: "11".,Microsoft.ActiveDirectory.Management.Commands.GetADUser Set-ADUser : Не удается проверить аргумент для параметра "Identity". Аргумент имеет значение NULL. Укажите аргумент, не имеющий значение NULL, после чего повторите выполнение команды. строка:23 знак:11 + Set-ADUser <<<< $Login –EmailAddress $Email –MobilePhone $Phone –Company $Organization –Title $JobTitle + CategoryInfo : InvalidData: (:) [Set-ADUser], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser |
|
Отправлено: 12:47, 07-08-2015 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Измените знак - в фильтре:
PS > [int][char]"-" -Символ, который сейчас в Filter и PowerShell его не воспринимает 8211 PS > [int][char]"-" - Символ который должен быть в Filter 45 И лучше: |
Отправлено: 12:55, 07-08-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать это ошибка первого варианта.
Get-ADUser : Переменная: "Name" обнаружена в выражении: $Name не имеет определения. строка:21 знак:21 + $Login = (Get-ADuser <<<< -Filter {GivenName -eq $Name -and Surname -eq $Surname}).SamAccountName #ищем юзера с заданным именем и фамилией и возвращаем его логин + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : Переменная: "Name" обнаружена в выражении: $Name не имеет определения.,Microsoft.ActiveDirectory.Management.Commands.GetADUser Set-ADUser : Не удается проверить аргумент для параметра "Identity". Аргумент имеет значение NULL. Укажите аргумент, не имеющий значение NULL, после чего повторите выполнение команды. строка:23 знак:11 + Set-ADUser <<<< $Login –EmailAddress $Email –MobilePhone $Phone –Company $Organization –Title $JobTitle + CategoryInfo : InvalidData: ( ![]() + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser Это ошибка второго. Get-ADUser : Переменная: "Name" обнаружена в выражении: $Name не имеет определения. строка:21 знак:11 + Get-ADuser <<<< -Filter {GivenName -eq $Name -and Surname -eq $Surname} | Set-ADUser -EmailAddress $Email -MobilePhone $Phone -Company $Organization -Title $JobTitle + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : Переменная: "Name" обнаружена в выражении: $Name не имеет определения.,Microsoft.ActiveDirectory.Management.Commands.GetADUser |
Отправлено: 13:22, 07-08-2015 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Переменная: "Name" обнаружена в выражении: $Name не имеет определения. - Переменная $Name пустая, проблема в том что $CurrentUser.Name передает пустое значение. Проверяйте вывод:
Import-Csv -Delimiter ";" -Path "C:\AD\ad-import.csv" и Import-Csv -Delimiter ";" -Path "C:\AD\ad-import.csv" | Select Name PS. Файл C:\AD\ad-import.csv - должен быть в кодировке UTF8. |
Отправлено: 13:33, 07-08-2015 | #4 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Спасибо, помогло. А можно чтобы проверяло по значению cn.
|
|
Отправлено: 13:41, 07-08-2015 | #5 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Подскажите а как использовать функции в данном скрипте. Вроде Есть функция userset с параметром ($CurrentUser) и функция Provision с параметром ($user). Но с помощью функций не получается делать обновление атрибутов.
|
Отправлено: 17:40, 10-08-2015 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать А можно чтобы проверяло по значению cn. - Можно, использовать фильтр по CN.
Get-ADuser -Filter {cn -eq $cn} Я не знаю, о каких функциях идет речь. Но функций userset,Provision - таких нет и не было. Обновление атрибутов происходит через командлет Set-ADUser . |
Отправлено: 17:45, 10-08-2015 | #7 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать http://forum.oszone.net/post-2242418.html
Здесь используются функции. В Powershell вывел список функций. get-command -CommandType function |
Отправлено: 18:13, 10-08-2015 | #8 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Обновление атрибутов пользователей из csv работает. Подскажите как в этом же скрипте добавить перемещение пользователя в свой контейнер из csv!
|
Отправлено: 16:06, 18-08-2015 | #9 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Добавить, скажем, Path в скрипт - должно быть DistinguishedName (как пример для Users: CN=Users,DC=Contoso,DC=Com или OU: OU=MyTest,DC=Contoso,DC=Com)
|
Отправлено: 16:22, 18-08-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Измение значений Gpedit.msc при помощи PowerShell | Zarevich | Скриптовые языки администрирования Windows | 1 | 02-11-2013 21:09 | |
[решено] Ошибки на КД. (Иногда отваливается АД) | Иринка7 | Microsoft Windows NT/2000/2003 | 4 | 18-10-2013 12:10 | |
V. 2010 - В АД уже есть exchange 2003, нужно переехать на 2010, нужно ли обновлять схему АД | akaAmigos | Microsoft Exchange Server | 54 | 30-07-2012 14:10 | |
.NET - измение сетвого шлюза | Sokuro | Программирование и базы данных | 1 | 24-11-2008 03:32 | |
Разное - [решено] удаленное измение громкости звука | nmn | Microsoft Windows 2000/XP | 3 | 28-04-2008 17:17 |
|