Мне кажется, я ломаю голову над чем-то очень простым. Я работал над этим два дня и, к сожалению, не могу понять.
Проблема в том, что я использую скрипт Powershell при развертывании системы Windows с MDT. Сценарий называется последним в последовательности задач. В сценарии я запрашиваю задачу перезагрузки и повторной попытки, поскольку приложение (инструмент обновления Dell) нуждается в перезагрузке.
Эта часть работает, так как в MDT TS она понимает, что должна перезагрузиться, а также должна перезапустить задача. Машина перезагружается, а затем повторно запускает ту же последовательность задач, но сценарий никогда не запускается, в то время как SMSTS.log действительно сообщает, что он был успешно запущен и завершился с кодом 0.
Затем я заметил, что код выхода всегда 0 пока я меняю это в своем скрипте. Затем я обнаружил, что это неправильно с кодом возврата моего скрипта powershell, и попробовал следующее:
Тестовый скрипт:
$MyExitCode = 3010
Write-Host ('MyExitcode: [' + $MyExitCode + ']')
Write-Host ('LastExitCode: [' + $LastExitCode + ']')
Write-Host ''
Write-Host 'Setting MyExitCode to LastExitCode'
$LastExitCode = $MyExitCode
Write-Host 'New Result:'
Write-Host ('MyExitcode: [' + $MyExitCode + ']')
Write-Host ('LastExitCode: [' + $LastExitCode + ']')
Read-Host 'Debug Break'
Write-Output $_
Exit $ExitCode
Откройте CMD как администратор и затем выполните следующую команду
CMD> powershell.exe -ExecutionPolicy bypass -File "Z:\Applications\Test\TestRerunTask.ps1"
CMD> echo $LastExitCode
CMD> 0
Замена параметра -File
на -Command
изменила код выхода на 1, но в SMSTS.log по-прежнему говорится, что он завершен с кодом 0
Фрагмент SMSTS.log the Последовательность задач называется Test
!--------------------------------------------------------------------------------------------! TSManager 13-2-2020 11:18:41 6200 (0x1838)
Expand a string: WinPEandFullOS TSManager 13-2-2020 11:18:41 6200 (0x1838)
Executing command line: cscript.exe "%SCRIPTROOT%\ZTIApplications.wsf" TSManager 13-2-2020 11:18:41 6200 (0x1838)
Process completed with exit code 0 TSManager 13-2-2020 11:19:02 6200 (0x1838)
!--------------------------------------------------------------------------------------------! TSManager 13-2-2020 11:19:02 6200 (0x1838)
Successfully completed the action (Test) with the exit win32 code 0 TSManager 13-2-2020 11:19:02 6200 (0x1838)
Executing in non SMS standalone mode. Ignoring send a task execution status message request TSManager 13-2-2020 11:19:02 6200 (0x1838)
Set a global environment variable _SMSTSLastActionRetCode=0 TSManager 13-2-2020 11:19:02 6200 (0x1838)
Set a global environment variable _SMSTSLastActionName=Test TSManager 13-2-2020 11:19:02 6200 (0x1838)
Set a global environment variable _SMSTSLastActionSucceeded=true TSManager 13-2-2020 11:19:02 6200 (0x1838)
Clear local default environment TSManager 13-2-2020 11:19:02 6200 (0x1838)
The action (Test) requested a retry TSManager 13-2-2020 11:19:02 6200 (0x1838)
Created volatile registry entry for pending reboot initiated by this task sequence TSManager 13-2-2020 11:19:02 6200 (0x1838)
The action (Test) initiated a reboot request TSManager 13-2-2020 11:19:02 6200 (0x1838)
Executing in non SMS standalone mode. Ignoring send a task execution status message request TSManager 13-2-2020 11:19:02 6200 (0x1838)
**************************************************************************** TSManager 13-2-2020 11:19:02 6200 (0x1838)
Execution engine result code: Reboot (2) TSManager 13-2-2020 11:19:02 6200 (0x1838)
Process completed with exit code 2147945410 TSMBootstrap 13-2-2020 11:19:02 6168 (0x1818)
Exiting with return code 0x80070BC2 TSMBootstrap 13-2-2020 11:19:02 6168 (0x1818)
----------------------
... More reboot stuff ...
----------------------
Expand a string: WinPEandFullOS TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Executing command line: cscript.exe "%SCRIPTROOT%\ZTIApplications.wsf" TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Process completed with exit code 0 TSManager 13-2-2020 11:19:34 8652 (0x21CC)
!--------------------------------------------------------------------------------------------! TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Successfully completed the action (Test) with the exit win32 code 0 TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Executing in non SMS standalone mode. Ignoring send a task execution status message request TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Set a global environment variable _SMSTSLastActionRetCode=0 TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Set a global environment variable _SMSTSLastActionName=Test TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Set a global environment variable _SMSTSLastActionSucceeded=true TSManager 13-2-2020 11:19:34 8652 (0x21CC)
Clear local default environment TSManager 13-2-2020 11:19:34 8652 (0x21CC)