用于在停机期间暂时阻止远程用户登录 Windows 服务器的脚本

用于在停机期间暂时阻止远程用户登录 Windows 服务器的脚本

我正在寻找以下问题的解决方案:

我们有一台 Windows 服务器,有许多人远程登录来处理一些事情;当我们需要升级服务器时,我们会通过电子邮件和启动画面发出警告,要求在停机期间不要登录 - 但人们仍然会登录,这往往会扰乱我们的升级过程

这是我的问题 -

是否可以编写一个脚本(可能是 Powershell) - 供我们的系统工程师在升级开始时运行,以更改所有其他用户远程(RDP)登录此服务器的权限/策略?她需要保留对服务器的完全控制权,而且她也是远程的(RDP)

升级完成后,她将再次运行脚本以恢复所有权限/策略,以便每个人都能通过 RDP 在服务器上工作

谢谢!

答案1

使用终端服务器耗尽模式(在进入排水模式之前,请注销所有在终端服务器上有会话的用户)。

维护结束后请将其关闭。

https://blogs.msdn.microsoft.com/rds/2007/06/15/introducing-terminal-services-server-drain-mode/

编辑(2016/4/27)

(包括登录限制)

此外,使用 Active Directory 中的登录限制来限制人们登录系统的时间。这样,您就可以为维护窗口设置登录限制。请参阅此内容以了解如何操作: http://ravingroo.com/267/active-directory-user-workstation-logon-restriction/

这将很容易地编写脚本。

答案2

最好的办法是修改登录时间而不是终止会话。修改登录时间可确保如果您遵循任何终止会话的 RDP Powershell 命令,在会话停止后不会允许某人登录(甚至尝试重新登录)。考虑以下情况:工资部门急于在晚上 7:05 输入时间条目。您从晚上 7:00 开始进行更新。人力资源部需要做他们在最后一秒偷懒做的事情。您通过 Powershell 终止他们的会话。我可以向您保证,甚至管理层也会对您非常不满。

现在考虑以下情况:您发送一封电子邮件,说明“RDP 会话将于下午 6:50 因维护而禁用。请完成所有工作,因为登录将被禁用”如果有人没有及时完成他们需要做的事情,您已经尽职尽责地给予他们足够的时间来完成他们的工作。之后,登录策略将禁用访问,因此您不必担心 1) 终止任何人的进程 2) 是否有其他人登录等。除了手动创建/编辑用于登录的 GPO 之外,我不会使用 Powershell、WMI 或其他任何东西。无论如何,这是一个变更管理问题,最佳变更应在使用最少的系统时间内进行。

相关内容