Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] ошибка при использовании значения в переменной

Ответить
Настройки темы
PowerShell - [решено] ошибка при использовании значения в переменной

Старожил


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

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


не могу разобраться в чем причина

если выполнять код, выходит ошибка. хотя переменная содержит правильное значение

Код: Выделить весь код
$Users = Import-Csv -Path C:\1C Script\userTitle.csv -Delimiter ';'
foreach ($User in $Users) {
Get-ADUser -Filter {displayName -like $User.displayname} -Properties * | Set-ADUser -Title $User.titleGood
}

Цитата:
Get-ADUser : Не найдено свойство "displayname" в объекте типа "System.Management.Automation.PSCustomObject".
строка:3 знак:1
+ Get-ADUser -Filter {displayName -like $User.displayname} -Properties ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: ( [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADUs er


а если значение $User.displayname передавать через другую переменную, то все хорошо.
можно как то без отдельной переменной это использовать?

Код: Выделить весь код
$Users = Import-Csv -Path C:\1C Script\userTitle.csv -Delimiter ';'
foreach ($User in $Users) {
$userdisplayname = $User.displayname
Get-ADUser -Filter {displayName -like $userdisplayname} -Properties * | Set-ADUser -Title $User.titleGood
}

Отправлено: 12:51, 30-12-2020

 

Ветеран


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

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


Цитата Ageron:
если значение $User.displayname передавать через другую переменную, то все хорошо »
не работает и молчит - это не "всё хорошо"

у вас в первой строке путь с пробелом не окавычен, поэтому в переменных мусор, а не данные
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:10, 30-12-2020 | #2



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

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


Старожил


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

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


Цитата Busla:
у вас в первой строке путь с пробелом не окавычен, поэтому в переменных мусор, а не данные »
во 2м коде, тоже без кавычек, но работает.
дело не в пути


выполнение на другой машине, выдает ошибку

Код: Выделить весь код
$Users = Import-Csv -Path "C:\Distrib\userTitle.csv" -Delimiter ';'
foreach ($User in $Users) {
Get-ADUser -Filter {displayName -like $User.displayname} -Properties *
}


Цитата:
Get-ADUser : Не найдено свойство "displayname" в объекте типа "System.Management.Automation.PSCustomObject".
C:\Users\testuser17\Desktop\Безымянный1.ps1:3 знак:1
+ Get-ADUser -Filter {displayName -like $User.displayname} -Properties ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: ( [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADUs er
Цитата Busla:
не работает и молчит - это не "всё хорошо" »
2й код работает

Отправлено: 15:02, 30-12-2020 | #3


Ветеран


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

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


вообще, аргумент Filter - это строка, а фигурные скобки - упрощённый синтаксис
попробуйте так:
Код: Выделить весь код
Get-ADUser -Filter "displayname -eq '$($user.displayname)'"
-like вы используете не по назначению
-Properties * вам тоже не нужен
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:18, 30-12-2020 | #4


Старожил


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

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


надо
Код: Выделить весь код
$user  = import-csv -header displayname,<и все другие колонки по порядку> -path 'file.csv'
write-host $user.displayname
в
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:52, 31-12-2020 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] ошибка при использовании значения в переменной

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Присвоение значения переменной starav Скриптовые языки администрирования Windows 1 30-05-2013 09:23
Прочее - [решено] подскажите как настроить nmap при использовании при использовании pppoe подключения LaoTsi Сетевые технологии 1 21-11-2011 23:55
CMD/BAT - [решено] Передача значения переменной в IF при EnableExtensions kotik147 Скриптовые языки администрирования Windows 1 19-05-2010 09:22
Ошибка при использовании .NET Framework CrOsP Автоматическая установка Windows 2000/XP/2003 2 09-11-2009 10:27
C/C++ - [решено] Непонятка при присвоении значения переменной, имеющей тип: перечисление. Oleg_SK Программирование и базы данных 5 04-12-2008 07:22




 
Переход