使用远程桌面维护系统可能会失败

在windows 2003中,每一个已经登录到计算机的用户都对应一个session,这些session都是相对独立的。正因为有这个相对独立性,同时登陆到计算机上的用户的操作才互不干扰,所以跨session访问某些系统资源将会比较麻烦。(这一点在windows vista中体现的非常明显,运行在session0下的所有服务已经不能像在2003中那样自由显示用户界面。)系统启动完毕后,windows 2003的第一个session将会是session0,所有的服务都运行在这个session0下,包括第一个在本地登陆的用户也会登陆到session0下。之后登陆的用户或者通过远程桌面登陆的用户会默认登录到sessionN(N=1,2,3……)下。由于不同的session是相对独立的,所以利用远程桌面做的一些和windows服务打交道的操作可能会失败,因为运行在远程桌面对应的session里的程序有可能打不开windows服务创建的一些资源(比如某些可命名的系统内核对象)。我所在的项目组就遇到过这种问题,某些需要和windows服务打交道的程序,在本地登录的时候运行良好,但是在远程桌面的环境下总是失败。经过调查,我们发现,这些可命名系统内核对象的命名空间默认是和session相关的,所以在此session上打不开彼session上的可命名系统内核对象。要彻底解决这个方法,就是要让程序中所有具有名称的内核对象全部使用全局命名空间,也就是在内核对象的名字前面加上"Global"。但这样要解决客户遇到的问题显然是不大可能的,因为一是要更改代码,并且由于session间的隔离而造成的问题不仅仅是这一个。进一步调查,我们发现,其实windows 2003本身就可以解决这个问题,就是想办法让远程桌面登陆到session0上去(windows vista不能这样做,因为服务的session和用户session已经完全隔离,windows vista的服务运行在session0上,而第一个登陆到系统的用户登陆到session1上,而不是windows 2003时的session0上)。
提供两个方法:
一、在命令行下输入:
    mstsc /v X.X.X.X /console
    X.X.X.X就是远程计算机的IP地址
二、启动远程桌面程序后,在选项里面,把RDP文件保存起来,再用记事本把这个文件打开,在文件的任意位置加入一行:
    connect to console:i:1
保存后,双击这个RDP文件。
可以说,这样就比较完美的解决了远程桌面登陆计算机时,某些和系统服务打交道的程序的运行问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值