Edge ブラウザのスタートアップ ページを変更する方法 (ただし Scripting Guy にインスパイアされたので PowerShell とかで…)

皆さんごきげんよう。本記事は、2021 年 6 月 21 日（米国時間）ポストされた **[How to Change the Start Page for the Edge Browser](https://devblogs.microsoft.com/powershell-community/how-to-change-the-start-page-for-the-edge-browser/)** の速報的なアレというか意訳のようななにかとなります。内容については下記が原文です。
今回は書いといてなんですが、やりたいことに比して、ここまでやる必要あった？！というノリが、きわめて Scripting Guy 的な内容でした。うっかり手元で試しちゃった。

https://devblogs.microsoft.com/powershell-community/how-to-change-the-start-page-for-the-edge-browser/

長さ : ふつう。おやつ食べながら読むほどではない。たぶんいじってみたくなるので、両手は空いている方がいいと思うです。（※個人的見解）

-------------------------

Q: ねえ、Edge のスタート ページを自分好みに変更したいのですけど、どうしたらできるのかしら？
A: あらあなた、そんなの PowerShell ですわよ。**PowerShell 使えば簡単にスタート ページをあなた好みに変更することができましてよ**。

> uikou 注 : PowerShell でどうにかしようというあたり、どうかしている（誉め言葉）

#Edge とその愉快なスタート ページについて
### はじめに : 記事の前提は Edge Chromium であることになります
この記事は、Edge ブラウザの最新版である **[Edge Chromium](https://www.microsoft.com/ja-jp/edge?r=1)** に基づいた内容です。
(注 : ↓ ここからダウンロードできるやつです。)

https://www.microsoft.com/ja-jp/edge?r=1

また、2021 年 6 月 21 日 (米国時間) 現在、最新バージョンの Windows 10 と Windows Server 2022 での動作確認をしているようです。

なお、他のブラウザでは、スタート ページへのアプローチの仕組みが異なる場合があるので、そしてこれまで通り、E&OE  (Errors and Omissions Excepted) でおねがいします。

> uikou 注 : E&OE - 早い話が、なんかあっても法的責任とかは勘弁してねということですね。ブログとかで見たの初めてかも…。ただ、レジストリを操作するところなどもあるので、対応にはご注意ください。
> <font color="Red"> **警告** : レジストリ エディターまたは別の方法を使用してレジストリを誤って編集すると、深刻な問題が発生することがあります。 このような問題が発生した場合は、オペレーティング システムの再インストールが必要になることがあります。 こうした問題の修復について、マイクロソフトはいかなる保証もいたしません。 レジストリの変更はユーザー自身の責任において行ってください。</font>

Edge ブラウザを起動すると、デフォルトでは Bing をベースにしたスタート ページが表示されます。コンテンツを閲覧してから好きな場所に移動できるので、これで問題ないやという方も多くいらっしゃると思います。しかし、状況によっては、この既定の動作をを変更したい場合がありますよね。

スタートアップ ページを自分で設定する簡単な方法は、regedit (レジストリ エディタ）を用いて、ローカルマシン上で 2 つのレジストリ値エントリを設定することです。

###1. 指定 URL の有効化キーをセットする
1つ目は、レジストリキー **Computer\HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge** 配下に、値 `RestoreOnStartup` を設定することです。RestoreOnStartup のエントリは、REG_DWORD です。この**エントリの値を 4 に設定する**ことで、Edge の起動時にデフォルトのページではなく、別途、指定した URL が有効になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1529732/8e0a9352-1b28-6e1f-67da-486d81996876.png)
> uikou 注 : 何もしない状態だと、Computer\HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\ **Edge** なんてキーありません。自分で作る必要があります。

###2. 起動時の URL をレジストリ キーにセットする
次に、Edge 起動時のページの URL をセットする必要があります。下記のレジストリ キー（型は REG_DWORD) に、起動時に開きたいページの URL を指定します。以下の例だと、https://www.microsoft.com/ja-jp/ が起動先として指定されている状態になります。

**Computer\HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Edge\RestoreOnStartupURLs**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1529732/d6017529-b8df-e36a-6893-9b33b48c8889.png)

ちなみに、起動時に Edge が複数のページを表示するように設定することもできます。

各レジストリ値は、一意のエントリ名を持ち、起動時に Edge に復元させたい URL を含む必要があります。ちなみに、**値のエントリ名は重要ではないらしく、雑に 1 とかでも構いません。**2 つめの URL が必要な場合は、2 つ目の値エントリを追加して、名前を 2 とかにして、値に開きたいページの URL を指定するとよいようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1529732/5ead2ad3-7c0b-83a8-06e9-fcea93853d4d.png)

これらのキーおよび、キー値を作成、設定すると、現在のユーザーの設定で有効化されます。複数のユーザーでマシンを共有していて、全ユーザーに対して同じスタート ページを持たせたい場合は、HKCU:Software\Policies にこれらのエントリを作成することができます。

#Edge Chromium のホームページ設定を PowerShell でやってみる
Edge が起動したときに開くページを、会社のイントラネットのランディング ページや、SharePoint のプロジェクト サイトなどお好きなものを選択できます。また、スタートアップ ページを、Duck Duck Go などの別の検索エンジンのホームページにすることもできます。前述のように、複数のスタートアップ ページを設定することもできますので、必要に応じて選択してみてください。

PowerShell では、`New-Item` コマンドレットを使用してレジストリ キーを作成します。キーを作成しようとする前に、キーが存在するかどうか、事前にテストする処理を入れ込むことをおすすめします。値のエントリは、`Set-ItemProperty` コマンドレットを使用して設定します。

