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
Post a Comment