Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Измение атрибутов в полльзователей в АД. Ошибки Operator Not supported

Ответить
Настройки темы
PowerShell - Измение атрибутов в полльзователей в АД. Ошибки Operator Not supported

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите как исправить ошибку. Делаю обновление атрибутов пользователей.
Код: Выделить весь код
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
Благодарности: 861

Профиль | Отправить PM | Цитировать


Измените знак - в фильтре:

PS > [int][char]"-" -Символ, который сейчас в Filter и PowerShell его не воспринимает
8211

PS > [int][char]"-" - Символ который должен быть в Filter
45


Код: Выделить весь код
(Get-ADuser -Filter {GivenName -eq $Name -and Surname -eq $Surname}).SamAccountName
И лучше:
Код: Выделить весь код
Get-ADuser -Filter {GivenName -eq $Name -and Surname -eq $Surname} | Set-ADUser  -EmailAddress $Email -MobilePhone $Phone -Company $Organization -Title $JobTitle
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:55, 07-08-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


это ошибка первого варианта.
Get-ADUser : Переменная: "Name" обнаружена в выражении: $Name не имеет определения.
строка:21 знак:21
+ $Login = (Get-ADuser <<<< -Filter {GivenName -eq $Name -and Surname -eq $Surname}).SamAccountName #ищем юзера с заданным именем и фамилией и возвращаем его логин
+ CategoryInfo : InvalidArgument: ( [Get-ADUser], ArgumentException
+ 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: ( [Set-ADUser], ParameterBindingValidationException
+ 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: ( [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : Переменная: "Name" обнаружена в выражении: $Name не имеет определения.,Microsoft.ActiveDirectory.Management.Commands.GetADUser

Отправлено: 13:22, 07-08-2015 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, помогло. А можно чтобы проверяло по значению cn.

Отправлено: 13:41, 07-08-2015 | #5


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите а как использовать функции в данном скрипте. Вроде Есть функция userset с параметром ($CurrentUser) и функция Provision с параметром ($user). Но с помощью функций не получается делать обновление атрибутов.

Отправлено: 17:40, 10-08-2015 | #6


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


А можно чтобы проверяло по значению cn. - Можно, использовать фильтр по CN.

Get-ADuser -Filter {cn -eq $cn}

Я не знаю, о каких функциях идет речь. Но функций userset,Provision - таких нет и не было. Обновление атрибутов происходит через командлет Set-ADUser .
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:45, 10-08-2015 | #7


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


http://forum.oszone.net/post-2242418.html
Здесь используются функции.
В Powershell вывел список функций. get-command -CommandType function

Отправлено: 18:13, 10-08-2015 | #8


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Обновление атрибутов пользователей из csv работает. Подскажите как в этом же скрипте добавить перемещение пользователя в свой контейнер из csv!

Отправлено: 16:06, 18-08-2015 | #9


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Добавить, скажем, Path в скрипт - должно быть DistinguishedName (как пример для Users: CN=Users,DC=Contoso,DC=Com или OU: OU=MyTest,DC=Contoso,DC=Com)

Код: Выделить весь код
$path = $CurrentUser.Path
Get-ADuser -Filter {GivenName -eq $Name -and Surname -eq $Surname} | Set-ADUser  -EmailAddress $Email -MobilePhone $Phone -Company $Organization -Title $JobTitle -PassThru | Move-ADObject -TargetPath $path
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:22, 18-08-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Измение атрибутов в полльзователей в АД. Ошибки Operator Not supported

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход