帮我写一个cmd脚本,读取txt文件中的每一行主机名,并使用psexec命令:批量推送一个powershell文件到每一台主机中并运行这个文件,返回运行结果
时间: 2024-04-09 10:33:35 浏览: 113
当然,我可以帮你写一个 CMD 脚本来实现这个功能。以下是一个示例脚本:
```batch
@echo off
setlocal enabledelayedexpansion
set "txtfile=hosts.txt"
set "psfile=script.ps1"
set "outputfile=output.txt"
if not exist "!txtfile!" (
echo 文件 "!txtfile!" 不存在!
exit /b
)
if not exist "!psfile!" (
echo 文件 "!psfile!" 不存在!
exit /b
)
for /f "usebackq delims=" %%a in ("!txtfile!") do (
echo 处理主机: %%a
psexec \\%%a powershell -ExecutionPolicy Bypass -File "!psfile!" >> "!outputfile!" 2>&1
if errorlevel 1 (
echo 运行失败
) else (
echo 运行成功
)
)
echo 完成!请查看 "!outputfile!"
```
请将上述代码保存为一个 `.cmd` 文件,并将 `hosts.txt`、`script.ps1` 文件与脚本文件放在同一个目录下。
你需要将要连接的主机名逐行写入 `hosts.txt` 文件中,将要推送和运行的 PowerShell 脚本保存为 `script.ps1` 文件。
脚本会使用 `psexec` 命令来远程推送和运行 PowerShell 脚本,并将运行结果输出到 `output.txt` 文件中。
请注意,你需要确保 `psexec` 命令在系统的 PATH 路径中,否则你需要提供 `
阅读全文