Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308114
  • 博文数量: 120
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 1290
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-19 01:46
文章分类

全部博文(120)

文章存档

2010年(84)

2009年(36)

我的朋友

分类:

2010-03-04 15:34:01

在LINUX下实现对网络中的WINDOWS进行操作(关机,重启,执行命令等)

Windows Implementation of RSHD: 
RSH Daemon for Windows NT:

1.wget

2.解压rshd-bin-1.7.zip,得到如下文件:
        |-- TcpTimedWaitDelay.reg
        |-- bin
        |   `-- rshd.exe
        `-- src
        2 directories, 2 files

3.将rshd.exe和TcpTimedWaitDelay.reg拷贝到windows下面,将rshd.exe放到c:\下,双击TcpTimedWaitDelay.reg将其中内容导入到注册表中,TcpTimedWaitDelay.reg就可以删掉了

4.打开命令提示符,输入如下命令:
cd c:\                  #切换到rshd.exe所在目录
rshd -install -r        #加上-r参数安装rshd,否则会在下一步操作中提示错误而不能启动服务
net start rshd          #启动rshd服务

5.因为此服务会用到TCP514,TCP544端口,所在还要在防火墙中打开这两个端口,下面以Windows自带防火墙为例
开始-设置-控制面板-Windows防火墙(以开启为例,没开启则不用设置)
选择"例外"选项卡
选择"添加端口"按扭
在弹出对话框中输入"名称"(随个人喜好),"端口号"并选中下面的TCP(UDP)
注意下面的"更改范围",在这个里面可以设置远程客户机的来源(个人建意选择"自定义列表")

至此,Windows下面设置完成了,下面就是LINUX控制端了

1.安装rsh-XXX.rpm  (rsh就是此RPM包提供的)

2.下面是相关操作和信息

列出D:\下所有文件:
[root@host66 ~]# rsh 192.168.5.143 dir d:
connect to address 192.168.5.143 port 544: Connection refused
Trying krb4 rsh...
connect to address 192.168.5.143 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)
 Volume in drive D has no label.
 Volume Serial Number is C4E6-CCBF
 Directory of D:\
03/04/2010  03:16 PM                16 1.txt
03/04/2010  03:16 PM                13 2.txt
03/04/2010  03:16 PM                14 3.txt
               3 File(s)             43 bytes
               0 Dir(s)  214,671,368,192 bytes free

[root@host66 ~]# /usr/bin/rsh 192.168.5.143 dir d:
 Volume in drive D has no label.
 Volume Serial Number is C4E6-CCBF
 Directory of D:\
03/04/2010  03:16 PM                16 1.txt
03/04/2010  03:16 PM                13 2.txt
03/04/2010  03:16 PM                14 3.txt
               3 File(s)             43 bytes
               0 Dir(s)  214,671,368,192 bytes free

上面一个提示port 544: Connection refused,而另一个没有,但都能成功执行命令,是有原因的,如下:
[root@host66 ~]# which rsh
/usr/kerberos/bin/rsh
[root@host66 ~]# whereis rsh
rsh: /usr/bin/rsh /usr/share/man/man1/rsh.1.gz
在系统中有两个RSH,而不加路径直接执行rsh命令时,会首先尝试使用kshell建立连接,所以就有连接拒绝的提示了

重启计算机:
[root@host66 ~]# rsh 192.168.5.69 shutdown -r -f -t 0
connect to address 192.168.5.69 port 544: Connection refused
Trying krb4 rsh...
connect to address 192.168.5.69 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)

-------------------------------------------------------------------------------
更正:
-------------------------------------------------------------------------------
刚发现上面关于TCP514,TCP544的说法有问题:
/usr/kerberos/bin/rsh 使用了TCP544端口
/usr/bin/rsh 使用了TCP514端口
/usr/kerberos/bin/rsh在整个操作中根本用不上,反而在这里捣乱
所以在WINDOWS中根本就不用开启TCP544端口了,
下面就来一步步处理这个问题:
[root@host66 ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:
从这里可以看出,不加路径执行RSH,它会先到/usr/kerberos/bin/中去找RSH,而由于那里面刚好有个RSH,所以就得想办法让系统不去读那个文件
方法1:
修改$PATH,不提倡
方法2:
将/usr/kerveros/bin/rsh改成别的名字
方法3:
给/usr/bin/rsh做个别名链接
或者在~/.bashrc中加上如下内容:
alias rsh=/usr/bin/rsh(本人倾向于使用这个)

好了,问题解决了~!~!


阅读(1990) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-03-08 20:01:07

这个写得不错,顶一个@@@