windows server 2012/2016 设置多用户远程桌面设置方法

最近到微软总部访问,听到他们说Server Core将是Windows Server
8首选的部署类型。这意味着服务器管理将更多地采用命令行,因此需要熟悉一些有用的命令。

1.由于项目dll文件变动比较频繁,而保存登陆的状态又保存在Session中,所以导致用户经常无故掉线。(dll变动的时候导致Session丢失)

以下可以配置多用户,但是120天后还是会提示缺少远程桌面授权服务器,根本解决办法,请参考:

一种方法就是了解在Windows Server
2008当中能够通过命令行执行的一些常见的任务。这样一来,在Windows Server
8发行时,命令行管理的理念就不会令人很沮丧。头脑中树立这一理念后,让我们一起来了解下管理远程桌面服务的五大命令。

2.有一种方法可以长期保存session,那就是session的SqlServer模式。还是先介绍一下session的四种模式吧:

//www.jb51.net/article/139543.htm

  Query Session

  ASP.NET会话状态模块在Web.config文件中<System.web>标记下的<Sessionstate>标记的mode属性来决定该属性的四种可能的值:
Off、 Inproc StateServer 和SQLserver。

服务器设置多用户同时远程桌面,可以提高访问效率,避免人多抢登服务器。

“Query
Session”命令用来检索正在远程桌面服务器上运行的会话信息。正如下图所示,输入“Query
Session”命令显示了所有会话信息的快速概要无论该会话是否处于活动状态,都会显示)。

 

  1. 首先需要先安装远程桌面服务

图片 1 
图1. query session命令显示当前会话的信息

①. Inproc是缺省的设置

图片 2

有时,你需要重置某个会话稍后我就会讨论这个话题)。在三种情况下,知道会话的ID是有帮助的。如果有大量的用户连接到了服务器,通过读取会话列表查找特定的会话可能不太现实。幸运的是,你可以使用命令检索所需要的信息。例如,假定你想查看属于用户User1的会话,那么你可以使用如下命令找到该信息:Query
Session User1

 
  它允许“无Cookie”的会话,以及在服务器之外存储会话数据。ASP.NET会话状态模块在Web.config文件中像下面这样配置:<sessionState
mode=”InProc” cookieless=”false” timeout=”20″
/>在这个例子中,mode属性设为InProc(默认值),表明会话状态要由ASP.NET存储到内存中,而且不用Cookie来传递会话ID。
   
相反,会话ID要直接插入一个网页URL的查询字符串中。例如,采用InProc模式并建立一个会话之后,调用一个假想的ASP.NET网页时,需要采用下面这样的URL:
       
ASP.NET引擎从查询字符中提取会话ID,并将用户请求与特定会话联系起来。采取这种方式,不管Cookie还是隐藏表单字段都用不着了。所以,即使网页中没有使用表单,也能加入会话。但是这种方法,应用程序的状态将依赖于
ASP.NET进程, 当IIS进程崩溃或者正常重启时,保存在进程中的状态将丢失。

配置组策略,运行框输入gpedit.msc,打开计算机配置–>管理模板—>windows组件—>然后在右边的菜单中选择远程桌面服务;双击打开。双击远程桌面会话主机->连接,点击限制连接的数量,设置如下。
图片 3

同样,也可以查询属于某台服务器的会话。例如,你可以使用如下命令查看属于服务器TS1的会话:Query
Session /Server:TS1

②.mode属性设为Off

这样设置就完成了。亲测成功。

Query
Session命令还能够使用一些其他的命令行开关。通过输入如下命令可以查看所有命令的语法:Query
Session /?

  和从前的ASP一样,ASP.NET的会话状态管理是要产生开销的。所以,假如某个网页不需要访问Session对象,开发者应将那个页的Page预编译指令的EnableSessionState属性设为False。要为整个网站禁用会话状态,可在Web.config文件中将sessionState元素的mode属性设为Off。 
 为了克服inproc 模式的缺点, ASP.NET
提供了两种进程外保存会话状态的方法(③和④)。

这样设置远程多用户只有120天期限,要破解120天限制,还需要配置远程桌面授权。
能成功的前提:系统是激活的。

