运维基础——Win7自动化截图时的设置

问题

windows远程桌面打开时,可以正常进行截屏操作。但如果远程退出了或最小化,会发现这时截屏的结果的黑屏,或者程序会报异常。 这使得一些爬虫或自动化测试运行时可能会存在问题。

分析

在Windows XP, Windows Server 2003或者更早期的Windows操作系统中,所有的服务和应用程序都是运行在与第一个登录到控制台的用户得Session中。这个Session叫做Session 0。在Session 0 中一起运行服务和用户应用程序,由于服务是以高权限运行的,这样就存在一些安全风险。

在Windows7中,服务在一个叫做Session 0 的特殊Session中承载。由于应用程序运行在用户登录到系统后所创建的Session 0 之后的Session中,所以应用程序和服务也就隔离开来:第一个登录的用户在Session 1中,第二个在Session 2中,以此类推。事实上运行在不同的Session中,如果没有特别将其放入全局命名空间(并且设置了相应的访问控制配置),是不能互相传递窗体消息,共享UI元素或者共享kernel对象。

解决方法: 使用tscon

tscon.exe

作用是粘贴用户会话到终端对话。
文档地址: https://technet.microsoft.com/zh-cn/library/cc770988(v=ws.10).aspx
语法:

tscon {<SessionID>|<SessionName>} [/ 目标: <SessionName>] [/ 密码: <pw>|/ 密码: *] [/v]

如何查看当前session ID
在服务端运行:

query user

这里写图片描述
其中的ID列,即时session ID。

完整操作步骤

  1. 在client上执行:
mstsc /admin /v:47.92.136.27
  1. 服务器打开后,在服务器创建脚本:
for /f "skip=1 tokens=3 usebackq" %%s in (
  `query user %username%`
) do (
  %windir%\System32\tscon.exe %%s /dest:console
)
  1. 在服务器以管理员权限脚本

参考文章:
http://blog.csdn.net/c0ast/article/details/18285645
https://serverfault.com/questions/428975/how-to-use-tscon-on-windows7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值