@Funksama
Начинающий системный администратор

Ошибка определения переменной powershell, в чем причина?

Добрый день, подскажите пожалуйста в чем ошибка, хочется из csv таблицы по столбцу ФамилияИмя найти пользователей AD по displayName и изменить у них описание на значения из таблицы столбца ИНН, код :

# Импортируем данные из CSV-файла
$csvData = Import-CSV -Path C:\share\FII.csv -Delimiter "," -Encoding UTF8

# Цикл для каждой строки в CSV-файле
foreach ($row in $csvData) {
$userName = $row."ФамилияИмя"

# Ищем пользователя в AD по DisplayName
$user = Get-ADUser -Filter { DisplayName -eq $userName }

# Если пользователь найден, меняем его описание на значение из столбца "ИНН"
if ($user) {
$newDescription = $row.ИНН
Set-ADUser -Identity $user.SamAccountName -Description $newDescription
Write-Host "Описание пользователя $($user.SamAccountName) изменено на $newDescription"
} else {
Write-Host "Пользователь с DisplayName $userName не найден в Active Directory"
}
}

как бы не менял атрибуты мне не удается провести скрипт, все время жалуется на ошибку определения.
ошибка:
Get-ADUser : Переменная: "userName" обнаружена в выражении: $userName не имеет определения.
C:\share\A.ps1:9 знак:13
+ $user = Get-ADUser -Filter { DisplayName -eq $userName }
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADUser
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Ну вы введите прямо в PS
$csvData = Import-CSV -Path C:\share\FII.csv -Delimiter "," -Encoding UTF8
$csvData[0]."ФамилияИмя"

Если там что-то будет, то пойти дальше
Get-ADUser -Filter { DisplayName -eq $csvData[0]."ФамилияИмя" }


А если нет - то ванга подсказывает, что может быть проблема с кодировкой файла и стоит посмотреть, что вообще выдаст $csvData[0]

проблема действительно была в кодировке , при запросе выдавались крокозябры
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы