GPOとPowerShellを使ってWindowsにフォントを一括インストールする方法
この記事では、Active Directoryドメイン環境において、グループポリシー(GPO)とPowerShellスクリプトを使用して、ドメイン内のコンピューターにフォントを追加インストールする方法を解説します。本ガイドは、Windows 10 20H2およびWindows Server 2016/2019で動作確認済みです。
目次
- GPOによる新しいフォントの展開
- PowerShellログオンスクリプトでフォントをインストールする
GPOによる新しいフォントの展開
インストールしたいフォントが数個程度であれば、グループポリシーだけで対応できます。Windowsにフォントをインストールするには、*.ttfファイルをクライアントコンピューターの%WindowsDir%\Fonts\フォルダーにコピーし、レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fontsに新しいフォントの情報を登録します。
- TTFフォントファイルをファイルサーバー上の共有ネットワークフォルダーにコピーします(フォント数が少ない場合は、ドメインコントローラーのSYSVOLフォルダーに格納しても構いません)。

- グループポリシー管理コンソール(
gpmc.msc)を開き、新しいポリシー「GPO_InstallFonts」を作成して、コンピューターが所属するOUにリンクします。
- 作成したポリシーを編集します。
- グループポリシーの基本設定(GPP)で新しい項目を作成し、共有フォルダーからクライアントデバイスの
%WindowsDir%\Fonts\へフォントファイルをコピーします。[コンピューターの構成] → [基本設定] → [Windows の設定] → [ファイル]に移動し、以下のパラメーターで新しい項目を作成します。
ソース:\\woshub.com\SYSVOL\woshub.com\scripts\Fonts\Roboto-Black.ttf
ターゲット:%WindowsDir%\Fonts\Roboto-Black.ttf - 次に、新しいフォントの情報をレジストリに登録します。GPOでレジストリを変更する場合も、GPP([コンピューターの構成] → [基本設定] → [Windows の設定] → [レジストリ])が利用できます。
- レジストリ値は手動で指定することもできますが、参照用コンピューターにフォントをあらかじめ手動でインストールしておき、レジストリウィザード([コンピューターの構成] → [基本設定] → [Windows の設定] → [レジストリ] → [新規作成] → [レジストリ ウィザード])を使って設定をエクスポートする方が簡単です。

- レジストリブラウザーでリモートコンピューターのHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fontsキーに移動し、インストールしたいフォント名を含むレジストリ項目を見つけて選択します。

- 選択したレジストリパラメーターがGPOエディターに表示されます。

その後、クライアントコンピューターでGPO設定を更新し、新しいフォントファイルが正しくインストールされたことを確認してください。Windows 10では、[設定] → [個人用設定] → [フォント]からインストール済みフォントの一覧を確認できます。

もしフォントファイルがインストールされていない場合は、gpresultツールを使ってポリシーが対象コンピューターに割り当てられているかどうかを確認してください。その後は、通常のGPO適用時のトラブルシューティング手順に従って問題を解決します。
PowerShellログオンスクリプトでWindowsフォントをインストールする
上記のGPOを使った方法は、インストールするフォントが少数の場合に有効です。多数のフォントファイルを一度にインストールしたい場合は、フォントごとに個別のポリシー設定を作成するのは非常に手間がかかるため、PowerShellスクリプトを使うのがおすすめです。
以下のPowerShellスクリプトは、指定した共有フォルダー内にあるすべての*.ttfおよび*.otfフォントファイルをインストールします。また、WriteLog関数を使ってすべての操作をログファイルに記録します。
function WriteLog
{
Param ([string]$LogString)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
$LogMessage = "$Stamp $LogString"
Add-content $LogFile -value $LogMessage
}
$Logfile = "C:\Windows\posh_font_install.log"
$SourceFolder = "\\woshub.com\SYSVOL\woshub.com\scripts\Fonts"
Add-Type -AssemblyName System.Drawing
$WindowsFonts = [System.Drawing.Text.PrivateFontCollection]::new()
Get-ChildItem -Path $SourceFolder -Include *.ttf, *.otf -Recurse -File |
Copy-Item -Destination "$env:SystemRoot\Fonts" -Force -Confirm:$false -PassThru |
ForEach-Object {
WriteLog "Installing font file $_.name"
$WindowsFonts.AddFontFile($_.fullname)
$RegistryValue = @{
Path = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts'
Name = $WindowsFonts.Families[-1].Name
Value = $_.Fullname
}
$RemoveRegistry = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
Remove-ItemProperty -name $($WindowsFonts.Families[-1].Name) -path $RemoveRegistry
New-ItemProperty @RegistryValue
}

このスクリプトをPS1ファイルとして保存し、GPOのログオンスクリプトとして実行するように設定します。
これにより、指定したフォルダー内のすべてのフォントファイルがWindowsに自動的にインストールされ、インストール日時もログに記録されます。

なお、Windowsから追加フォントをすべて削除して既定の状態に戻したい場合は、専用ガイドの手順に従ってください。
-
Windows 10にフォントをインストールする方法|初心者向けに5つの手順を徹底解説
目立つテキストを使った新しいドキュメントを作りたいなら、新しいフォントのインストールを検討してみてはいかがでしょうか。フォントはオンラインで無料で入手できるほか、フォントセットの一部として、あるいは有料で購入することも可能です。ただし、他の人にもそのフォントを見てもらいたい場合は、PDFや画像などの静的なファイルとして使用する必要があります。そうでなければ、相手側にもフォント本体を提供しなければなりません。 Windows 10にフォントをインストールする方法はいくつかあります。オンラインソースから手動でダウンロードしてインストールする方法、Microsoft Storeから直接インストール
-
Windows 10にフォントをインストールする方法|無料・有料フォントの入手から確認・管理まで完全ガイド
フォントとは、テキストの見た目を変えるデジタルの手書き文字のようなものであり、文章全体の印象を大きく左右する要素です。フォントにはさまざまなスタイルがあり、それぞれに個性があります。適切なフォントを選べば、文章が読みやすくなるだけでなく、コンテンツにドラマチックな演出効果を与えることもできます。Windows 10には多くのフォントがプリインストールされており、追加でインストールするサードパーティ製アプリにも、それぞれ専用のフォントが同梱されています。 しかし、特定のフォントを新たにインストールしたい場合や、Windows 10にインストール済みのフォントをすべて確認して不要なものを整理したい