Я пытаюсь написать простой сценарий 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 минут. Как я могу заставить это случиться? Даже после того, как они были удалены из группы, они все еще могут выполнять задачи администратора, пока не выйдут из системы.
Заранее спасибо.
Я не верю, что то, что вы хотите сделать, технически возможно без какого-либо события выхода из системы. Пока у них есть активный сеанс / процесс, который был первоначально создан, когда он был членом группы, контекст этого сеанса / процесса будет оставаться членом группы до тех пор, пока не завершится. По той же причине им нужно выйти из системы / войти в систему, чтобы «активировать» членство в группе для начала.
Теперь есть множество способов принудительно выйти из системы в заранее определенное время. Но я думаю, что это почти все, что вы собираетесь получить без изменения или дополнения подсистемы безопасности Windows (например, с помощью стороннего продукта).
вы можете заставить пользователя выйти из системы через 30 мин. отметка. использовать Win32Shutdown
с Флагом 4 для принудительного выхода.
Это единственный способ заставить пользователя не иметь разрешения по прошествии необходимого времени.
Кроме того, если бы вы могли показать пользователю таймер, сообщающий им, сколько времени у них осталось, было бы полезно для них, чтобы они могли сохранить то, что когда-либо делали, и ничего не испортить.