Windows 11中需通过任务计划程序绑定用户会话、批处理判断用户名、注册表禁用非目标用户关机权限、PowerShell枚举交互式会话及组策略限定权限范围,实现多用户差异化自动关机。

如果您希望在 Windows 11 中为不同用户账户分别设定自动关机规则,需注意系统级关机策略默认不按用户隔离生效,必须通过任务计划程序结合用户会话上下文实现差异化配置。以下是实现此目标的具体步骤:
一、为指定用户创建专属关机任务
Windows 任务计划程序支持绑定任务至特定用户登录会话,并可在满足条件时触发关机命令。该方法确保仅当目标用户处于活动状态时,关机逻辑才被评估执行。
1、使用目标用户(如“UserA”)登录系统。
2、按下Win + R,输入taskschd.msc并回车,打开任务计划程序。
3、在右侧面板点击“创建基本任务”,输入名称如“UserA_自动关机”,点击“下一步”。
4、选择触发器为“每天”或“在特定时间”,设置具体时间点(例如22:00),点击“下一步”。
5、在操作类型中选择“启动程序”,点击“下一步”。
6、在“程序或脚本”栏输入:shutdown.exe;在“添加参数”栏输入:/s /f /t 0;点击“下一步”。
7、勾选“当配置此任务时,请使用下列用户账户”,确认显示的账户名确为当前登录用户(如“DESKTOP-XXX\UserA”);取消勾选“不管用户是否登录都要运行”。
8、点击“完成”,该任务即绑定至UserA会话,仅在其登录且活跃时按计划执行关机。
二、利用批处理+用户环境变量判断执行
通过检测当前登录用户名匹配预设值,可使同一脚本在多用户环境下产生差异化行为。该方式适用于需动态响应用户变更的场景,无需为每个用户单独建任务。
1、以管理员身份新建文本文件,输入以下内容:
2、@echo off
3、if "%USERNAME%"=="UserA" shutdown /s /f /t 300
4、if "%USERNAME%"=="UserB" shutdown /s /f /t 600
5、exit
6、将文件保存为C:\Windows\System32\auto_shutdown.bat,注意保存类型为“所有文件”,编码为ANSI。
7、在任务计划程序中创建新任务,触发器设为每日指定时间,操作设为启动该批处理文件。
8、在任务属性的“常规”选项卡中,勾选“只在下列用户登录时运行”,并明确指定该任务仅对UserA和UserB生效。
9、确保“配置为”下拉菜单选择“Windows 11”,避免兼容性问题导致环境变量读取失败。
三、通过注册表限制关机权限并配合脚本控制
禁用非目标用户的关机权限可防止其绕过计划任务主动关机,从而保障规则执行的排他性。该步骤需在管理员账户下操作,影响全局策略但不干扰任务本身逻辑。
1、按下Win + R,输入regedit并回车,导航至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。
2、右键空白处,选择“新建” → “DWORD (32位)值”,命名为ShutdownWithoutLogon。
3、双击该值,将数值数据设为0,点击“确定”。
4、返回任务计划程序,为UserA创建的任务中,在“条件”选项卡内取消勾选“只有在计算机使用交流电源时才启动此任务”,避免笔记本用户因电源状态变化导致任务跳过。
5、在“设置”选项卡中,勾选“如果任务失败,重新运行此任务”,间隔设为10分钟,最多重试3次。
6、完成设置后,注销当前用户,在登录界面切换至UserB,验证其无法通过开始菜单关机按钮执行关机操作(仅UserA可执行计划内关机)。
四、使用PowerShell脚本按用户会话状态精准触发
PowerShell可实时枚举当前交互式会话,并结合用户名与会话ID判定是否执行关机。相比批处理,其对多会话共存场景(如远程桌面)兼容性更强,能避免误关其他用户会话。
1、以管理员身份打开记事本,粘贴以下代码:
2、$targetUser = "UserA"
3、$query = "SELECT SessionId, UserName FROM Win32_LoggedOnUser WHERE UserName LIKE '%$targetUser%'"
4、$result = Get-WmiObject -Query $query
5、if ($result -and $result.SessionId -gt 0) { shutdown /s /f /t 0 }
6、将文件保存为C:\Scripts\user_shutdown.ps1,注意扩展名必须为.ps1。
7、以管理员身份打开PowerShell,执行Set-ExecutionPolicy RemoteSigned -Scope LocalMachine确认脚本策略已允许本地脚本运行。
8、在任务计划程序中新建任务,操作设为启动PowerShell,参数栏输入:-ExecutionPolicy Bypass -File "C:\Scripts\user_shutdown.ps1"。
9、在任务“安全选项”中,勾选“只在下列用户登录时运行”,并精确填写UserA的完整账户路径(含计算机名)。
五、通过组策略限制关机策略作用范围
组策略可将关机权限或计划任务的生效范围限定于特定用户组,避免规则被继承至管理员或其他标准用户。该方法适用于企业或家庭多成员设备中需严格划分控制权的场景。
1、按Win + R,输入gpedit.msc并回车(仅限专业版/企业版)。
2、导航至“计算机配置” → “Windows 设置” → “安全设置” → “本地策略” → “用户权利指派”。
3、双击“关闭系统”,移除除UserA外的所有账户及用户组(如Administrators、Users)。
4、点击“添加用户或组”,输入UserA的账户名,点击“检查名称”确认后添加。
5、导航至“用户配置” → “管理模板” → “系统” → “任务计划程序”,启用“禁止用户配置任务计划程序”策略,但将其安全筛选器限制为仅应用于UserB组。
6、以管理员身份打开命令提示符,执行gpupdate /force强制刷新策略。
7、重启后,UserB将无法创建或修改任何任务计划,而UserA仍可自由管理自身关机任务。