次の PowerShell のコード スニペットは、Edge Chromium の現在のユーザーのデフォルトのホームページを Microsoft のトップのページに設定しています。

* PowerShell の例

```diff_powershell
# すでに対象のキーがあるかをチェック
$EdgeHome = 'HKCU:\Software\Policies\Microsoft\Edge'
If ( -Not (Test-Path $EdgeHome)) {
  New-Item -Path $EdgeHome | Out-Null
}
# RestoreOnStartup キーの値をセット
$IPHT = @{
  Path   = $EdgeHome 
  Name   = 'RestoreOnStartup' 
  Value  = 4 
  Type   = 'DWORD'
}
Set-ItemProperty @IPHT -verbose
# スタートアップ URL を指定するレジストリ キーを作成
$EdgeSUURL = "$EdgeHome\RestoreOnStartupURLs"
If ( -Not (Test-Path $EdgeSUURL)) {
  New-Item -Path $EdgeSUURL | Out-Null
}
# ここで URL を指定
$HOMEURL = 'https://www.microsoft.com/ja-jp/'
Set-ItemProperty -Path $EdgeSUURL -Name '1' -Value $HomeURL
```

> **uikou 注 : PowerShell でスクリプト実行する際のポリシー変更がいちいち面倒臭い人に**
> コマンドレット一発実施で済むのであれば、PowerShell を管理者権限で起動してそこに張り付けて実施するのでよいのですが、上記のコードのように長い場合は、*.ps1 ファイル（PowerShell スクリプト) として保存するのが良いです。
> ただ、この ps1 ファイルを実行するのはちょっと面倒。普段 PowerShell 何て激しく実行なんてしないよー、という人の環境では、実行ポリシーを変更する必要があるんですね。
> そんなわけで、[Set-ExecutionPolicy コマンド](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1)を使う必要があるのですが、いちいち面倒なので、バッチファイルにしておくと楽です。
> バッチで Set-ExecutionPolicy を実行すると、バッチ実行時のセッションでのみポリシーが変更になるので、実行後わざわざ戻す必要がありません。

https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1

> 以下、c:\temp 配下に、PowerShell のスクリプトを **edgetest.ps1** というファイル名で配置した場合のバッチファイルです。ps1 ファイルを実行したあと、バッチファイルの処理を一時停止する pause コマンドを入れています。

```diff_batchfile
powershell -ExecutionPolicy RemoteSigned -File c:\temp\edgetest.ps1
pause
```

> このバッチファイルを、c:\temp 配下に、**testbat.bat** として保存して実行した例が下記です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1529732/12bf142b-d691-3f22-3c0a-42786559b5b9.png)

なお、実行後は、Edge のプロセスを全部落としてから、再度開きなおしてください（どうも反映されないな～という人は全部落としてから！！）

> **uikou 注** : ちなみに、この設定、Edge のプロセスが全部落ちてる状態で、起動したときのみ反映されるようで、一旦開いてしまえば、その後 New Tab を開いても、このレジストリで設定した画面ではなく、おなじみのタブが開かれます。また edge を全部落として、再度立ち上げると、レジストリで設定されたページが開きます。ややこしい。

#他のやりかた
PowerShell を使う事で、他にも Edge のスタートアップ ページを変更する方法があります。[Microsoft のサポートの記事](https://support.microsoft.com/en-us/microsoft-edge/change-your-browser-home-page-a531e1b8-ed54-d057-0262-cc5983a065c6)で紹介されているように、ブラウザの設定で対応も可能です。また、WMIを使ってレジストリの設定を行うこともできます。最後に、[グループ ポリシーを使ってブラウザのスタートアップ ページを設定する](https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.MicrosoftEdge::HomePages)のも簡単です。

https://support.microsoft.com/en-us/microsoft-edge/change-your-browser-home-page-a531e1b8-ed54-d057-0262-cc5983a065c6

https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.MicrosoftEdge::HomePages

#一言でいうとどういうことなんだってばよ（今回の記事のまとめ）
Web ブラウザ Edge のスタートアップ ページは、いくつかのレジストリ キーを設定するだけで、簡単に変更することができます。

> uikou 注 : ほんと、文字通り**プロセスのスタートアップ時だけ有効**なんですけどね。

#僕の心からの感謝の言葉 (Tip of the Hat)
この記事は、過去、確かな技術力と、~~<font color="LightGray">ちょっとマッドな</font>~~ウイットがきらりと光る **Scripting Guys** のブログ **[How Can I Change the Internet Explorer Home Page](https://devblogs.microsoft.com/scripting/how-can-i-change-the-internet-explorer-home-page/)** に書かれたものをベースにしています。なお、誰が書いたか、ワイは知らんです。

https://devblogs.microsoft.com/scripting/how-can-i-change-the-internet-explorer-home-page/

> uikou 注 : **Scripting Guy どこ行ったんだろう**と思ったらどうもここにおられるようです。
> *The "Scripting Guys" is a historical title passed from scripter to scripter. The current revision has morphed into our good friend Doctor Scripto who has been with us since the very beginning.*
> 称号が、また一つ受け継がれたようで…。

https://devblogs.microsoft.com/scripting/

----------------

以上、[Thomas](https://devblogs.microsoft.com/powershell-community/author/tflpsp-co-uk/) さんからでした。
![Thomas](https://secure.gravatar.com/avatar/0ac76ca825380de54163d628b1c9b1f3?s=96&d=mm&r=g)
それではみなさん、ごきげんよう。