创建一个批处理文件,该文件从局域网计算机列表中选择一台随机计算机并在其中一台计算机上运行 psexec?
我想做一些类似 net view 的事情,然后解析这些结果以创建一个将随机选择的变量,然后在随机选择的机器上运行 psexec。
试试这个:
@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
只是一个例子。