dos SC远程启动终端服务

C:\>net use \\xxx.xxx.xxx.xxx\ipc$ "password" /user:"name"

第一步,检查对方是否真的禁用了Terminal server

C:\>sc \\xxx.xxx.xxx.xxx qc termservice
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: termservice
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 4 DISABLED
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\WINNT\System32\termsrv.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Terminal Services
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem

仔细看 START_TYPE一项,显示对方该服务的启动模式为“DISABLED”也就是“禁用”。

第二步,更改对方终端服务的启动模式

C:\>sc \\xxx.xxx.xxx.xxx config termservice start= auto

[SC] ChangeServiceConfig SUCCESS

好了,现在我们已经把对方终端服务的启动模式修改成自动了。

第三步,再检查一便对方终端服务的启动模式(.abu.:呵呵,习惯问题)

C:\>sc \\TEST qc termservice
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: termservice
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\WINNT\System32\termsrv.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Terminal Services
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem

仔细看 START_TYPE一项,显示对方该服务的启动模式为“AUTO_START”也就是“自动”。

OK
第四步,启动对方的终端服务

C:\>sc \\xxx.xxx.xxx.xxx start termservice

SERVICE_NAME: termservice
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x1
WAIT_HINT : 0x7530

C:\>sc \\xxx.xxx.xxx.xxx query termservice

SERVICE_NAME: termservice
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0


到这里,对方的终端服务就被你启动了。命令行方式下哦。呵呵
---------------------------------------------------------------------------

这是一篇很好的解决终端服务termservice在"管理工具">>>"服务"中被禁用的好办法.
但是,这里有个前提,就是终端服务组件必须已经正确安装,
如何判断呢?我在另一篇文章里已经讲了.远程开启3389终端服务(菜鸟篇)

如果终端服务组件没有安装
还要以"用Sc看到status是stopped的,使用sc将其启动变为auto"
就认为服务已经启动,那就错了!
新手会经常出现这个问题,我也经常在论坛看到此类帖子.

如果没有安装服务组件,一样可以
sc config termservice start= auto
sc start termservice

再看:
sc query termservice
SERVICE_NAME: termservice
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING       //没有runing,而是正在启动状态(未决)
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0

在这时,服务是不可能真正启动的,因为终端服务组件并没有安装,
虽然你用SC看到了服务状态,但你是肯定连不上的.
这样而且会在重起时出现服务错误,不信,你可以在他重起后,远程连到计算机管理,
查看"事件查看器"===>"系统",你会发现 "terminal services 服务在启动时暂停"的描述

所以,在使用SC远程启动服务时,要首先判断终端服务组件已经安装,而且确实是在"服务"中
被禁用的,才可以成功运用此方法.

你可能感兴趣的:(C++,c,.net,dos,C#)