先日surface Pro 4を修理に出して、完全に交換されて戻ってきたのでまっさらな状態。
で、これを機に以前から知っていた「Boxstarterで初期セットアップの自動化」というのにチャレンジしてみた。
結論から言うと、「専門的な知識無しで導入可。自動でやってくれる部分は多いが、自分のやってほしいことを全部やってくれるわけじゃない。でもやっておけばめっちゃ楽。」という感じ。やればハマる。
概要
Boxstarterがほとんどやってくれる。おおまかな手順としては
- インストールしてもらうソフト、設定してもらうWindowsの設定を書いたスクリプトを準備(1度作れば後は追記のみ)
- PowerShellかコマンドスクリプトを立ち上げて、Boxstarterをインストール(どうも公式からzipファイルを落としても、インストーラーが入っているわけでもなく、batファイルを実行せよってだけだから、結局は自分でコマンド打つ方が早い(後述))
- 作っておいたスクリプトを読み込ませる
以上。あとは自動でやりきれなかった部分を手動でやるだけ。Officeの有効化とか。
詳細
1 スクリプトの準備
まずはスクリプトの準備。普通のテキストファイルでOK。自分はネット上で保存している(後述)。
以下は自分の非常にシンプルなスクリプト。
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions Enable-RemoteDesktop Disable-GameBarTips cinst GoogleChrome cinst sublimetext3 cinst androidstudio cinst avastfreeantivirus
- 1行目 「隠しファイル・フォルダを表示する」+「OSのシステムファイルを表示する」+「拡張子を表示する」を同時に設定
- 2行目 リモートデスクトップを有効にする
- 3行目 ゲームに関するヒントを無効にする(Windows10が「これはゲームか」と思ったソフトを立ち上げると「録画できますよ」とか言ってくるやつ)
- 4行目以降 各ソフトのインストール
どんなソフトがどんなコマンドでインストールできるのかはChocolatey Software | Packagesで探す。
>choco install ソフト名
という部分が有効なコマンド。choco install
とcinst
は同じ意味なので、このサイトで見つかればそのソフトはスクリプトに追記できるということ。逆に見つからなければ手動で入れないといけない。
- BoxstarterはChocolatey(チョコレイティ:コマンドでソフトをダウンロード~インストールしてくれるソフト)というソフトを活用して、各ソフトをインストールしているので、ChocolateyでインストールできるソフトはBoxstarterでもインストールできるという仕組み。
- どんなソフトがインストールできるのか探してみれば分かるかもしれないけど、ほとんどはプログラマーとかエンジニアが喜びそうなものばかり。
- 最初はあれこれ欲張らず、ブラウザとアンチウィルスソフトぐらいでいいと思う。後から「
cinst
コマンドでインストールできるかどうか自分でやってみて確認→できたらスクリプトに追記」とすればよい。これを「スクリプトを育てる」と言う(今決めた)。スクリプトの育て方は別記事にまとめているのでそちらを参照。
- スクリプトをネット上に保存する手段としてBoxstarter公式でも紹介されているのが、GitHub Gist。コードを書いて保存する、ただそれだけのサイト。ここから他の人が書いたコードが探せる。このサイトの使い方は別記事にまとめているのでそちらを参照。
2 Boxstarterインストール
管理者としてPowerShellを立ち上げる。方法は調べたら出てくるはず。簡単に言うと「Windowsのスタートボタンを右クリックすると出てくるメニューの中にある」。
立ち上げたら以下のコマンドをコピペしてEnter。
Set-ExecutionPolicy RemoteSigned
然る後に、以下のコマンドをコピペしてEnter。
. { iwr -useb https://boxstarter.org/bootstrapper.ps1 } | iex; Get-Boxstarter -Force
- 1つ目のコマンドは「ローカルに保存された
.ps1
ファイル全ておよび外部から取得した署名付き.ps1
ファイルの実行を許可する」という設定。デフォルトではRestricted
に設定されていて、このままでは外部はおろかローカルに保存されたps1
ファイルすら実行できない。Unrestricted
に設定してもいいかもしれない(Unrestricted
はすべての.ps1
ファイルを実行するけど、外部から取得したものについては一応実行してよいかどうかの確認がある)。-Scope Process
というオプションを付けると、今実行しているPowerShellのウィンドウのみの適用となって、ウィンドウを閉じるとExecutionPolicyの設定は元に戻る。
- 2つ目のコマンドはBoxstarterのインストールコマンド。おそらくネットから
.ps1
ファイルを取得してそのままよしなに実行せよ、ということ。詳しいことは不明。
3 作っておいたスクリプトを実行
Boxstarterのインストールが終わったら、以下のコマンドを実行。
Install-BoxstarterPackage -PackageName (スクリプトのパス、またはGistに保存したスクリプトのRawファイルのURLを貼り付け) -DisableReboots
スクリプトはローカル保存のやつでもいいけど、新品のPCにファイルを移すって意外と面倒なのでネットから取ってくるようにしている訳で、取ってくるファイルは生のtxt
ファイルが良い。これが簡単にできるのがGitHub Gist。そういうこと。
Gistに保存したスクリプトのRawファイルというのは、

ここをクリックすると出る。そのURLをコピペ。
まとめ
一度スクリプトを作っておけば、新PC上でやることはPowerShellで3つのコマンドを打つだけ。簡単すぎる。
ちなみにこの後手動でやった設定はこちら。
- 自宅PCとの共有設定
- PC起動時に立ち上がるソフトの確認
- Officeのインストール&ライセンス認証
これを自動化しようと思うと手間がかかりそうだから、別に手動でいい。
参考
自動化を愛するWindows使いへ Boxstarterのすすめ | re-imagine
https://torumakabe.github.io/post/intro_boxstarter/
Boxstarter で快適なセットアップを – Qiita
https://qiita.com/mihochannel/items/b7d2bfd8ecc5abaf84a5
Boxstarter · GitHub
https://gist.github.com/ikkou/11243137
PCセットアップを自動化しよう!Boxstarter | cloud.config Tech Blog
https://tech-blog.cloud-config.jp/2019-12-20-pcsetup-automation-boxstarter/
Boxstarter
https://boxstarter.org/Learn/WebLauncher
Boxstarter Windowsの設定に関するコマンド
https://boxstarter.org/WinConfig
Boxstarter で快適なセットアップを – Qiita
https://qiita.com/mihochannel/items/b7d2bfd8ecc5abaf84a5
ピンバック: 【Boxstarter】スクリプトの育て方 | Takeshi's Blog