четверг, 8 июля 2010 г.

Вызов cmd скриптов во время MDT сессии

В статье(http://blogs.technet.com/b/deploymentguys/archive/2010/07/07/using-command-shell-scripts-with-mdt.aspx?wa=wsignin1.0) описаны способы правильного запуска скриптов, так как командная оболочка не поддерживает запуск скриптов из текущей директории в сети, а ссылается на %SystemRoot%\System32. Чтобы обойти это задаем переменную пути к скриптам:

set SCRIPTDIR=%~dp0
set SCRIPTDIR=%SCRIPTDIR:~0,-1%

Далее запуск осуществляется вызовом: "%SCRIPTDIR%\foo.exe"

Для вызова всех перемнных используемых в последовательности задач, можно использовать скрипт. Таким образом можно использовать следующую строчку:

for /F "tokens=1,2* delims==" %%i in ('cscript //nologo "%SCRIPTDIR%\EchoTSVariables.wsf"') do set %%i=%%j>nul

Для установки значений переменным можно использовать готовый, содержащийся в MDT скрипт ZTISetVariable.wsf:

cscript //nologo "%SCRIPTDIR%\ZTISetVariable.wsf" /VariableName:Foo /VariableValue:Bar

Ну и само логирование:

:LOGINFO

set INPUTTEXT=%*
echo %INPUTTEXT%
for /F "tokens=*" %%i in ('cscript //nologo "%SCRIPTDIR%\EchoDateTimeVars.vbs"') do set %%i>nul
echo ^<^^![LOG[%INPUTTEXT%]LOG]^^!^>^>>"%LOGFILE%"

goto :EOF

Определение файла лога по имени скрипта:

set LOGFILE=%LOGPATH%\%~n0.log
set MASTERLOG=%LOGPATH%\BDD.log
set COMPONENT=%~n0

Сами скрипты, использованные в статье тут: http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-03-34-24-83/MDTCmdScript.zip

Комментариев нет:

Отправить комментарий