如何创建从LAN计算机列表中选择随机计算机并在其中一台计算机上运行psexec的批处理文件?
我想做一些像net view这样的事情然后解析这些结果来创建一个随机选择的变量,然后在随机选择的机器上运行psexec。
答案 0 :(得分:0)
试试这个:
@echo off
setlocal enabledelayedexpansion
echo Computers found:
set n=0
for /f "tokens=1" %%a in ('net view') do (
set comp=%%a
if "!comp:~0,2!" == "\\" (
echo !n!: !comp!
set vector[!n!]=!comp!
set /A n+=1
)
)
echo Selecting random computer out of %n% computers...
set /A randval=%random% * %n% / 32767
set randcomp=!vector[%randval%]!
echo Selected: %randval%: %randcomp%
此脚本将运行net view
并解析每一行以查找所有计算机,仅计算第一列,并且仅在它以\\
开头时计算。它将所有计算机写入伪数组vector[...]
并计算n
中的总数。最后,它生成一个介于0和n
之间的随机数,并根据此数字选择一个存储的计算机名称。然后,您可以根据自己的喜好使用%randcomp%
。
例如,您现在可以在批处理文件的末尾使用psexec
:
psexec %randcomp% -u Administrator cmd
(-u Administrator cmd
当然只是一个例子。)