首页 > OS > Windows > 正文

Windows远程管理中常遇问题解决方案

2024-07-26 00:32:15
字体:
来源:转载
供稿:网友

  远程管理的使用,与活动目录AD的使用、组策略的使用一样重要。是衡量2000/03网络管理员、系统管理员水平的重要指标。在远程管理的实践中,网管员经常被各种小问题所困扰,严重阻碍了管理员使用远程管理来高效管理网络。

  本文将重点以Windows Server 2003为例,来讨论远程管理中经常出现的各种问题及其解决办法,其中也会有些地方涉及到XP、2000等。但所有讨论只针对微软的Windows技术,将不会涉及到非微软的远程管理工具软件。

  文中讨论的问题相对零散,但又彼此有一定的关联。网管朋友如果能够动手实践一下,并做到举一反三,相信对提高您的网管水平会大有帮助的(包括对协议、端口、服务的理解,硬件配置文件、注册表的作用、MMC控制台、终端服务与远程桌面、Windows的命令行工具、组策略……)。建议收藏此文,需要时查询。

  对03/XP进行远程管理,如果不考虑工具软件,当然首推“远程桌面”。远程桌面功能强大,可以远程为目标计算机安装软件,远程运行目标计算机上的应用程序,远程关机……,使你如同坐在目标计算机面前操作一样。

  03和XP的远程桌面相当于2000S终端服务的远程管理模式(另一种模式被称为:应用程序服务器模式)。

   2000S需要安装终端服务后,才能被远程管理。

   03/XP只需要在:我的电脑/右键/属性/“远程”标签下,选中远程桌面的“允许用户远程连接到这台计算机”即可。

   若需要在03上,经常对多台计算机(03/XP,安装了终端服务的2000S)进行“远程桌面”管理。可以:

  1、 开始/运行:MMC

  2、 “文件”菜单/添加删除管理单元/添加/远程桌面

  3、 控制台根节点/远程桌面/右键/添加新连接,输入:目标ip、名称、用户名、口令、域。

  4、 重复步骤3,将目标计算机逐个添加到控制台

  5、 退出时保存此控制台,以方便下次使用。

  问题1:我们在实际工作中常常遇到这样的情况:当我们想要对目标03/XP计算机进行远程管理时,才发现未在目标计算机上启用“远程桌面”,当然可以跑过去启用上,这样很麻烦。如果是托管的服务器,或者离得很远,那就更麻烦了。

  解决:利用远程注册表功能。具体操作如下:

  1、将本地机的管理员口令改为与目标计算机的管理员口令相同,使目标机的Windows系统把你当做它本地的管理员。

  【说明】上面的方法是:解决对远程目标计算机管理的操作权限问题,最有效、最通用的办法。其它的办法下面也会介绍,如二次登录(RunAs);或在要求身份验证时输入用户名、口令。但其它方法都不那么通用,或经常容易出现问题。

  2、重新登录进来后,开始/运行:regedit,进入到注册表编辑器,选择“文件”菜单下的“连接网络注册表”,输入目标计算机IP。

  3、找到目标机注册表下的:机器/系统/当前控制设置/控制/终端服务(即:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server),将fDenyTSConnections的值由1改为0即可,这相当于选中“允许用户远程连接到这台计算机”选项。

  问题2:远程注册表功能,还常用于解决这样的故障:计算机启动后,输入用户名、口令,点确定登录后,停止于某一自动运行的应用程序上,根本见不到桌面。比如:Ghost7.5的样机被拉镜像后,未运行ngctdos (或ngctw32) –hide命令就直接重启了。又比如:卸载那种登录时自动运行的应用程序时,中间出错或中断。

  这些故障都会在注册表的Run项下留下垃圾,严重时就会导致上述错误:根本看不到桌面,进安全模式也是一样,这样也就无法在本地修改注册表了。

  解决:当然知道了问题的原因,解决办法就很简单了。

  1、远程注册表进来后,将光标置于“机器”子树上,点“编辑”菜单下的查找,查找项:Run(取消值和数据前的对勾,选中“全字匹配”,这样搜索得快些)。一般问题就出在Run项(即:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run)下的某个值和数据上,手动删除即可。目前还未见到问题出在RunOnce、RunOnceEx项下的情况。

  2、如果未找到出错的值,也可将光标置于“当前用户”子树上,重复上面的步骤。

  【说明】直接搜索出错信息中的相关内容,也是个好办法,只是有时未必能搜索得到。

  问题3:我们想远程管理计算机,但目标是:未启用“远程桌面的”XP/03、2000S未安装终端服务或2000P。这时我们也可以利用“计算机管理”的远程功能(功能要弱于远程桌面,因为Windows管理工具的远程管理功能都要依赖于所提供的插件)。具体操作如下:

  0、操作权限解决同上(常见故障:win32拒绝访问,这是权限问题,或未通过验证)

  1、我的电脑/右键/管理,进到“计算机管理”

  2、计算机管理(本地)/右键/连接到另一台计算机,输入目标计算机IP。

  3、如同管理本地计算机一样:远程创建用户、修改口令,管理设备、磁盘,管理服务等等。

  下面仅举两例来说明问题:

  实用案例1:远程关闭/重启计算机,操作如下(接上面的步骤):

  1、 计算机管理(目标机IP)/右键/属性/

  2、 “高级”标签/设置,“启动和故障恢复”框/关机

  3、 选择,操作:关机或重新启动;强制应用程序关闭:总是(可能丢失数据)

  4、 点确定后,远程目标计算机将关机或重启。

  此种方法远程关机的优点在于:不需要在目标机上安装终端服务,系统为2000/XP/03均可以,只要有权限就可以做到。而且是图形界面操作简单,不需要记命令。

  实用案例2:目标计算机由于“冲击波”病毒等原因,导致RPC服务被禁用了,重启机后RPC服务处于停止状态。症状:无法打开各种对话框;网上邻居/右键/属性,看不到“本地连接”;粘贴不可用,无法复制文件;任务栏找不到最小化的应用程序…………。结果导致:由于在本地无法打开RPC服务的属性对话框,也就没办法来重设RPC服务的启动类型了。

  1、 若目标为2000计算机,可以这样来解决:利用远程“计算机管理”,设置目标机上的RPC服务启动类型:自动,然后重启目标计算机。

  【说明】顺便对想做这个实验的读者,说明一下如何停止RPC服务:

  (1) 在2000上可以将RPC、Plug and Play等服务的启动类型由“自动”改为“禁止”(但不能手动停止,需要设“禁止”后重启机)。

  (2) 但在03/XP上无法做到上述这点,启动类型下拉菜单为灰色不可选。要禁止,可以用2000计算机,通过远程“计算机管理”连接过来后,进行修改。也就是说,下拉菜单是否可选,取决于本地操作系统,而非目标操作系统。也可以利用sc config 命令将RPC服务启动类型设为“禁止”,后面详细介绍。

  (3) 实验中要慎重,如果将RPC服务禁用停止后,又没有办法再把它启动起来,你将不得不重做系统。

  (4) 我的两名助手在按着我的初稿,做这个实验时,不约而同地犯了同样的错误。因此我觉得:实在有必要把下面的问题及其解决办法说明一下。

  问题:在试着禁用RPC服务时,他们都在RPC服务/右键/属性/“登录”标签下,在硬件配置文件PRofile 1中将RPC服务禁用了。其结果导致后来即使把RPC服务的启动类型设为自动,但由于硬件配置文件的禁止,也无法启动RPC服务了。出错提示为:“在本地计算机上无法启动RPC服务。错误1058:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。”

  解决:由于此时无法找开对话框,就只能利用注册表了。

  A、 开始/运行:regedit,找到下面的项:

  HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Hardware Profiles/Current/System/CurrentControlSet/Enum/ROOT/LEGACY_RPCSS󠧀

  B、 将此项下的CSConfigFlags的数据由1改为0(相当于启用)。

  说明:也可以干脆删除ROOT下的LEGACY_RPCSS项。

  C、重启计算机。

  2、若目标为03/XP计算机,当RPC服务停止时,使用远程“计算机管理”,无法连接到目标计算机。可以在故障机上本地运行:sc config rpcss start= auto,或远程运行:sc //目标IP config rpcss start= auto来解决(后面详细介绍)。设成自动后,在“计算机管理”的图形界面下,虽然可以直接点工具栏上的“启动服务”按钮,手动将RPC服务启动起来(或本地开始/运行:net start rpcss),但最好还是重启一次机。

  【说明】感兴趣的读者,可以自己试一下:虽然此时RPC服务已经启动,但你用远程“计算机管理”仍然连不来,任务栏上也看不到运行的应用程序,需要重启03/XP以后才行。因为有众多的服务依赖于RPC服务,这些服务此时并没有启动起来。

  【附加说明】解决RPC服务禁用、停止还可以利用如下的办法。

  (1)编辑本地注册表(若目标为2000,远程编辑注册表也可以):HLM/SYSTEM/CurrentControlSet/Services/RpcSs下,设start=2 (即自动)

  (2)利用恢复控制台的Enable命令:Enable RpcSs service_auto_start

  (3)如果计算机是域成员,可利用组策略来覆盖其本地设置。具体:域或OU的组策略/计算机配置/Windows设置/安全设置/系统服务(注:本地策略无此项)/RPC,选择服务启动模式

  (4)附表:服务启动类型在注册表、恢复控制台的Enable命令、Sc config命令中的值。

  启动类型 注册表 Enable Sc config

  启动 0 Boot 空格Boot

  系统 1 System 空格System

  自动 2 Auto 空格Auto

  手动 3 Demand 空格Demand

  禁用 4 使用Disabled命令 空格Disabled

  问题4:利用shutdown命令,关闭远程计算机。我们来逐步深入讨论一下:

  1、 shutdown命令在2000下没有,使用时需要安装2000资源工具包(resource kit)。

  2、 在03上直接使用,最长关机延迟为600秒(10分钟),若要做成定时关机,一般需要结合“任务计划”。(注意:XP上的shutdown命令,没有最长关机延迟:600秒的限制。)

  具体操作如下:

  (1)创建一个批处理文件,如shut.bat,其内容为:shutdown /s (不指定时间参数,默认关机延迟提示为30秒,shutdown –a可取消关机操作)。

  (2)开始/程序/附件/系统工具/任务计划

  (3)添加任务计划/浏览/找到shut.bat,指定执行时间(可利用“显示多项计划”指定不规则的多个时间),输入管理员密码,以保证到时有权限执行这个任务计划中的任务。

  3、若要远程关闭目标计算机,命令为:shutdown /m //目标IP /s /t xxx秒

  【说明】操作权限问题,可利用前面讲过的同名、同口令来解决。若不想修改口令,也可以利用RunAs命令,下面就要介绍。

  问题5:利用RunAs命令解决远程管理中的权限问题

  1、 命令格式:RunAs /netonly /user:域名或计算机名/用户名 命令

  【说明】

  (1)/netonly参数表示其后指明的用户身份,仅在网络访问时才使用。

  (2)最后跟的命令中若带参数,有空格,需要用引号括起来。

  如:RunAs /netonly /user:Server1/administrator “shutdown /m /⏺.63.243.1 /s /t 600”

  又如:想利用远程“计算机管理”,又不想修改本地管理员口令,可以:

  RunAs /netonly /user:Server1/administrator mmc.exe

  这个没有空格,不用括起来。命令运行后将弹出MMC控制台,手动添加“计算机管理(目标IP)”。这个阶段相当于是以本地管理员身份来做这些事情,只有真正连过去进行远程“计算机管理”操作时,才是以目标机的管理员身份,这就是/netonly参数的用途。

  (3)注意:利用MMC创建目标机的“计算机管理”的.msc工具,再在图形界面下Shift+右键/运行方式,进行二次登录的方式是行不通的。出错提示为:无法打开“目标IP”上的服务控制管理器数据,错误5:拒绝访问。

  2、 回车后,将提示输入目标计算机/用户口令,键入口令后,命令将在本地或目标计算机上执行。

  问题6:利用Telnet进行远程管理,而默认Telnet服务不启动。

  【说明】

  1、利用Telnet连接到目标计算机,进行远程管理,其作用相当于在目标计算机的命令提示符下操作>咛迥芙心男┰冻坦芾聿僮鳎览涤谀勘昊舷钟械拿钚泄ぞ摺n2、既然有远程桌面、MMC控制台等这些图形界面的远程管理工具,那么为什么还要使用Telnet这样古老的工具呢?图形界面的远程管理工具,依赖的服务、其它相关资源较多,经常会不可用。而Telnet小巧精悍,往住有其独到之处。

  比如:2000计算机被安全策略中“拒绝登录”权利所阻止,此时管理员也无法登录到图形界面,这时我们就可以通过Telnet连过去,利用secedit命令进行安全设置的导入、导出、刷新来解决这个问题。(相关内容可参考我的文章《2000中“拒绝登录”的解决办法》,或网上的相关文章)

  问题:Telnet服务的启动类型:03/XP默认为禁用,2000默认为手动。总之,默认情况下它是不会启动的。此时连过去的出错信息为:正在连接到xxx,不能打开到主机的连接,在端口23:连接失败。

  解决:

  <方法1>利用问题3中的办法,使用远程“计算机管理”,设置启动类型:自动,并直接将Telnet服务启动起来。

  <方法2>利用服务控制命令SC配置服务启动类型,并启动服务。

  (1)操作权限问题,可利用同名同口令或RunAs解决

  (2)配置服务启动类型:sc //目标IP config tlntsvr start= auto

  【说明】

  A、 tlntsvr为Telnet的服务名。可在计算机管理/服务/telnet/属性下找到这样的内容:可执行文件的路径:C:/WINDOWS/system32/tlntsvr.exe,则其服务名为tlntsvr。对于其它服务,有一点要注意:如RPC服务的可执行文件的路径:C:/WINDOWS/system32/svchost -k rpcss,但它的服务名是rpcss,而非svchost。

  B、 在start=和启动类型之间必须一个空格

  C、 SC命令几乎可以用于所有服务的配置。

  (3)启动服务:sc //目标IP start tlntsvr

  【说明】不能用sc start/stop来启动/停止RPC服务,出错提示为:请求的控件对此服务无效。

  <方法3>利用SC设置服务启动类型,然后使用tlntadmn启动Telnet服务

  命令:tlntadmn //目标IP start

  【说明】

  A、 tlntadmn可以启动/停止Telnet服务,但不能设置Telnet服务启动类型。

  B、 03/XP上tlntadmn不能管理2000上的Telnet服务,反之亦然。即tlntadmn的版本是不同的,操作上也有所不同,2000的tlntadmn不支持远程功能,采用级连菜单方式。

  C、 03/XP上的tlntadmn命令本身带有-u –p参数,可以指定对目标机操作的用户身份和口令,注意不支持空密码。2000上的tlntadmn命令没有-u –p参数

  D、 tlntadmn命令还可以修改Telnet服务的默认端口:23为其它值(sc config命令无此功能)。03/XP执行此操作的命令格式为:tlntadmn //目标IP config port=xxxx。xxxx为小于1024的正数。

  问题7:远程修改目标机上的Telnet服务默认端口,比如托管的服务器,原来基于安全考虑,在服务器上把telnet的默认端口TCP:23给封掉了,或被连接中的某个防火墙的设置所阻止。

  1、若目标为03/XP,可以按照上面方法,用tlntadmn修改telnet服务的默认端口。

  2、若目标为2000,由于2000的tlntadmn不支持远程功能,03/XP上tlntadmn又不能管理2000上的Telnet服务,这时就不得不利用远程注册表功能了。具体操作如下:

  (1)利用前面讲过的“远程注册表”功能连过去

  (2)搜索:(2000注册表中的称谓是:名称、类型、数据;03注册表中的称谓是:项、值、数据)类型/值:telnetport,(具体位置:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/TelnetServerΙ.0下)

  (3)将telnetport的默认值由23(十进制数)改为0-1024范围内的任意值即可。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表