如何输出运行某个进程的PC名称?

时间:2013-02-20 14:21:36

标签: powershell batch-file

我使用psexec自动运行

get.bat


任务列表| findstr pmill.exe>> dc-01 \ c $ \ 0001.txt


run_get.bat


psexec @%1 -u administrator -p password -c“C:\ get.bat”


pclist.txt


在我们网络上的所有PC上,

如何在文本文件中使用PC名称而不是仅仅pmill.exe获取结果? 无论如何,我能从powershell做到吗? 我需要在结果中获取pc名称。 提示plz!

1 个答案:

答案 0 :(得分:2)

代替psexec,试试这个:

@echo off
setlocal enabledelayedexpansion
for /f %%I in (pclist.txt) do (
    set /p q="Checking %%I... "<NUL
    ping -n 1 -w 500 %%I>NUL 2>NUL
    if !errorlevel!==1 (
        echo Offline.
    ) else (
        wmic /node:%%I /user:adminuser /password:pass process where name="pmill.exe" get csname 2>NUL | find /i "%%I" >>dc-01\c$\0001.txt
        echo Done.
    )
)

如果pmill.exe正在运行,则输出%computername%,否则输出

修改

如果您必须使用psexec,我建议您更改调用for的{​​{1}}循环的逻辑,如下所示:

psexec