批处理如何实现自动检测3389服务器?

批处理如何实现自动检测3389服务器?,第1张

批处理得调用第三方的程序来检测。。。

而且第三方程序只能检测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


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/416497.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-24
下一篇2023-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存