Reset Session

③.StateServer会话管理

2、 web申请激活码
1)
管理工具—远程桌面服务—远程桌面授权管理器,选择未激活的服务器,选择”属性”,请记下对话框中出现的产品ID,我们要用这20位的ID号到网上注册例如:00184-50100-21572-AT706
注意:如果终端服务器授权中没有服务器,请选择连接,然后输入本机服务器IP地址。
图片 4
必需信息,如图下填写:
图片 5

刚才我提到有时需要重置一个会话,在这种情况下,知道会话的ID是有帮助的。如果回头看一下上一幅图片,将注意到系统给已经登录的管理员分配的会话ID是1.如果你想重置该会话,那么将会使用到以下命令:Reset
Session 1。

 
将mode属性设为StateServer,也就是将会话数据存储到单独的内存缓冲区中,再由单独一台机器上运行的Windows服务来控制这个缓冲区。状态服务全称是“ASP.NET
State Service
”(aspnet_state.exe),它由Web.config文件中的stateConnectionString属性来配置。该属性指定了服务所在的服务器,以及要监视的端口:<sessionState
mode=”StateServer”   stateConnectionString=”tcpip=myserver:42424″   
cookieless=”false” timeout=”20″
/> 在这个例子中,状态服务在一台名为myserver的机器的42424端口(默认端口)运行。要在服务器上改变端口,可编辑HKLM\SYSTEM\CurrentControlSet\Services\aspnet_state注册表项中的Port值。显然,使用状态服务的优点在于进程隔离,并可在Web
farm中共享。
使用这种模式,会话状态的存储将不依赖于iis进程的失败或者重启,然而,一旦状态服务中止,所有会话数据都会丢失。换言之,状态服务不像SQL
Server那样能持久存储数据;它只是将数据存储在内存中。

2) 打开Internet
Explorer浏览器,在地址栏中输入这个地址,此时是英文界面。选择GO

也可以通过会话名对会话进行重置。例如,在图1中,管理员会话名为RDP-TCP#0。你可以使用会话名替代会话ID。为重置该会话,可以使用命令:Reset
Session RDP-TCP#0

④.用SQL Server进行会话管理 (重点讲解)

3) 确保已选中”启用许可证服务器”项,再单击”下一步”按钮。

图片 6 
图2. Query User命令显示登录到服务器上的用户信息

  
ASP.NET还允许将会话数据存储到一个数据库服务器中,方法是将mode属性变成SqlServer。 在这种情况下,ASP.NET尝试将会话数据存储到由sqlConnectionString属性(其中包含数据源以及登录服务器所需的安全凭证)指定的SQL
Server中。

4)
在随后要求提供的信息界面中,”产品ID”处输入刚才抄下的那个20位数字,再填写刚才步骤1中必需信息,然后再选”下一步”继续。
图片 7
图片 8
5)
可以得到”已成功处理您的许可证服务器启动申请。你的许可证ID是:…”,又是一个需要抄下的分为七段的35位数,里面包含有数字也有大写的英文字母;并且还会问你”需要此时获取客户机许可证吗?”选择”是”
许可服务器ID:CCB9Q-Y44D6-BR2HD-9H4VM-YPXMM-KF2KJ-RJ473
图片 9
6)
如果没有许可证,那么许可证程序选择“企业协议”,确定您的信息后,便可继续”下一步”;

Query User

3.配置用SQL Server进行会话管理 

7) “产品类型”一项应为”Windows
2003终端服务客户端访问许可证”;”数量”为你欲连接的最大用户数(比如为”500”);在”注册号码”中输入你从微软获得的那个七位数(如果自己没有许可证,那么就输入6565792,4954438,6879321或者5296992),再”下一步”;
注意:建议选择Windwos Server 2012远程桌面服务器每用户访问许可。
图片 10
8) 下一步
9)
记录前面的35位数的”许可证服务器ID”,一个是现在才取得的另一个七段共35位数的”许可证密钥包ID”。
图片 11
许可密钥ID:RBG28-9884M-GXC4V-WKXGJ-8QPXG-FG8YP-9RV8Q
10) 选择结束