Windows Language Packs - Some Translations Not Complete

Be sure to re-install the inbox apps if you want them to be translated on the first launch.


If using a Task Sequence, the following results in a machine that is fully translated on the first use (you don’t need to use both LP and LXP).

Install LP:
dism.exe /Image:%OSDTargetSystemDrive%\ /ScratchDir:%OSDTargetSystemDrive%\Windows\Temp /Add-Package /PackagePath:".\Microsoft-Windows-Client-Language-Pack_x64_%Language%.cab" 

Install LXP:
powershell.exe -executionpolicy bypass -command "Add-AppxProvisionedPackage -Path %OSDTargetSystemDrive%\ -PackagePath .\LanguageExperiencePack.%Language%.Neutral.appx" -LicensePath ".\License.xml" Install FoD: powershell.exe -executionpolicy bypass -command $cabs = Get-ChildItem -Filter "*.cab"; foreach ($cab in $cabs) { Add-WindowsPackage -PackagePath "$($cab.FullName)" -NoRestart -Path %OSDTargetSystemDrive%\ }

RefreshInboxAppsWinPE.ps1 (Run offline (WinPE) as part of the package that contains the Inbox Apps during the task sequence.):

$tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment $target = $tsenv.Value('OSDTargetSystemDrive') + "\" foreach ($App in (Get-AppxProvisionedPackage -Path $target)) { $AppPath = "$pwd\" + $App.DisplayName + '_' + $App.PublisherId Write-Output "Looking for $AppPath" $licFile = Get-Item $AppPath*.xml if ($licFile.Count) { $lic = $true; $licFilePath = $licFile.FullName } else { $lic = $false } $appxFile = Get-Item $AppPath*.appx* if ($appxFile.Count) { $appxFilePath = $appxFile.FullName if ($lic) { Write-Output "Refreshing $appxFilePath" Add-AppxProvisionedPackage -Path $target -PackagePath $appxFilePath -LicensePath $licFilePath } else { Write-Output "Refreshing $appxFilePath" Add-AppxProvisionedPackage -Path $target -PackagePath $appxFilePath -skiplicense } } }

RefreshInboxAppsOnline.ps1 (Run online as part of the package that contains the Inbox Apps):

foreach ($App in (Get-AppxProvisionedPackage -Online)) { $AppPath = "$pwd\" + $App.DisplayName + '_' + $App.PublisherId Write-Output "Looking for $AppPath" $licFile = Get-Item $AppPath*.xml if ($licFile.Count) { $lic = $true; $licFilePath = $licFile.FullName } else { $lic = $false } $appxFile = Get-Item $AppPath*.appx* if ($appxFile.Count) { $appxFilePath = $appxFile.FullName if ($lic) { Write-Output "Refreshing $appxFilePath" Add-AppxProvisionedPackage -Online -PackagePath $appxFilePath -LicensePath $licFilePath } else { Write-Output "Refreshing $appxFilePath" Add-AppxProvisionedPackage -Online -PackagePath $appxFilePath -skiplicense } } }

Comments

Popular posts from this blog

ConfigMgr Task Sequence Fails Immediately with "The software could not be found on any servers at this time."

Delivery Optimization in Microsoft Endpoint Configuration Manager (ConfigMgr)