推送闪存更新打印失败的计算机列表

Pushing flash updates printing off failed computer list

我正在使用 psexecmsiexec 将闪存推送到许多计算机。我已经弄清楚如何显示通过和失败的数量并将其打印到另一个文本文件。 (DE_Flash.txt) 我想知道如何显示失败的计算机列表。 test.txt 仅包含计算机名称列表。是否可以让它在底部打印出故障计算机列表?

@echo off
setlocal enabledelayedexpansion
set active_success=0
set plugin_success=0
set total=0

for /F %%G IN (test.txt) DO ( 
    set /a total+=1
    psexec \%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\Install\Adobe\Flash\flash_player_active_x.msi" /qn >> DE_Flash.txt 2>&1
    IF !ERRORLEVEL!==0 set /a active_success+=1
    psexec \%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\Install\Adobe\Flash\flash_player_plugin.msi" /qn >> DE_Flash.txt 2>&1
    IF !ERRORLEVEL!==0 set /a plugin_success+=1
)
echo Active Success: %active_success%/%total% >>DE_FLASH.txt
echo Plugin Success: %plugin_success%/%total% >>DE_FLASH.txt

可能会创建一个名为 FailedPCs.txt 的新文件并将电脑名称发送到新文件。

IF !ERRORLEVEL!==0 >>FailedPCs.txt.txt

以某种方式从第一个文件 test.txt 发送名称。这就是我试图找出如何将计算机名称从旧 txt 文件发送到新 txt 文件的地方。

您也许可以使用这个批处理代码:

@echo off
setlocal enabledelayedexpansion
set active_success=0
set plugin_success=0
set total=0

for /F %%G IN (test.txt) DO ( 
    set /a total+=1
    psexec \%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\Install\Adobe\Flash\flash_player_active_x.msi" /qn >> DE_Flash.txt 2>&1
    if !ERRORLEVEL!==0 (
        set /a active_success+=1
    ) else (
        echo Player install failed on %%G>>FailedPCs.txt
    )
    psexec \%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\Install\Adobe\Flash\flash_player_plugin.msi" /qn >> DE_Flash.txt 2>&1
    if !ERRORLEVEL!==0 (
        set /a plugin_success+=1
    ) else (
        echo Plugin install failed on %%G>>FailedPCs.txt
    )
)
echo Active Success: %active_success%/%total% >>DE_FLASH.txt
echo Plugin Success: %plugin_success%/%total% >>DE_FLASH.txt

但也许有必要评估附加到 DE_FLASH.txt 的安装的额外输出,以真正找出每台 PC 上播放器和插件的安装是否真的在每台机器上成功。

包含捕获的安装成功和安装失败消息的文本文件 DE_FLASH.txt 的内容将对我们有所帮助。