RUNRMTCMD命令使用
解答 能够向client access发送命令的系统包括AS/400,VM,AIX以及其他版本的UNIX。
发送的命令应当预先在PC的DOS窗口运行,如果有输出,在把输出内容传送到OS/400并产生相应的spool file(QSYSPRT,使用的print file为QSYSPRT);如果命令本身并不产生输出则也会产生一个spool file,内容是无输出。
从OS/400使用RUNRMTCMD命令性client access发送远程命令。PC端可以同时处理多个命令请求,按接收的顺序运行这些命令。
入局远程命令的目的是运行非交互式命令和程序。交互式命令或WINDOWS程序可以运行,并且看起来好象已经从请求系统运行成功,但可能仍在PC运行并等待与用户进行人机对话。
入局远程命令可以使用TCP/IP和SNA,不适用于IPX。
CWBRXD.EXE 用于使用TCP/IP通信时启动入局远程命令精灵程序。
CWBRXDSD.EXE 用于使用TCP/IP通信时停止入局远程命令精灵程序。
AREXECDW.EXE 用于象PCOM那样的WINCPIC兼容栈
AREXECDN.EXE 用于NetSoft栈
语法:
RUNRMTCMD CMD(’pc 命令‘)
----RMTLOCNAME('xxx.xxx.xxx.xxx' *IP)
----RMTUSER(remote user-id)
----RMTPWD(xxxxxx)
----CCSID(pc ccsid)
其中RMTUSER必须时PC上设定的有效用户[注1]。
如果用户和密码有小写,则必须用单引号',否则全部转换成大写处理(NT是大小写敏感的)。
CCSID必须和PC端操作系统的语言相匹配,例如中文Win98、中文NT为1381,而英文Win98、英文NT为437。(用CHCP这个DOS命令看到的PC语言代码不十分可靠)
APPC格式:
RUNRMTCMD CMD(’pc 命令')
----RMTLOCNAME(appn.系统名 *SNA)
----RMTUSER(远程用户 ID)
----RMTPWD(‘口令’)
----CCSID(pc ccsid)
例:
RUNRMTCMD CMD(‘dir c:\/w') RMTLOCNAME('4.17.19.95' *IP) CCSID(437)
要求PC使用英文Win98,并且不需要用户和口令。
RUNRMTCMD CMD('copy c:\config.sys c:\config.bak') RMTLOCNAME('7.19.19.93' *IP)
RMTUSER(MOKCK) RMTPWD('ibmas400') CCSID(437)
spool file结果为’1 file copied'.
ADDJOBSCDE JOB(MYJOBD) CMD(RUNRMTCMD CMD("c:\mydir\daily.bat')
RMTLOCNAME(APPN.PC01 *SNA)) FRQ(*WEEKLY) SCDDAY(*ALL)
SCDTIME(180000)
RUNRMTCMD CMD('c:\progra~1\IBM\RTOPCB c:\MYDATA\MYTFR.TTO')
RMTLOCNAME(YOURNET.PC01 *SNA) RMTUSER(MOKCK)
RUNRMTCMD CMD('c:\windows\calc.exe') RMTLOCNAME(MYPC *IP) CCSID(437)
PC端的计算器会被激活,同时400端出现pending(等待),直到把PC端计算器关闭,400端作业才被释放。
[注1]
CHGPRTF FILE(QSYSPRT) IGCDTA(*YES)
在中文DBCS环境下运行RUNRMTCMD命令时,必须使得spool file的打印摸板QSYSPRT支持DBCS。
[注2]
在NT上运行RUNRMTCMD时必须指定要运行程序的全称路径,默认路径是C:\
用户设定:
在Win98端
默认情况下PC端没有任何关于‘入局远程命令的’设置。单击‘添加’
系统和用户支持*通配符。
系统名应当和DSPNETA中指定的系统名相同,用户则可以任意设置。
第2步:
如果不使用WIN95口令高速缓冲,则必须指定client access入局远程命令。
在NT中把登录client access入局远程命令的管理全部委托给NT的安全管理程序来管理,但要求有效的用户名不能超过10个字符。
启动入局远程命令:
Win98平台运行 c:\windows\cwbrxd.exe
NT把入局远程命令放到[control]==>[service]中,使用start即可激活。
停止入局远程命令:
Win98平台运行 c:\windows\cwbrxdsd.exe
NT把入局远程命令放到[control]==>[service]中,使用stop即可停止。
失败原因检查:
1、执行RUNRMTCMD调用NT端应用,返回‘无效的密码或用户’
检查该用户在NT上是否存在。
RUMRMTCMD中该用户的password是否大小写正确,是否使用了单引号。
在Win98上最好使用system = *,user=*的基本配置
2、RUNRMTCMD返回‘客户端没有启动’
检查RUNRMTCMD在PC端的server精灵程序是否已经启动。
3、SNA,anynet也可以使用RUNRMTCMD
4、如果NT支持GUEST 用户而且没有口令,则RUNRMTCMD时可以设置PWD(*NONE)。
5、在中国5250键盘的仿真中,\被解析成Y(人民币符号),无法通过客户化键盘的方式进行
修正,但在VT100的模式下可以不受影响。