Назад | Перейти на главную страницу

Пользовательское свойство / переменная MDT не оценивается во время выполнения последовательности задач

Доброго времени суток всем,

Мне нужна помощь с проектом Microsoft Deployment Toolkit (MDT), над которым я работаю. Итак, я пытаюсь установить ComputerName на вновь созданных машинах, используя конкатенацию пользовательской переменной / свойства (ComputerType) и строковые манипуляции встроенным Серийный номер переменная. К сожалению, у меня это не получается, поскольку моя пользовательская переменная не расширяется / не оценивается во время последовательности задач. Вместо того, чтобы видеть значение, я вижу имя самой переменной, отображаемое как "% ComputerType%". То же самое верно и при просмотре файла BDD.log.

Ниже показано, что у меня есть в моем файле CustomSettings.ini (устанавливается через раздел Rules в MDT Workbench). Это поведение подтверждается, когда я просматриваю раздел "Мониторинг" в MDT Workbench, где вижу "Префикс-% ComputerType% -000b5"указан как"название"изображения компьютера вместо чего-то вроде"Префикс-VM-000b5". Это приводит к созданию имени компьютера, которое превышает 15-символьное ограничение Windows, поэтому моя последовательность задач дает сбой, когда идет изменение имени компьютера на этапе после установки.

Что я делаю не так?

Вот как выглядит мой файл CustomSettings.ini:

[Settings]
Priority=IsVM,IsLaptop,IsDesktop,IsServer,SetComputerName,Default
Properties=ComputerType,MyCustomProperty

[IsVM]
Subsection=Virtual-%IsVM%

[IsLaptop]
Subsection=Laptop-%IsLaptop%

[IsDesktop]
Subsection=Desktop-%IsDesktop%

[IsServer]
Subsection=Server-%IsServer%

[Virtual-True]
ComputerType=

[Laptop-True]
ComputerType=LT

[Desktop-True]
ComputerType=WS

[Server-True]
ComputerType=SV

[SetComputerName]
OSDComputerName=Prefix-%ComputerType%-#Right(Replace(Replace(oEnvironment.Item("SerialNumber")," ",""),"-",""),5)#

[Default]
_SMSTSORGNAME=OS Deployment on %OSDComputerName%
FullName=Assigned User's Name
OrgName=My Company Name
Home_Page=https://mail.exchangeserver.com
User_Locale=en-us
KeyboardLocale=en-us
UserDataLocation=NONE
DoCapture=YES
OSInstall=Y
AdminPassword=MyPassword
TimeZone=035
TimeZoneName=Eastern Standard Time
JoinWorkgroup=WORKGROUP
HideShell=YES
FinishAction=SHUTDOWN
DoNotCreateExtraPartition=YES
AppyGPOPack=NO
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerName=YES
SkipDomainMembership=YES
SkipUserData=YES
SkipLocaleSelection=YES
SkipTaskSequence=NO
SkipTimeZone=YES
SkipApplications=YES
SkipBitLocker=YES
SkipSummary=YES
SkipRoles=YES
SkipCapture=NO
SkipFinalSummary=NO
SkipComputerBackup=YES
EventService=http://mdtserver

;LOGGING
SLShare=\\mdtserver\DeploymentShare$\Logs
SLShareDynamicLogging=\\mdtserver\DeploymentShare$\Logs\%ComputerName%

ЭВРИКА! ЗАДАЧА РЕШЕНА!!!

Оказывается, имена моих заголовков разделов не могут совпадать с именами встроенных переменных MDT. Вот что я имею в виду:

[Settings]
Priority=IsVM,IsLaptop,IsDesktop,IsServer,SetComputerName,Default
Properties=ComputerType,MyCustomProperty

Обратите внимание, что в моем разделе [Настройки] заголовок Priority установлен на «IsVM, IsLaptop… .etc»,

[IsVM]
Subsection=Virtual-%IsVM%

[IsLaptop]
Subsection=Laptop-%IsLaptop%

Также обратите внимание, что мои настраиваемые разделы имеют то же имя, что и встроенные переменные MD, которые я тестирую (например, IsVM).

После изменения имен настраиваемых разделов и перестройки моего MDT DeploymentShare теперь все работает.

[Settings]
Priority=ByVM,ByLaptop,ByDesktop,ByServer,SetComputerName,Default
Properties=ComputerType,MyCustomProperty

[ByVM]
Subsection=Virtual-%IsVM%

[ByLaptop]
Subsection=Laptop-%IsLaptop%

Теперь, когда это работает, я могу использовать одну общую папку развертывания для выполнения определенных последовательностей задач (т.е. образы ОС) на определенные машины в зависимости от типа обнаруженного оборудования. Надеюсь, это кому-то поможет.