During the Microsoft Ignite 2016 OS Deployment pre-conference, I demonstrated the ConfigMgr inplace-upgrade task sequence, and if you want to specify additional command-line options you can use the "not-so-easy-to-find" OSDSetupAdditionalUpgradeOptions variable. For example for using the /InstallLangPacks or /ReflectDrivers switches.
Note #1: For MDT Lite Touch, the same variable is named WindowsUpgradeAdditionalOptions.
Note #2: Adding language packs to the inplace-upgrade is needed if the machine has a language pack installed already, and you want Windows 10 to have the same language pack installed after the upgrade. The /ReflectDrivers switch can be used when having third party disk encryption on the machine you are trying to upgrade.
Task sequence action variables
Anyway, the OSDSetupAdditionalUpgradeOptions variable is part of the so-called task sequence action variables in ConfigMgr Current Branch. For a complete list of the action variables, check the online docs:
Task sequence action variables in System Center Configuration Manager
Creds: Thanks to Michael Niehaus (@mniehaus) for sending me the link when my Google/Bing search skills failed me 🙂
Here is an example of a task sequence configured to install a Swedish language pack by first using the download package content feature, and then using the OSDSetupAdditionalUpgradeOptions variable:
1. Add a Download Package Content action, select your language pack, and set the Save path as variable to LPs.
2. The add a Set Task Sequence Variable action, where you set the following:
Task Sequence Variable: OSDSetupAdditionalUpgradeOptions
Value: /InstallLangPacks %LPs01%sv-se
Note: The 01 number in the end of the %LPs01% must be added for this action to work.
When deploying this task sequence you will see that the extra variable added will modify the setup command line. This you can verify in the setupact.log file:
MOUPG SetupHost::Initialize: CmdLine = [/Install /Media /Quiet /ProcessId 2580 /InstallFile "C:_SMSTaskSequencePackagesPS10005CSourcesInstall.wim" "/ImageIndex" "1" "/auto" "Upgrade" "/noreboot" "/postoobe" "C:windowsSMSTSPostUpgradeSetupComplete.cmd" "/postrollback" "C:windowsSMSTSPostUpgradeSetupRollback.cmd" "/installdrivers" "C:W10DriversPS100009" "/DynamicUpdate" "Disable" "/InstallLangPacks" "C:_SMSTaskSequencePackagesPS100065sv-se" /MediaPath "C:_SMSTaskSequencePackagesPS10005C" /SuccessId 202fe022-b448-4fc5-9d3a-99a50c619852]
For more notes, links and slides from the preconference, check out this blog post by Ami Casto (@MDTPro), one of the authors on Deployment Research.
Notes and slides from the Learn about Windows 10 Enterprise deployment pre-day at Microsoft Ignite 2016
Note: Also, in general, I recommend avoiding the Windows 10 operating system servicing plans feature in ConfigMgr (In the Windows 10 Servicing node), because of the lack of control. But if you do, Niall Brady (@ncbrady) has some nice info related to language packs when using it.
How can I use Windows 10 Servicing when a language pack is installed using System Center Configuration Manager (Current Branch)
Written by Johan Arwidmark
– Microsoft MVP and all-around geek