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

时间:2015-12-15 18:13:27

标签: psexec msiexec

我正在使用psexecmsiexec向许多计算机推送Flash。我已经想出如何显示传递和失败的数量,并将打印到另一个文本文件。 (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的新文件,并将pc名称发送到新文件。

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

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

1 个答案:

答案 0 :(得分:1)

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

@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的内容对我们有帮助。