0

我正在使用 powershell 脚本来保持 Windows pc 违反其组策略登录,但是 20 分钟后显示器在显示“无信号”消息后关闭。

我使用的脚本是一个切换滚动锁定以模拟输入并保持用户登录的脚本。通常计算机锁定并让您按 ctrl+alt+del,然后输入密码在 15 分钟后解锁。该脚本可以让我保持登录状态并避免锁定,但不能保持显示器开启,这是我的目标。最终目标是我可以保持登录状态并打开显示器约 12 小时。

我没有管理员权限,必须使用 -ep bypass 才能运行我的脚本。

4

2 回答 2

1

您只需要使用 ES_DISPLAY_REQUIRED |调用SetThreadExecutionState ES_SYSTEM_REQUIRED 参数。(即 0x02 | 0x01 = 0x03)

下面的代码是如何做到这一点的示例。

Add-Type -TypeDefinition @"
 using System;
 using System.Diagnostics;
 using System.Runtime.InteropServices;

 public static class Kernel32
 {
     [DllImport("Kernel32.dll", CharSet=CharSet.Auto)]
      public static extern uint SetThreadExecutionState(uint dwExecutionState);
 }
"@

[Kernel32]::SetThreadExecutionState(0x03)

备注:https ://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate#remarks

多媒体应用程序,例如视频播放器和演示应用程序,在没有用户输入的情况下长时间显示视频时必须使用 ES_DISPLAY_REQUIRED 。

我对powershell知之甚少,但对我来说似乎是正确的。但是你需要这个 API 调用,我很确定。

于 2022-02-27T09:10:20.433 回答
1

如果您可以访问 USB,则可以选择这样的东西...

购买鼠标摇晃器

于 2022-02-25T17:45:02.717 回答