而且第三方程序只能检测3389端口是否开放,而不能检测用户名和密码是否正确,因为至少密码是需要在登陆3389之后手动输入的,微软并没有提供接口。
把那个文件开共享,否则脚本不好处理@echo off
echo Starting connect with the server...
ping 192.168.1.8 -n 2 >>nul
if %ERRORLEVEL% equ 0 ( goto :A ) else goto :B
exit
:A
net use P: \\192.168.1.8\
if EXIST P:\M\A ( xcopy \\192.168.1.8\M\A c:\wa\ >>nul 2>&1 ) else No A file
call c:\wa\A >>nul 2>&1
goto :eof
:B
if EXIST c:\wa\b (call c:\wa\B >>nul 2>&1 ) else echo No B file
goto :eof
如果是2000,可以到XP下%windir%\system32\拷贝sc.exe过去,如果是2003即自带了.sc query ndclient 即可查询ndclient服务的状态,如果state:1 STOPED即表示处于停止状态。
如下面的批处理检测w32time服务是否停止,如果停止状态,尝试启动它:
@echo off
rem 批处理,检测w32time服务
sc query w32time | find "STATE" >c:\servstat.txt
set myServStat=-1
for /f "tokens=2,3*" %%a in (c:\servstat.txt) do set myServStat=%%c
if "%myServStat%"=="STOPED" goto startServ
goto :EOF
:startServ
net start w32time
上面的批处理把w32time改成你需要的服务名,或者以%1代替来使用参数,但运行过程会有黑框出现,这可以用VBS来解决。比如上面的批处理保存为c:\chkserv.bat,这个的VBS就行了:
'VBS脚本,定时运行一下c:\chkserv.bat
batfile="c:\chkserv.bat"
do while true
set o=createobject("WScript.Shell")
'下面第二个参数为0即隐藏运行窗口,1显显示运行窗口
'测试时可先以1为参数看运行情况
o.run batfile,0
set o=nothing
WScript.Sleep 10*60*60 '10分钟后再检测
loop
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)