Назад | Перейти на главную страницу

Как использовать импортированный текст в переменной в PowerShell

Я хочу, чтобы у некоторых пользователей была автоматическая разблокировка AD.

Я использую это для импорта информации в текстовый файл

Get-EventLog -LogName Security -ComputerName COMP -InstanceId 4740 -Newest 1 |
    Format-List >> $log

Тогда я использую это

If ((Get-Content $log) -match $name )
{
    Unlock-ADAccount -Identity $Account_Name
}

Сейчас $Account_Name должно быть таким же, как имя пользователя, указанное в первой команде (экспорт журнала событий). Как я могу это сделать? Конечно, имя пользователя каждый раз будет другим, поэтому мне интересно, как я это делаю. Автоматическая разблокировка для некоторых пользователей мне очень поможет!

Что-то вроде% USERNAME% в пакетном файле.

Как мне это сделать правильно?

Вместо этого подхода, вероятно, было бы разумнее использовать командлет Search-ADAccount для поиска заблокированных учетных записей и просто перенаправить любую учетную запись, которая есть в вашем списке:

Search-ADAccount -LockedOut | 
    where { $ListOfUsersToUnlock -contains $_.Name } | 
    Unlock-ADAccount

Вы усложняете работу, используя стиль работы parse & praise (объект -> текст -> синтаксический анализ -> объект).

Ответ BartekB определенно является хорошим ответом на заданный вопрос. Но необходимость постоянно опрашивать AD на предмет заблокированных учетных записей только для того, чтобы выборочно разблокировать подмножество, если они оказались заблокированными, кажется действительно плохим решением корневой проблемы.

В конце концов, похоже, что вы хотите иметь подмножество пользователей, у которых нельзя заблокировать свои пароли. Так почему бы просто не использовать Детализированные политики паролей для этой группы пользователей, чтобы предотвратить их блокировку в первую очередь? Никаких скриптов и опросов AD не требуется. Просто создайте объект настроек пароля (PSO), который удаляет настройки блокировки, и нацелите его на группу, содержащую пользователей, которых вы не хотите блокировать.