Я предполагаю, что ваш CSV-файл не содержит текущего описания.Это означает, что вы должны сначала получить описание, а затем вернуть его обратно.Примерно так:
Import-CSV -Path "csvlocation.csv" | ForEach-Object {
$user = Get-ADUser $_.'User-Name' -Properties Description
Set-ADUser $user -Description $user.Description.Replace("Call security before re-enabling this account.", "").Trim()
}
Обновление: Технически говоря, вы не можете заменить только часть описания.Другими словами, вы не можете сказать Active Directory «пожалуйста, замените этот на этот в этом атрибуте».Вы можете только сказать Active Directory «установить этот атрибут на this ».(исключение составляют атрибуты с несколькими значениями, где вы можете добавлять и удалять значения)
Таким образом, вы должны сделать это в несколько шагов:
- Прочитать текущее описание.
- Создайте новую строку, в которой вы заменили то, что хотите заменить.
- Установите описание для строки, созданной на шаге 2.
Это именно то, что делает мой пример,хотя я соединил шаги 2 и 3 в одну строку (если попытаться, вы можете поместить все это в одну строку).
Я могу разбить код на несколько строк, чтобы вы лучше видели, что происходит.Давайте представим, что чье-то описание гласит:
Позвоните в службу безопасности перед повторным включением этой учетной записи.Human Resource Analyst
Вы хотите удалить «Вызовите безопасность перед повторным включением этой учетной записи».(Извините, я включил часть «Human Resource Analyst» ранее, я редактировал это - я думаю, что вы хотите сохранить это, верно?) Но давайте посмотрим, что происходит:
$user = Get-ADUser $_.'User-Name' -Properties Description
$currentDescription = $user.Description
#$currentDescription equals "Call security before re-enabling this account. Human Resource Analyst"
$newDescription = $currentDescription.Replace("Call security before re-enabling this account.", "").Trim()
#newDescription = "Human Resource Analyst"
Set-ADUser $user -Description $newDescription
#The description is now "Human Resource Analyst"
Я также добавил .Trim()
чтобы вы не заканчивали начальные или конечные пробелы.