Надеюсь, я понял, чего вы пытаетесь достичь, у вас есть CSV-файлы с электронными письмами пользователей и датой истечения срока их действия.и вы хотите использовать эту информацию, чтобы обновить срок действия пользователей.
Предположим, что в CSV имеются следующие заголовки: «Электронная почта пользователя» и «Срок действия пользователя».поэтому, когда вы импортируете файл CSV в переменную, у вас будет пользовательский объект PS с информацией.Допустим, мы используем переменную $ Users.
PS C:\> $users = Import-Csv -Path C:\Users\user\Desktop\users.csv
PS C:\> $users
User Email User expiration date
---------- --------------------
contact@saggiehaim.net 24/09/2018
info@saggiehaim.net 20/09/2018
admin@saggiehaim.net 28/09/2018
Теперь мы можем запустить цикл for, найти пользователя и установить дату окончания срока действия.то, что я делаю, это запрашивает AD и спрашивает его также свойство EmailAddress, затем я делаю фильтр на основе электронной почты пользователя, когда мы находим объект, мы направляем его в set-ADAccountExpiration
foreach ($user in $users) {
$UserEmail = $user.'User Email'
Get-ADUser -Properties EmailAddress -filter "EmailAddress -eq $useremail" | Set-ADAccountExpiration -DateTime $user.'User expiration date' -Verbose
}
На что следует обратить внимание:
1.Этот сценарий зависит от предположения, что у вас есть адрес электронной почты пользователя в свойстве EmailAddress
2. Дата истечения срока хранения сохраняется в том же форматеваши окна, если нет, вы должны преобразовать его .
3. Если список очень большой, я бы рекомендовал сначала получить всех пользователей из активного каталога, а затем найтипользователи из этого списка, и не запрашивать LDAP снова и снова
ВСЕГДА ИСПЫТЫВАЙТЕ ПЕРЕД ТЕМ, ЧТО ВЫ НАЙДЕТЕ В ПРОИЗВОДСТВО !!!может быть, я понятия не имею и все неправильно;)
Надеюсь, я хоть немного тебе помог.и извините за плохой английский.