'如果陈述'不与错误级别一起使用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)
感谢您的帮助下什么!我设法让你的建议工作 – djh123