PowerShell GUI for Downloading Language Packs - W10_11LangPack.ps1

Right now, uupdump.net is offline (again). If you need to run the script, please follow the above instructions to edit line #213.
 
No, those are unofficial mirrors. If you follow the UUP dump thread on MyDigitalLife (MDL) the official site has scaling issues and they're possibly looking for another hosting solution. They operate off a minimal budget, and won't take any outside money.

uup.ee and windows.hyper.one have incomplete functionality.

www.uupdump.cn returns (307) 22621.x builds
www.uup.ee returns (53) builds
windows.hyp.one returns (47) builds

I believe the Chinese mirror was built for those behind the Great Firewall, since it's hosted in Hong Kong.

The other workaround is the self-hosted PHP server which runs off the UUP dump config files. That doesn't make any sense for a newcomer, when all they're expecting is a click and go solution.
 
No, those are unofficial mirrors. If you follow the UUP dump thread on MyDigitalLife (MDL) the official site has scaling issues and they're possibly looking for another hosting solution. They operate off a minimal budget, and won't take any outside money.

uup.ee and windows.hyper.one have incomplete functionality.
OK thanks for the clarification but that site was indicated in their forum... anyway I apologize...
 
Last year there were more unofficial mirrors (mostly in China) that were perfect copies, but they all disappeared.

I know everyone's anxious, but some of the new sites are skipping major features. Like supporting the web API.
Code:
PS > .\W10_11LangPack-NEW.ps1
The remote server returned an error: (400) Bad Request.
 
hello mr garlin error script win10_11 powershell

Échec lors de l’appel de la méthode, car [System.Boolean] ne contient pas de méthode nommée « Split ».
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:189 : 5
+ $URL = $link.Split('"')[1]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Échec lors de l’appel de la méthode, car [System.Boolean] ne contient pas de méthode nommée « Split ».
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:190 : 5
+ $Filename = $link.Split('>')[1].Split('<')[0] -replace '\s',''
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Impossible d’appeler une méthode dans une expression Null.
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:194 : 5
+ $Filename = $Filename.Replace($PackageName,[cultureinfo]::GetCult ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Impossible d’appeler une méthode dans une expression Null.
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:195 : 5
+ $Filename = $Filename.Replace('Ocr','OCR')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Impossible d’appeler une méthode dans une expression Null.
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:197 : 9
+ $Filename = $Filename.Replace($word.ToLower(),$word)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Impossible d’appeler une méthode dans une expression Null.
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:197 : 9
+ $Filename = $Filename.Replace($word.ToLower(),$word)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Impossible d’appeler une méthode dans une expression Null.
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:197 : 9
+ $Filename = $Filename.Replace($word.ToLower(),$word)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : :)) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Test-Path : Impossible de lier l'argument au paramètre « Path », car il a la valeur Null.
Au caractère C:\Users\vigip\Desktop\W10_11LangPack.ps1:200 : 31
+ if (-not (Test-Path -Path $Filename -PathType Leaf)) {
+ ~~~~~~~~~
+ CategoryInfo : InvalidData : :)) [Test-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand
 
Did you read my earlier post? uupdump.net is offline, you need to edit W10_11LangPack.ps1

Open the file in Notepad, and change line #214:
Code:
$Links = (Invoke-WebRequest -UseBasicParsing -Method Get -Uri "https://uupdump.net/get.php?id=$UpdateID&pack=$Region&edition=core" `
Code:
$Links = (Invoke-WebRequest -UseBasicParsing -Method Get -Uri "https://www.uupdump.cn/get.php?id=$UpdateID&pack=$Region&edition=core" `

I don't want to update the posted script, because I don't know if uupdump.net will return.

UPDATE: uupdump.net is working again.
 
Last edited:
Updated both scripts with UI enhancements:
- Languages are listed in tabbed columns, for easier reading.
- Grouped W11 23H2 with 22H2, because both share the same Language Packs.
 
Sorry but a dumb Question. The tool says downloading packages but where are the downloaded files?
you should see them in the same folder where you have the tools files, you should see loading bars in the powershell while youre downloading and they will be blue, then youll see some red near the end
 
Last edited:
Microsoft-Windows-Client-LanguagePack-Package_en-gb-amd64-en-gb.esd seems to sometimes download corrupt and sometimes not, because i just downloaded it twice, 1st time you see above, it wouldn't convert it using ESD2CAB-CAB2ESD-2 and then after downloading another fresh one, it allowed ESD2CAB-CAB2ESD-2 to convert it... o_O
 
Microsoft-Windows-Client-LanguagePack-Package_en-gb-amd64-en-gb.esd seems to sometimes download corrupt and sometimes not, because i just downloaded it twice, 1st time you see above, it wouldn't convert it using ESD2CAB-CAB2ESD-2 and then after downloading another fresh one, it allowed ESD2CAB-CAB2ESD-2 to convert it... o_O
The script uses UUP dump to generate a list of expiring download links from MS servers. Unless there's a random network error (which I rarely see), the Invoke-WebRequest doesn't leave much room for file corruption.

To be polite for users who have slow or metered network access, my script doesn't overwrite any previously downloaded files which match the same filenames. In those cases, delete the CAB files and start over.

There's no problems when I integrate en-GB on a clean 23H2 image. Adding LP's to an already updated/stripped image like Tiny11 is doomed to fail because it's not a clean start.
 

Attachments

  • Windows 11 x64-2023-12-13-09-11-09.png
    Windows 11 x64-2023-12-13-09-11-09.png
    47.2 KB
The script uses UUP dump to generate a list of expiring download links from MS servers. Unless there's a random network error (which I rarely see), the Invoke-WebRequest doesn't leave much room for file corruption.

To be polite for users who have slow or metered network access, my script doesn't overwrite any previously downloaded files which match the same filenames. In those cases, delete the CAB files and start over.

There's no problems when I integrate en-GB on a clean 23H2 image. Adding LP's to an already updated/stripped image like Tiny11 is doomed to fail because it's not a clean start.
My internet is pure fibre, limited at a rate of 200Mbs, I doubt it's my speed
 
Back
Top