Introduction

OCR とかの機能を利用する場合、Windows Update を経由して、言語機能を追加する必要があるが…環境によってはインターネットへの接続が許容されないケースがある。

そんな機能の追加をオフラインで行う仕組みがある。

Azure の VM に言語パックを追加し、それを以降のベースイメージとしてデプロイするための説明だが、その一部を使う。

ちなみに 受信トレイ の訳は間違っていて、元は Inbox Apps、つまり Windows に最初から組み込まれているメモ帳やペイントなどのアプリを指す。

How to use?

上記ページのサンプルを改造して、日本語の FOD (Features on Demand) を追加してみます。

下記は上記の機能をインストールするための Powershell スクリプト。 LIPContent は iso をマウントしたボリュームラベルを指定。
管理者権限の付いた Powershell のプロンプトから実行すること。

言語パック

1
2
3
4
5
6
7
8
9
10
11
12
##Disable Language Pack Cleanup##
Disable-ScheduledTask -TaskPath "\Microsoft\Windows\AppxDeploymentClient\" -TaskName "Pre-staged app cleanup"

##Set Language Pack Content Stores##
[string]$LIPContent = "D:"

$language = "ja-jp"
Add-AppProvisionedPackage -Online -PackagePath $LIPContent\LocalExperiencePack\$language\LanguageExperiencePack.$language.Neutral.appx -LicensePath $LIPContent\LocalExperiencePack\$language\License.xml
Add-WindowsPackage -Online -PackagePath $LIPContent\x64\langpacks\Microsoft-Windows-Client-Language-Pack_x64_${language}.cab
$LanguageList = Get-WinUserLanguageList
$LanguageList.Add(${language})
Set-WinUserLanguageList $LanguageList -force

FOD

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
##Disable Language Pack Cleanup##
Disable-ScheduledTask -TaskPath "\Microsoft\Windows\AppxDeploymentClient\" -TaskName "Pre-staged app cleanup"

##Set Language Pack Content Stores##
[string]$LIPContent = "D:"

$language = "ja-jp"

Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Basic-${language}-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Handwriting-${language}-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-OCR-${language}-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-Speech-${language}-Package~31bf3856ad364e35~amd64~~.cab
Add-WindowsPackage -Online -PackagePath $LIPContent\Microsoft-Windows-LanguageFeatures-TextToSpeech-${language}-Package~31bf3856ad364e35~amd64~~.cab
$LanguageList = Get-WinUserLanguageList
$LanguageList.Add(${language})
Set-WinUserLanguageList $LanguageList -force

Before

Before

After

After