PSEXEC传递命令并使用IF循环

时间:2016-09-01 18:44:36

标签: batch-file psexec wmic

当我运行我的批处理文件以通过一大堆IP并获得一些信息如果可以连接到远程cmd时,它不起作用。

如果它无法连接echo不起作用,如果它连接,它会打开远程命令shell,并且在我退回到本地命令shell之前什么都不做。

cd \pstools

psexec.exe @C:\users\chargraves\desktop\inv.txt cmd /c

if errorlevel 0 (
wmic csproduct get version >> \\path\results.txt &
)

if errorlevel 1(
echo "Not accessible"
)

我也开始尝试使用PowerShell。但是只要它进入远程命令shell,它就会挂起。 IT没有输入wmic代码......“

$computers = Get-Content C:\users\chargraves\Desktop\inv.txt    
foreach ($computer in $computers) {
        & "c:\pstools\psexec.exe" \\$computer "cmd"
        & "wmic csproduct get version >> \\share\results.txt"
    }

2 个答案:

答案 0 :(得分:0)

试试这段代码

cd \pstools

psexec.exe @C:\users\chargraves\desktop\inv.txt cmd /c

if %errorlevel%==1 goto fail

REM if errorlevel is 0 then it executes these lines
wmic csproduct get version >> \\path\results.txt

:fail
REM if errorlevel is 1 then it executes the lines bellow
echo "Not Accesible"
ping localhost -n 2 >nul

答案 1 :(得分:0)

我能够让它成功运作并且复杂得多。谢谢。

批次1

cd \pstools
psexec.exe @iplist.txt -c batch2.bat

批次2

wmic command 1 >> results.txt
wmic command 2 >> results.txt
wmic command 3 >> results.txt