当不在域上时如何规避或改变屏幕超时组策略?

我曾被要求研究一下我们的远程笔记本电脑用户的解决scheme,他们正试图在客户现场使用Powerpoint和Excel进行演示。 我们正在运行Server 2008 / Win 7环境。 我们有一个组策略,在5分钟不活动的情况下locking每个人的PC,并需要密码才能重新login。我被问及是否可以在笔记本电脑上的用户在login时更改此设置,但不在本地域中。 他们希望能够调整它,以便在PP,Word或Excel中进行演示时屏幕不会locking。 据我所知,在全屏模式下屏幕保护程序,但我不知道如何实现与其他程序。 我试着在笔记本电脑上看演示模式,但是由于组策略,“禁用屏幕保护程序”的设置是灰色的。 有任何想法吗? 谢谢。

    我已经能够向我自己presentationsettings我最初build议的presentationsettings工具“尊重”组策略设置,防止用户更改其屏幕保护程序。 我没有意识到这种行为,但它确实是有道理的,因为用户只要使用这个工具来免除屏幕保护程序,当没有什么演示相关的事情发生。

    由于@ HopelessN00b提到您可能需要更改组策略,因为它适用于“远程”笔记本电脑。 您将需要调用环回策略处理,因为屏幕保护程序设置是每个用户而不是每台计算机。 环回策略处理允许您将用户设置应用到计算机,而不pipelogin用户如何。

    不幸的是,这个function让很多人感到困惑。 它有几个不同的“模式”(合并与replace),使它更混乱。 对于您的应用程序,您可以创build一个GPO到hyoptical“远程笔记本Comptuers”OU的链接,在其“计算机configuration”部分的“合并”模式下启用环回策略处理,并在其“用户configuration”部分设置屏幕保护程序属性到任何你想要的。 当接下来这些机器重新启动(因为从非环回切换到环回需要重启 – 后台策略刷新将不会启用它),你会看到机器开始从这个新的GPO拿起屏幕保护程序设置。

    写一些黑客客户端服务程序到达用户的registry,并切换组策略屏幕保护程序的限制值(因为用户不能自己做,因为registry权限)的短缺,我认为你卡在一个在这种情况下,您将不得不select较less的恶意,并禁用笔记本电脑用户的屏幕保护程序限制,使用某些第三方“鼠标跳跃者”或键盘模拟软件,或只是告诉用户与它。


    编辑:

    有许多第三方程序可以做你正在寻找的东西,但是只有内置的操作系统组件才有一定的“优雅”。

    这里有一个小小的VBScript程序,适合wscript.exe执行(这意味着你可以直接将这个w /组策略首选项部署到计算机的“启动”文件夹中),假设你的域的DNS名称无法从您的networking外部解决。 (如果能够从外部得到解决,坦白说,你得到了你应得的。)

    该脚本位于轮询循环中,使用nslookup来parsing在USERDNSDOMAIN环境variables中命名的域。 它每10秒轮询一次,但可以通过修改Const POLL_DELAY行来修改。 (再次执行自身的奇怪回转是必要的,因为如果只用wscript.exe执行,每个轮询间隔将会短暂地出现一个窗口 – 这不是一件好事。)

    当域名不parsing时,“F15”键被“按下”,造成足够的活动,Windows将不会激活屏保。

    此脚本已在Windows 8.1 x64上进行了testing,该域用户具有适用于他们的组策略对象,其中包括pipe理模板设置:

    • 启用屏幕保护程序 – 启用
    • 防止更改桌面背景 – 启用
    • 防止更改屏幕保护程序 – 已启用
    • 密码保护屏幕保护程序 – 已启用
    • 屏幕保护程序超时 – 已启用 – 30秒
    • 强制特定的屏幕保护程序 – 启用 – scrnsave.scr

    我的testing方法如下:

    • 将名为ss.vbs的程序放入计算机的“启动”文件夹中
    • 以应用上述组策略设置的用户身份login到计算机
    • 确认屏幕保护程序在闲置30秒后启动
    • 解锁机器
    • 断开计算机的networking接口卡
    • 确认屏幕保护程序在几分钟不活动后不会启动
    • 重新连接电脑的networking接口卡
    • 确认屏幕保护程序在闲置30秒后启动
    • 注销以validation脚本不“挂起”或以其他方式干扰注销过程

    在Windows 8.1 x64机器上,脚本正在做我想要的。

     Option Explicit ' Delay, in seconds, between attempts to resolve the domain name ' and pressing the "F15" key. Const POLL_DELAY = 10 Dim objShell Set objShell = WScript.CreateObject("WScript.Shell") Dim objExec Dim intFound If UCase(Right(WScript.Fullname, 11)) = "WSCRIPT.EXE" Then While 1 intFound = objShell.Run("cscript.exe """ & WScript.ScriptFullName & """", 0, True) If intFound = 255 Then objShell.SendKeys("{F15}") WScript.Sleep(POLL_DELAY * 1000) Wend Else Set objExec = objShell.Exec("nslookup " & objShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%")) While Not objExec.StdOut.AtEndOfStream If Left(objExec.StdOut.ReadLine, 5) = "Name:" Then WScript.Quit(0) Wend WScript.Quit(255) End If 

    处理这种情况的典型方式是为用户或机器定义为“远程”工作人员的一套单独的策略。 例如,我们有一个名为“ Remote Laptop Users的OU,正是由于这个原因,这些用户可以更好地控制显示器和电源设置。 (如果您不想或不能更改这些对象所在的OU,也可以使用WMI筛选或安全筛选来获得相同的结果。

    如果你可以让你的用户使用Evan Andersonbuild议的演示设置工具,那真是太好了,但是我的经验是,抱怨这类事情的用户也是那些不愿意解决问题的人,并期望IT为他们修复它,所以你可能最终不得不为他们修复,用不同的GPO。