从pipe理员组远程删除用户,并立即生效

我试图写一个简单的PowerShell脚本,广告域用户到Windows机器上的本地pipe理员组,然后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分钟后的pipe理员…

目前,用户必须注销并重新login才能实现pipe理员权限,但是我不希望他们能够保留过去30分钟的权限。 我怎么能强迫这个事情发生? 即使从组中删除,他们仍然可以执行pipe理任务,直到他们注销。

提前致谢。

我不相信你想要做的是在技术上没有某种注销事件。 只要它们拥有一个最初在组成员的同时创build的活动会话/进程,该会话/进程的上下文将继续成为该组的成员,直到它终止。 这是他们需要注销/login以“激活”组成员开始的相同原因。

现在,有很多方法可以在预定的时间强制注销。 但是我认为,就像你将要修改或增加Windows安全子系统一样(例如用第三方产品)。

您可以强制用户在30分钟后注销。 标记。 与标志4,使用Win32Shutdown强制注销。

这是您强制用户在所需时间之后没有权限的唯一方法。

而且,如果你可以向用户展示一个计时器,告诉他们已经离开了多less时间对他们有用,这样他们就可以保存他们正在做的事情,而不会弄乱任何东西。