Jump to content


Windows 10 multi language Install using SCCM

Recommended Posts

I have TS to install Windows 10 multi language.

I'm downloading the langauge packs into folder and then i'm using powershell script to install it.

Install Client LP script

Param ($contentPath)

Set-StrictMode -Off

$logFile = "C:\lang\InstallLanguagePacks.log"
if(!(Test-Path $logFile)){New-Item -Path $logFile -Force}

$contentPath | Tee-Object -FilePath $logFile -Append

[array]$AllLPs = Get-ChildItem "$contentPath\*\LP\Microsoft-Windows-Client-Language-Pack_x64*.cab"
"{0:u} | Found {1} language packs:" -f [datetime]::Now, $AllLPs.Count | Tee-Object -FilePath $logFile -Append
$AllLPs.FullName | Tee-Object -FilePath $logFile -Append

Foreach ($lp in $AllLPs)
    "Install new LP $lp" | Tee-Object -FilePath $logFile -Append
    $lp.FullName | Tee-Object -FilePath $logFile -Append
    Add-WindowsPackage -Online -PackagePath $lp.FullName -NoRestart -Verbose 3>&1 4>&1 | 
    ForEach-Object {"{0:u} | {1}" -f [DateTime]::Now, ($_ | Out-String) | Tee-Object -FilePath $logFile -Append }


Install Fod Script

Param ($contentPath)

Set-StrictMode -Off

$logFile = "C:\Language\InstallLanguagePacks-FOD.log"
if(!(Test-Path $logFile)){New-Item -Path $logFile -Force}

Start-Sleep -Seconds 2
$installedLP = Get-WindowsPackage -Online -PackageName "*Client-languagePack*" |
    Where-Object {$_.PackageState -eq 'Installed' -and $_.PackageName -notmatch '~en-US~' -and $_.PackageName -notmatch '~en-GB~'}

"{0:u} | Detected installed Language packs:" -f [datetime]::Now | Tee-Object -FilePath $logFile -Append
($installedLP | Select-Object CapacityID, PackageName | Out-String -Stream) | Tee-Object -FilePath $logFile -Append

$FODCat = @('Microsoft-Windows-LanguageFeatures-Basic-',
$FODs =@()

foreach($Item in $FODCat)
    $FODs += Get-ChildItem "$contentPath\*\FOD\$Item*.cab" | Select-Object -ExpandProperty FullName

"{0:} | Reading FOd content source. Found {1} language and readion feature on demand (FOD): " -f [datetime]::Now, $FODs.Count | 
    Tee-Object -FilePath $logFile -Append

If($FODs.Count) { 
    "",$FODs.Substring($contentPath.Length),"" | Tee-Object -FilePath $logFile -Append
    $FODs | Tee-Object -FilePath $logFile -Append 

foreach ($fp in $FODs)
    "Installing FoD $fp" | Tee-Object -FilePath $logFile -Append
     Add-WindowsPackage -Online -PackagePath "$($fp)" -NoRestart -PreventPending -Verbose 3>&1 4>&1 | 
    ForEach-Object {"{0:u} | {1}" -f [DateTime]::Now, ($_ | Out-String) | Tee-Object -FilePath $logFile -Append }


I can see the language is being download and script is finding the languages but its not install it. I try to manually install it in winpe i get error message but when i try to install it in windows it works fine


Share this post

Link to post
Share on other sites

2 hours ago, anyweb said:

take a look at this it might give you some ideas



I will try this but from reading this it looks like yo are using MDT which i'm we not using.


If I use dism.exe it works fine but I dont understand why powershell doesn't work

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.