2014-03-26 37 views
0

我們的客戶擁有帶有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: 

回答

1

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