linux上執行windows命令

2020-08-11 16:30:47

場景:在pipeline指令碼整合部署中需要新增dns A記錄,dns是windows上搭建的,指令碼跑在linux上,跨平臺執行命令,方案如下:

首先實現在windows系統中命令列執行新增dns A記錄

使用 dnscmd.exe 這個工具來新增A記錄,已放到百度雲
在这里插入图片描述
命令很簡單:

dnscmd [DNS] /RecordAdd [域] [主機名] A [IP]
C:\\Users\Administrator\Desktop\dnscmd.exe /RecordAdd chtwmtest.com hostA A 10.100.111.2
Add A Record for hostA.chtwmtest.com at chtwmtest.com
Command completed successfully.

可以看到dns已經更新A記錄了
在这里插入图片描述

跨平臺執行cmd命令

實現linux上執行windows cmd命令需要安裝rsh服務。
windows端:
1.下載rshd-bin-1.7.zip (http://rshd.sourceforge.net/)可在我上傳的百度雲上下載。
在这里插入图片描述
2.將rshd.exe和TcpTimedWaitDelay.reg拷貝到windows下面 下麪,將rshd.exe放到c:\下,雙擊TcpTimedWaitDelay.reg將其中內容匯入到註冊表中,TcpTimedWaitDelay.reg就可以刪掉了

3.開啓命令提示字元,輸入如下命令:

cd c:\                  #切換到rshd.exe所在目錄
rshd -install -r        #加上-r參數安裝rshd,否則會在下一步操作中提示錯誤而不能啓動服務
net start rshd          #啓動rshd服務

4.因爲此服務會用到TCP514,TCP544埠,所在還要在防火牆中開啓這兩個埠,下面 下麪以Windows自帶防火牆爲例
開始-設定-控制面板-Windows防火牆(以開啓爲例,沒開啓則不用設定)
選擇"例外"索引標签
選擇"新增埠"按扭
在彈出對話方塊中輸入"名稱"(隨個人喜好),"埠號"並選中下面 下麪的TCP(UDP)

linux端:
安裝rsh服務

yum install -y rsh 

好了 已經完成部署,下面 下麪來測試下

在linux上執行:

[xx@xx ~]$ rsh 192.168.6.242 dir d:           
  D ľ GRMSXVOL_CN_DVD
  E5A0-CAD8

 D:\ 

2009/07/14  22:32               122 autorun.inf
2009/07/14  22:32    <DIR>          boot
2009/07/14  22:32           383,562 bootmgr
2009/07/14  22:32           667,712 bootmgr.efi
2009/07/14  22:32    <DIR>          efi
2009/07/14  22:32           106,760 setup.exe
2009/07/14  22:32    <DIR>          sources
2009/07/14  22:32    <DIR>          support
2009/07/14  22:32    <DIR>          upgrade
               4 ļ    1,171,100                5               0

遠端新增dns記錄

rsh 192.168.6.242  C:\\Users\\Administrator\\Desktop\\dnscmd.exe /RecordAdd chtwmtest.com hostA A 10.100.111.1
Add A Record for hostB.chtwmtest.com at chtwmtest.com
Command completed successfully.

在这里插入图片描述
可以看到新增成功了。