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

Компьютерный форум 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

 

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


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

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


Import-Module ActiveDirectory

$Users = Import-Csv -Delimiter ";" -Path "C:\AD\ad-import5.csv"

$path = "OU=123456,DC=point,DC=pro"

Foreach ($CurrentUser in $Users) {

$Name = $CurrentUser.Name

$Surname = $CurrentUser.Surname

$Email = $CurrentUser.EMail

$Phone = $CurrentUser.Phone

$Organization = $CurrentUser.Organization

$JobTitle = $CurrentUser.JobTitle

$path = $CurrentUser.Path

$DistinguishedName = $CurrentUser.DistinguishedName

$Login = Get-ADuser -Filter {GivenName -eq $Name -and Surname -eq $Surname} | Set-ADUser -EmailAddress $Email -MobilePhone $Phone -Company $Organization -Title $JobTitle | Move-ADObject -TargetPath $path
}

В csv поле path


Я правильно понял? Ошибок нет и не переносит, только атрибуты правит.

Отправлено: 09:27, 19-08-2015 | #11



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

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


Ветеран


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

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


$path либо вручную указывать, либо в из csv. В одном месте должно быть, а не в 2.

$path = "OU=123456,DC=point,DC=pro" - 1
$path = $CurrentUser.Path - 2

И скопируйте повторно код, который я привел постом выше, а то видимо трудно с первого раза скопировать без ошибок.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:38, 19-08-2015 | #12


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


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

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


Спасибо работает. Просто хотел чтобы в csv путь писать конечный.

Отправлено: 09:50, 19-08-2015 | #13


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


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

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


Еще вопрос. Получается что в csv для работы скрипта должны быть заполнены все поля. У меня некоторые пользователи не с полной информацией.

Set-ADUser : replace
C:\AD\Мои скрипты\Тесты\test.ps1:37 знак:46
+ Get-ADuser -Filter {cn -eq $cn} | Set-ADUser <<<< -MobilePhone $Phone -Company $Organization -Title $JobTitle -City $City -Department $Department -PassThru | Move-ADObject -TargetPath $path
+ CategoryInfo : InvalidOperation: (CN=last111 firs...DC=point,DC=pro:ADUser) [Set-ADUser], ADInvalidOperationException
+ FullyQualifiedErrorId : replace,Microsoft.ActiveDirectory.Management.Commands.SetADUser

Отправлено: 13:04, 19-08-2015 | #14


Ветеран


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

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


Пустые значения нельзя передавать, можно $null.

Код: Выделить весь код
$prop = Write-Output EMail Phone Organization JobTitle
Foreach ($CurrentUser in $Users) {
	$Name = $CurrentUser.Name
	$Surname = $CurrentUser.Surname
	
	$prop | Foreach {
		if($CurrentUser."$_") {
			Set-Variable -Name "$_" -Value $CurrentUser."$_" -Force
		}
		else {
			Set-Variable -Name "$_" -Value $null -Force
		}
	}

	$path = $CurrentUser.Path

	$Login = Get-ADuser $Name | Set-ADUser -EmailAddress $Email -MobilePhone $Phone -Company $Organization -Title $JobTitle -PassThru | Move-ADObject -TargetPath $path
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:35, 19-08-2015 | #15


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


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

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


Есть атрибут ipPhone - (IP-телефон). Никак не получается добавить его в изменение атрибутов.

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


Ветеран


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

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


Set-ADUser .... -Replace @{ipPhone=$ipphone}
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:07, 20-08-2015 | #17


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


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

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


Подскажите, а как Set-ADUser .... -Replace @{ipPhone=$ipphone} это значение передать. "Пустые значения нельзя передавать, можно $null."

Отправлено: 11:05, 25-08-2015 | #18


Ветеран


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

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


Делать проверку,что есть значение:
Код: Выделить весь код
if($ipphone) {
	Set-ADUser $User -Replace @{"ipphone" = $val}
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:45, 25-08-2015 | #19


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


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

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


Я правильно понял? Мне нужно если это поле ipphone не заполнено скрипт выполнялся.
Как вот здесь. Если в csv не полная информация передаем значения $null.
$prop = Write-Output EMail Phone Organization JobTitle
Foreach ($CurrentUser in $Users) {
$Name = $CurrentUser.Name
$Surname = $CurrentUser.Surname

$prop | Foreach {
if($CurrentUser."$_") {
Set-Variable -Name "$_" -Value $CurrentUser."$_" -Force
}
else {
Set-Variable -Name "$_" -Value $null -Force
}
}

$path = $CurrentUser.Path

$Login = Get-ADuser $Name | Set-ADUser -EmailAddress $Email -MobilePhone $Phone -Company $Organization -Title $JobTitle -PassThru | Move-ADObject -TargetPath $path
}

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



Компьютерный форум 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




 
Переход