CMD/BAT - обработка информации полученной посредством PSExec

Ответить
Аватара пользователя
densan

CMD/BAT - обработка информации полученной посредством PSExec

Сообщение densan »

Здравствуйте.

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

Этот скрипт нужно запустить на большом количестве компьютеров в сети.

Запускаю этот скрипт посредством psexec и получаю в консоли нужную информацию, правда с посторонней информацией.



Вопрос: можно ли обработать информацию полученную из вывода psexec?

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

Re: CMD/BAT - обработка информации полученной посредством PSExec

Сообщение Iska »

Цитата densan:



Есть скрипт, который проверяет версию запущенного приложения и выводит её в консоль.
CMD/BAT - обработка информации полученной посредством PSExec




Какой скрипт?
Аватара пользователя
densan

Re: CMD/BAT - обработка информации полученной посредством PSExec

Сообщение densan »

Стартующий скрипт



Код:

Код: Выделить всё

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

Re: CMD/BAT - обработка информации полученной посредством PSExec

Сообщение Iska »

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

Вернуться в «Скриптовые языки администрирования Windows»