Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   обработка информации полученной посредством PSExec (http://forum.oszone.net/showthread.php?t=326710)

densan 12-05-2017 12:29 2736120

обработка информации полученной посредством PSExec
 
Здравствуйте.
Есть скрипт, который проверяет версию запущенного приложения и выводит её в консоль.
Этот скрипт нужно запустить на большом количестве компьютеров в сети.
Запускаю этот скрипт посредством psexec и получаю в консоли нужную информацию, правда с посторонней информацией.

Вопрос: можно ли обработать информацию полученную из вывода psexec?
Мне нужно если версия xxx - запустить на удаленном компьютере скрипт обновления, а если версия yyy, то имя ПК скопировать в отдельный файл.

Iska 12-05-2017 12:41 2736125

Цитата:

Цитата densan
Есть скрипт, который проверяет версию запущенного приложения и выводит её в консоль. »

Какой скрипт?

densan 12-05-2017 14:18 2736153

Стартующий скрипт
Код:

Echo Off
Chcp 866
set CurFolder=%cd%

cd /d %CurFolder%

for /f %%i in (pc1.txt) do call:ping %%i
goto:eof

:ping
Ping -n 1 -w 1000 %1 |Find "TTL=">nul
If %ErrorLevel%==0 (
        Echo %1 Online

        If Not Exist \\%1\c$ (
                echo network share \\%1\c$ is not available
                Echo %1 >> pc1-no_share.txt
        ) else (
                echo network share \\%1\c$ is available       
                If Not Exist \\%1\c$\temp\si mkdir \\%1\c$\temp\si
                xcopy /y %CurFolder%\files\filever.exe  \\%1\c$\temp\si\
                xcopy /y %CurFolder%\files\ver.cmd  \\%1\c$\temp\si\
                psexec \\%1 c:\temp\si\ver.cmd
                rd /s /q \\%1\c$\temp\si
        )

) Else (
        Echo %1 Offline
        Echo %1 >> pc1-offline.txt
)

скрипт который выполняется на удаленном компьютере
Код:

@echo off
set NewVersion=5.38.0.11
set "ProcName=sifiltersvc.exe"
set CurFolder="c:\temp\si"
set LogFile=%CurFolder%\log\%computername%

cd /d %CurFolder%

for /f "tokens=1* delims==" %%i in ('
 wmic process where "Name='%ProcName%'" get ExecutablePath /value^| findstr :
') do set ExecutablePath=%%j
 
FOR /F "tokens=2" %%a IN ('filever.exe /v /a /d "%ExecutablePath%" ^| find "ProductVersion"') do set CurrentVersion=%%a

echo  %CurrentVersion%

Очень хотелось бы в стартующий скрипт добавить функционал по обработке ответов, которые выходят при выполнении строки
Код:

psexec \\%1 c:\temp\si\ver.cmd

Iska 15-05-2017 15:58 2736947

Я бы, несомненно, действовал в обратном порядке: не проталкивание, а вытягивание. Для домена это уже есть в комплекте, но, как я понимаю, у Вас его нет. Посему ручками: каждая машина при загрузке смотрит в заданном разделённом ресурсе, доступном только для чтения, наличие пакетных файлов/скриптов WSH/PoSH (возможно, с заранее заданным перечнем предопределённых имён) и исполняет их.


Время: 17:40.

Время: 17:40.
© OSzone.net 2001-