Вопрос или проблема
Я использую последовательность задач развертывания, чтобы вызвать скрипт Powershell для установки нескольких сертификатов, но он не устанавливает их.
Команда, которую я использую, следующая:
Import-Certificate -FilePath "%DeploymentRoot\Scripts\certs\cert1.cer" -CertStoreLocation Cert:LocalMachine\My
Import-Certificate -FilePath "%DeploymentRoot\Scripts\certs\cert2.cer" -CertStoreLocation Cert:LocalMachine\My
Я протестировал, изменив на полный путь, и установил на сервере.
Я получаю следующую ошибку, когда машина PXE завершает установку:
Неизвестная ошибка (Ошибка: 00002A95; Источник: Неизвестен)
Двигатель последовательности задач завершился неудачей! Код: enExecutionFail
Выполнение последовательности задач завершилось с кодом ошибки 80004005
RegQueryValueExW завершилось неудачей для Software\Microsoft\SMS\Task Sequence,
SMSTSEndProgram
GetTsRegValue0 завершилось неудачей. Ox80070002
Ошибка: Менеджер последовательности задач не смог выполнить последовательность задач, Код Ox80004005
Ваша проблема, вероятно, связана с тем, что переменная %DeploymentRoot% не интерпретируется правильно в контексте вашей последовательности задач развертывания.
Проверьте значение %DeploymentRoot%
Используйте следующий фрагмент в вашем скрипте PowerShell, чтобы увидеть, правильно ли разрешается переменная:
Write-Output “DeploymentRoot: $env:DeploymentRoot”
Если это не выводит ожидаемый путь, значит, %DeploymentRoot% не устанавливается как ожидалось.
Или замените %DeploymentRoot% на фактический полный путь к общей папке развертывания в вашем скрипте.
Ответ или решение
Как добавить несколько сертификатов в задачу развертывания MDT
Развертывание с помощью Microsoft Deployment Toolkit (MDT) может быть сложной задачей, особенно когда дело доходит до установки сертификатов. Если вы используете сценарии PowerShell для установки нескольких сертификатов и сталкиваетесь с проблемами, такими как ошибка выполнения задачи с кодом 80004005, важно провести тщательное обследование и корректировку процесса развертывания.
Проблема с переменной %DeploymentRoot%
Одной из самых распространенных причин неудачной установки сертификатов является неправильное разрешение переменной %DeploymentRoot%
в контексте задачи развертывания. Чтобы убедиться, что переменная DeploymentRoot
корректно определена, можно добавить следующий код в ваш сценарий PowerShell:
Write-Output "DeploymentRoot: $env:DeploymentRoot"
После этого выполните задачу развертывания и проверьте вывод. Если путь, который был выведен, оказался некорректным или пустым, это означает, что переменная %DeploymentRoot%
не настроена должным образом. В этом случае вы можете заменить её на полный путь к вашему развертыванию.
Примеры установки сертификатов
Вот корректная схема установки сертификатов с помощью PowerShell, которую можно использовать в вашей задаче развертывания:
# Путь к сертификатам
$cert1Path = "C:\DeploymentRoot\Scripts\certs\cert1.cer"
$cert2Path = "C:\DeploymentRoot\Scripts\certs\cert2.cer"
# Проверка наличия файлов
if (Test-Path $cert1Path) {
Import-Certificate -FilePath $cert1Path -CertStoreLocation Cert:LocalMachine\My
} else {
Write-Output "Файл сертификата $cert1Path не найден."
}
if (Test-Path $cert2Path) {
Import-Certificate -FilePath $cert2Path -CertStoreLocation Cert:LocalMachine\My
} else {
Write-Output "Файл сертификата $cert2Path не найден."
}
Проверка выполнения сценария
Чтобы избежать ошибок и убедиться в правильной установке сертификатов, убедитесь, что в выводе PowerShell не присутствует никаких сообщений об ошибках. Если сертификаты не установились, особенно обращайте внимание на сообщения об отсутствии файлов или проблемах с правами доступа.
Устранение других возможных ошибок
-
Права доступа: Убедитесь, что ваша учетная запись имеет достаточные права для установки сертификатов в хранилище
LocalMachine
. -
Пути: Если вы все еще сталкиваетесь с ошибками, попробуйте использовать абсолютные пути к сертификатам вместо относительных, чтобы исключить влияние переменной
%DeploymentRoot%
. -
Логи MDT: Проверьте логи MDT для более детальной информации о причинах ошибок. Логи можно найти по следующему пути:
X:\Windows\Logs\SMSTSLog\
. Обратите внимание на файлыsmsts.log
, чтобы выявить более конкретные проблемы в процессе выполнения задачи.
Заключение
Добавление нескольких сертификатов в задачу развертывания MDT требует тщательного подхода, особенно в отношении правильного определения путей и разрешения переменных. Используйте предложенные методы для проверки и исправления вашей установки сертификатов, и вы сможете успешно завершить развертывание.