'如果陈述'不与错误级别一起使用PSEXEC

问题描述:

我们的客户拥有带有4种不同可能的本地管理员密码的计算机。我想将一个无声的批处理文件放在一个EXE文件中,以便安装一个软件的用户不能轻易读取该批处理文件。不安全,但这是我们目前需要的方式。'如果陈述'不与错误级别一起使用PSEXEC

我正在使用PSEXEC并希望脚本尝试用每个密码运行程序,然后在安装程序成功启动后终止脚本 - 而不尝试其他密码。例如,如果第二个密码是正确的,那么PSEXEC应该只运行两次。

这是脚本。目前它正在尝试全部4个密码,即使第二个密码正确且程序安装程序启动。

@ECHO OFF 
cd %cd% 


echo 1 
psexec -user administrator -p Password1 -i -d -c -f "FirefoxSetup28.0.exe" /accepteula 2>>log1.txt 
find /i "unknown user name or bad password" log1.txt > nul 


if errorlevel=0 (

del log1.txt /F 
cls 
ver > nul 
echo 2 
psexec -user administrator -p Password2 -i -d -c -f "FirefoxSetup28.0.exe" /accepteula 2>>log2.txt 
find /i "unknown user name or bad password" log2.txt > nul 

if errorlevel=0 (


del log2.txt /F 
cls 
ver > nul 
echo 2 
psexec -user administrator -p Password3 -i -d -c -f "FirefoxSetup28.0.exe" /accepteula 2>>log3.txt 
find /i "unknown user name or bad password" log3.txt > nul 


if errorlevel=0 (

del log3.txt /F 
cls 
ver > nul 
echo 3 
psexec -user administrator -p Password4 -i -d -c -f "FirefoxSetup28.0.exe" /accepteula 2>>log4.txt 
find /i "unknown user name or bad password" log4.txt > nul 

if errorlevel=0 (

del log4.txt /F 
echo Unable to install program 
pause 

) else (

del log4.txt /F 
break 
exit 

) 

) else (

del log3.txt /F 
break 
exit 

) 


) else (

del log2.txt /F 
break 
exit 

) 


) else (

del log1.txt /F 
break 
exit 


) 

exit 

这里是log1.txt文件的例子:

PsExec v1.98 - Execute processes remotely 
Copyright (C) 2001-2010 Mark Russinovich 
Sysinternals - www.sysinternals.com 

Logon failure: unknown user name or bad password. 

PsExec could not start FirefoxSetup28.0.exe: 

if语句的语法是if string1==string2(还有其他比较符...)

errorlevel永远等于0,因为比较了字符串“errorlevel”和“0”。

你需要的语法或者是

if errorlevel 1 (dothisthing if errorlevel is 1 or greater) else (dothatif errorlevel is less than 1) 

if not errorlevel 1 (dothisif errorlevel is less than 1) 

此外,break做的Windows(请参阅从提示break /?为docco)

+0

感谢您的帮助下什么!我设法让你的建议工作 – djh123