查看windows服务器信息脚本,Windows批处理脚本,以查看是否打开了一系列服务器/端口?...

rojo..

7

干得好.向前付款.:)要直接回答您的问题,只需使用for循环来遍历您的服务器并对portqry每个服务器执行操作. 编辑:您找到的PowerShell代码段对于摆脱PortQry依赖项非常有用.

@echo off

setlocal

set "servers=dev1 dev2 dev3 test1 test2 test2:8080 prod prod:443"

for %%I in (%servers%) do (

for /f "tokens=1,2 delims=:" %%a in ("%%I") do (

set "port=%%~b"

if not defined port set "port=80"

setlocal enabledelayedexpansion

call :handshake "%%~a" "!port!" && (

echo %%a port !port!: OK

) || (

echo %%a port !port!: Error

)

endlocal

)

)

goto :EOF

:handshake

powershell "$t=new-object Net.Sockets.TcpClient;$c=$t.BeginConnect('%~1',%~2,{},{});if($c.AsyncWaitHandle.WaitOne(1000)){$t.EndConnect($c);exit 0};exit 1"

exit /b %ERRORLEVEL%

这是使用PortQry 2.0的原始解决方案:

@echo off

setlocal

set "servers=dev1 dev2 dev3 test1 test2 test2:8080 prod prod:443"

for %%I in (%servers%) do (

for /f "tokens=1,2 delims=:" %%a in ("%%I") do (

set "port=%%~b"

if not defined port set "port=80"

setlocal enabledelayedexpansion

portqry -n "%%~a" -e "!port!" >NUL 2>NUL && (

echo %%a port !port!: OK

) || (

echo %%a port !port!: Error

)

endlocal

)

)

如果您正在测试的只是Web服务,那么以不同的方式进行此操作可能更有意义.您可以使用Microsoft.XMLHTTPCOM对象来消除该portqry依赖关系; 因此获得的响应将与HTTP服务更相关.(例如,如果您在端口8080上运行VNC服务器而您希望Web服务正在侦听,portqry那么当您需要它返回失败时,可能会返回成功.)

无论如何,将其保存为.bat脚本和盐味.

@if (@CodeSection == @Batch) @then

@echo off

setlocal

set "servers=dev1 dev2 dev3 test1 test2 test2:8080 prod prod:443"

for %%I in (%servers%) do (

for /f "tokens=1,2 delims=:" %%a in ("%%I") do (

set "port=%%~b"

if not defined port set "port=80"

setlocal enabledelayedexpansion

cscript /nologo /e:JScript "%~f0" "%%~a" "!port!" && (

echo %%a port !port!: OK

) || (

echo %%a port !port!: Error

)

endlocal

)

)

goto :EOF

@end // end batch / begin JScript chimera

var server = WSH.Arguments(0),

port = WSH.Arguments(1),

protocol = port == 443 ? 'https' : 'http',

URL = protocol + '://' + server + ':' + port + '/',

XHR = WSH.CreateObject('Microsoft.XMLHTTP');

XHR.open('GET', URL);

XHR.setRequestHeader('User-Agent','XMLHTTP/1.0');

XHR.send('');

while (XHR.readyState != 4) WSH.Sleep(25);

WSH.Quit(XHR.status - 200);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值