无忧启动论坛

标题: win11远程桌面连接断开连接后自动锁屏 [打印本页]

作者: wwoldok    时间: 10 小时前
标题: win11远程桌面连接断开连接后自动锁屏
本帖最后由 wwoldok 于 2025-12-12 12:37 编辑

每次断开连接后,被控端都会自动锁屏。
找了很多办法都没用,求助大神。

@%windir%\System32\tscon.exe 0 /dest:console
或者
for /f “skip=1 tokens=3” %%s in (‘query user %USERNAME%’) do (%windir%\System32\tscon.exe %%s /dest:console)
都提示无法将 sessionID 1 连接到 sessionname console,错误代码 7045

win11控制端本地资源键盘设置里没有锁屏选项

组策略和注册表也都试过。

刚找到一个不算好办法的办法,就是退出连接时运行:@%windir%\System32\tscon.exe 1 /dest:console
这样断开连接就不会锁屏了……


感谢大家不吝赐教,感谢6楼高手的思路,这个我还会仔细研究的。







作者: win82    时间: 10 小时前
进来学习
作者: 我是小青蛙    时间: 10 小时前
隐藏电源"锁定",只能这样才行了
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableLockWorkstation"=dword:00000001
作者: dshit    时间: 10 小时前
进来学习下。感觉 锁屏 挺好 ,很安全。你远程的过程中,建立连接的那一霎那,客户机就是锁屏退出登录状态了,但是好像服务器版本可以好几个人同时远程
作者: 窄口牛    时间: 9 小时前
不是断开后哇,只要有连接进,就会断开;一般系统即便是不同用户,也会锁;服务器系统,不同用户名有可能不锁。
作者: qq8899399    时间: 9 小时前
本帖最后由 qq8899399 于 2025-12-12 13:00 编辑

