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

Я пытаюсь написать простой сценарий powershell, который рекламирует пользователя домена в группу локальных администраторов на компьютерах с Windows, а затем через 30 минут удаляет их. Это то, что я до сих пор.

Param(
  [string]$machineName,
  [string]$group,
  [string]$user
)
$objUser = [ADSI]("WinNT://$user")
$objGroup = [ADSI]("WinNT://$machineName/$group")
$objGroup.PSBase.Invoke("Add",$objUser.PSBase.Path)
sleep 1800
$objGroup.PSBase.Invoke("Remove",$objUser.PSBase.Path)

Этот скрипт вызывается с тремя параметрами и прекрасно работает. Пользователь вставляется в группу, а через 30 минут они удаляются.

Последнее, что мне нужно, - это заставление Windows понять, что пользователь больше не является администратором через 30 минут...

В настоящее время пользователь должен выйти из системы и снова войти в нее, чтобы реализовать права администратора, с которыми у меня все в порядке, но я не хочу, чтобы они могли сохранять разрешения за последние 30 минут. Как я могу заставить это произойти? Даже после удаления из группы они могут выполнять задачи администратора до тех пор, пока не выйдут из системы.

Заранее спасибо.

2 ответа

Решение

Я не верю, что то, что вы хотите сделать, технически возможно без какого-либо события выхода из системы. Пока у них есть активный сеанс / процесс, который был изначально создан, когда он был членом группы, контекст этого сеанса / процесса будет оставаться членом группы, пока не завершится. Это та же самая причина, по которой им нужно выйти / войти, чтобы "активировать" членство в группе для начала.

Теперь существует множество способов принудительного выхода из системы в заранее установленное время. Но я думаю, что это примерно так же близко, как вы собираетесь без изменения или расширения подсистемы безопасности Windows (например, с помощью стороннего продукта).

Вы можете заставить пользователя выйти из системы через 30 минут. отметка. использование Win32Shutdown с флагом 4 для принудительного выхода из системы.

Это единственный способ заставить пользователя не иметь разрешения по истечении требуемого времени.

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

Другие вопросы по тегам