Having a strange issue with Windows 11 23H2 (Multi...
# citrix-vad
j
Having a strange issue with Windows 11 23H2 (Multi-User) and Language Pack Installation. All of the needed cab files have been installed successfully. The language pack is missing for all the other languages (except en-us). Some code snippets from the used PowerShell Script. Did I miss something❓ Note: I am not using the "Install-Language" Cmdlet because its really slow. The FoD method is way faster. Will give it a try tomorrow with the Cmdlet if that is fixing the issue. Disable-ScheduledTask -TaskPath "\Microsoft\Windows\AppxDeploymentClient\" -TaskName "Pre-staged app cleanup" Disable-ScheduledTask -TaskPath "\Microsoft\Windows\MUI\" -TaskName "LPRemove" Disable-ScheduledTask -TaskPath "\Microsoft\Windows\LanguageComponentsInstaller" -TaskName "Uninstallation" reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Control Panel\International" /v "BlockCleanupOfUnusedPreinstalledLangPacks" /t REG_DWORD /d 1 /f if ((Test-Path $basicFile)) { Write-Host $language.Name " - Installing $basicFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Package /PackagePath=$basicFile /NoRestart" -Wait } if ((Test-Path $handwritingFile)) { Write-Host $language.Name " - Installing $handwritingFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Capability /CapabilityName=Language.Handwriting~~~$($language.Name)~0.0.1.0 /PackagePath=C:\PackerBuild\Apps\MUI\LangPacks\$($language.Name) /NoRestart" -Wait } if ((Test-Path $ocrFile)) { Write-Host $language.Name " - Installing $ocrFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Capability /CapabilityName=Language.OCR~~~$($language.Name)~0.0.1.0 /PackagePath=C:\PackerBuild\Apps\MUI\LangPacks\$($language.Name) /NoRestart" -Wait } if ((Test-Path $speechFile)) { Write-Host $language.Name " - Installing $speechFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Capability /CapabilityName=Language.Speech~~~$($language.Name)~0.0.1.0 /PackagePath=C:\PackerBuild\Apps\MUI\LangPacks\$($language.Name) /NoRestart" -Wait } if ((Test-Path $textSpeechFile)) { Write-Host $language.Name " - Installing $textSpeechFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Capability /CapabilityName=Language.TextToSpeech~~~$($language.Name)~0.0.1.0 /PackagePath=C:\PackerBuild\Apps\MUI\LangPacks\$($language.Name) /NoRestart" -Wait } if ((Test-Path $MSPaintFodFile)) { Write-Host $language.Name " - Installing $MSPaintFodFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Package /PackagePath=$MSPaintFodFile /NoRestart" -Wait } if ((Test-Path $SnippingTooltFodFile)) { Write-Host $language.Name " - Installing $SnippingTooltFodFile" -ForegroundColor Green Start-Process -FilePath "dism.exe" -WorkingDirectory "C:\Windows\System32" -ArgumentList "/online /Add-Package /PackagePath=$SnippingTooltFodFile /NoRestart" -Wait } $LanguageList = Get-WinUserLanguageList $LanguageList.Add("$($language.Name)") Set-WinUserLanguageList $LanguageList -force
Problem solved. Missed the "Microsoft-Windows-Client-Language-Pack_x64-xxx.cab" 🀦
πŸ‘ 1
m
Why not
Install-Language -Language de-DE -CopyToSettings
?
j
cmdlet is buggy. had many issues
m
Can't confirm. I've used that command with Packer on Azure Marketplace Images for Windows 10 22H2 Multi User for about a year without any problems. Of course, there is the bug, that the machine breaks, if you don't install Windows Updates immediately after the command, without rebooting prior. In February we switched to Windows 11 23H2, and didn't change that part of my build process, and it still works without any problems. Maybe give it a second try? It doesn't require any additional work besides that command and Windows Updates, to make this work in my experience.
j
The deployment with the method (.cab files) above is in addition much faster. Not going to touch it πŸ™‚ πŸ‘πŸ½
m
Copy code
2024-06-06T13:58:32+02:00: ==> azure-arm.win11-23h2-avd: Provisioning with powershell script: scripts/010_language-de-DE.ps1
6T13:58:37+02:00: azure-arm.win11-23h2-avd: ##[section]Start Language de-DE
[...]
6T14:12:32+02:00: azure-arm.win11-23h2-avd: ##[section]Stop Language de-DE
In my build pipeline in West Europe with a machine Standard_NC4as_T4_v3 it takes 14 minutes. Just out of curiosity: How long does it take with the .cab files?
j
We are having 7 languages. It’s under 12 minutes
πŸ‘πŸ» 1