解决办法
1 用批处理创建一个计划任务(你也可以手工计划任务控制台手工添加,但那样不是麻烦么)  远程会话断开后执行指定任务(比如run.bat)代码如下

  1. @ECHO Off
  2. REM https://msdn.microsoft.com/zh-cn/library/windows/desktop/bb736357(v=vs.85).aspx
  3. PUSHD %~dp0
  4. TITLE Hello World
  5. >nul reg add hkcu\software\classes\.Admin\shell\runas\command /f /ve /d "cmd /x /d /r set "f0=%%2" &call "%%2" %%3" & set "_= %*"
  6. >nul fltmc || if "%f0%" neq "%~f0" ( cd.>"%tmp%\runas.Admin" & start "%~n0" /high "%tmp%\runas.Admin" "%~f0" "%_:"=""%" &exit /b )


  7. ::创建计划任务
  8. ::任务名称,断开远程桌面后自动执行任务
  9. ::任务内容,执行当前目录下run.bat批处理
  10. ::创建计划任务
  11. powershell -ExecutionPolicy Bypass -NoProfile -Command ^
  12.     "$TaskPath = '\';" ^
  13.     "$TaskName = '断开远程桌面后自动执行任务';" ^
  14.     "$exePath = "%CD%\run.bat";" ^
  15.     "$argument = ' ';" ^
  16.     "$action = New-ScheduledTaskAction -Execute $exePath -Argument $argument;" ^
  17.     "$trigger = @();" ^
  18.     "$trigger += New-ScheduledTaskTrigger -AtLogOn -User "%USERNAME%";" ^
  19.     "$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -ExecutionTimeLimit 0;" ^
  20.     "Register-ScheduledTask -TaskPath $TaskPath -TaskName $TaskName -Action $action -Trigger $trigger -Settings $settings -RunLevel Highest -Force;" ^
  21.     "$service = New-Object -ComObject Schedule.Service;" ^
  22.     "$service.Connect();" ^
  23.     "$comFolder = $service.GetFolder($TaskPath);" ^
  24.     "$comTask = $comFolder.GetTask($TaskName);" ^
  25.     "$comTaskDef = $comTask.Definition;" ^
  26.     "$comTaskDef.Triggers.Clear();" ^
  27.     "$t = $comTaskDef.Triggers.Create(11);" ^
  28.     "$t.StateChange = 4;" ^
  29.     "$t.Enabled = $true;" ^
  30.     "$comTaskDef.Principal.UserId = 'SYSTEM';" ^
  31.     "$comTaskDef.Principal.RunLevel = 1;" ^
  32.     "$comFolder.RegisterTaskDefinition($TaskName, $comTaskDef, 6, 'SYSTEM', $null, 5);" ^
  33.     "Write-Host '成功创建计划任务';"
  34. echo.
  35. cls
  36. ::清理临时文件
  37. del /f /q "%cd%\Bin\Temp\*.*"
  38. ECHO.&ECHO 创建完成,任意键关闭!&pause>nul &exit
复制代码
2 RUN.BAT批处理代码如下

  1. @ECHO OFF
  2. PUSHD %~dp0
  3. TITLE Hello World
  4. >nul reg add hkcu\software\classes\.Admin\shell\runas\command /f /ve /d "cmd /x /d /r set "f0=%%2" &call "%%2" %%3" & set "_= %*"
  5. >nul fltmc || if "%f0%" neq "%~f0" ( cd.>"%tmp%\runas.Admin" & start "%~n0" /high "%tmp%\runas.Admin" "%~f0" "%_:"=""%" &exit /b )

  6. set "LOG_FILENAME=%TEMP%\restore_console_log.txt"
  7. echo %date% %time% 开始执行脚本 >> %LOG_FILENAME%

  8. rem 定义要尝试的会话 ID 列表
  9. set "session_ids=1 2 3 4 5 6 7 8 9"

  10. for %%i in (%session_ids%) do (
  11. echo 尝试连接会话 ID %%i 到控制台 >> %LOG_FILENAME%
  12. tscon %%i /dest:console /v >> %LOG_FILENAME% 2>&1
  13. if %errorlevel% equ 0 (
  14. echo 会话 ID %%i 连接成功 >> %LOG_FILENAME%
  15. ) else (
  16. echo 会话 ID %%i 连接失败,错误码:%errorlevel% >> %LOG_FILENAME%
  17. )
  18. )

  19. echo %date% %time% 脚本执行结束 >> %LOG_FILENAME%
复制代码

刚才已经 实机测试通过



作者: a66    时间: 9 小时前
以下是几种可能的解决方法:

1. 修改本地组策略(如果可用)虽然你提到已经尝试过组策略,但请确认是否设置了以下策略:
2. 修改注册表尝试修改以下注册表项,防止系统在远程会话结束后锁屏:
3. 关闭屏幕保护程序4. 使用任务计划程序保持活动状态可以创建一个任务计划程序,定期执行一个脚本或命令,防止系统进入锁屏状态。
5. 检查远程桌面设置6. 使用第三方工具可以使用一些第三方工具(如 LogMeIn、TeamViewer)来保持远程连接时系统不锁屏。
7. 使用命令行保持会话活跃你可以尝试运行以下命令来保持远程会话活跃:
shell

nircmd.exe setdisplay 0 0(需要下载 nircmd.exe 工具)
8. 修改电源计划设置如果仍然无法解决,可以尝试检查系统日志(事件查看器)中是否有与锁屏相关的错误记录,帮助定位问题根源。


作者: wwoldok    时间: 9 小时前
我是小青蛙 发表于 2025-12-12 11:40
隐藏电源"锁定",只能这样才行了
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policie ...

刚测试,还是不行。
作者: wwoldok    时间: 9 小时前
窄口牛 发表于 2025-12-12 12:06
不是断开后哇,只要有连接进,就会断开;一般系统即便是不同用户,也会锁;服务器系统,不同用户名有可能不 ...

确实是这样的,连接后就锁屏了,登陆后连接就断开了,这样的话,就没办法解决了。
作者: wwoldok    时间: 9 小时前
qq8899399 发表于 2025-12-12 12:06
之前研究过这个问题 我的解决办法就是
1 创建一个计划任务  远程会话断开后执行指定任务
2 执行你 那条 ...

这个思路不错,我要好好研究研究。感谢,万分感谢。
作者: wwoldok    时间: 9 小时前
a66 发表于 2025-12-12 12:10
以下是几种可能的解决方法:

1. 修改本地组策略(如果可用)虽然你提到已经尝试过组策略,但请确认是否 ...

这几个都试过,估计win10可能有用,感谢。
作者: tcl123    时间: 9 小时前
帮顶一下,让高手看看
作者: wwoldok    时间: 9 小时前
刚找到一个不算好办法的办法,就是退出连接时运行:@%windir%\System32\tscon.exe 1 /dest:console
这样断开连接就不会锁屏了……

感谢大家不吝赐教,感谢6楼高手的思路,这个我还会仔细研究的。



作者: 1e3e    时间: 9 小时前
把电源和屏保都关了优化
作者: qq8899399    时间: 9 小时前
wwoldok 发表于 2025-12-12 12:25
这个思路不错,我要好好研究研究。感谢,万分感谢。

6楼我更新了。。 实机测试通过。刚才
作者: wwoldok    时间: 8 小时前
qq8899399 发表于 2025-12-12 13:00
6楼我更新了。。 实机测试通过。刚才

完美解决,再次感谢。
我又试了另一种方法,顶楼已经编辑,不算好办法的办法。
作者: qq8899399    时间: 8 小时前
wwoldok 发表于 2025-12-12 13:29
完美解决,再次感谢。
我又试了另一种方法,顶楼已经编辑,不算好办法的办法。

嗯。 我知道啊。但你这个需要手工操作啊。

计划任务的话。是无感操作啊。
作者: quan2    时间: 8 小时前
谢谢分享
作者: wang1126    时间: 8 小时前
谢谢楼主分享
作者: guong    时间: 7 小时前
学习一下了
作者: 老袁2002    时间: 7 小时前
码住了
作者: cncecpcy    时间: 6 小时前
好。。。。。
作者: smile_z    时间: 6 小时前
学习一下
作者: martin313    时间: 3 小时前
qq8899399 发表于 2025-12-12 12:06
解决办法
1 用批处理创建一个计划任务(你也可以手工计划任务控制台手工添加,但那样不是麻烦么)  远程会 ...


但假如PE被远程桌面连接的话,就没能力运行powershell哎
作者: martin313    时间: 3 小时前
wwoldok 发表于 2025-12-12 12:36
刚找到一个不算好办法的办法,就是退出连接时运行:@%windir%\System32\tscon.exe 1 /dest:console
这样断 ...


被连接端运行:@%windir%\System32\tscon.exe 1 /dest:console 吗?
作者: tcl123    时间: 2 小时前
学习一下。。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3