---
title: クライアントでPowerShellを使ってみて
tags: 
author: [松井 敏](https://convert.docswell.com/user/binnmti)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9J2Y2L8WJR.jpg?width=480
description: クライアントでPowerShellを使ってみて by 松井 敏
published: October 09, 24
canonical: https://convert.docswell.com/s/binnmti/5EXEVR-2024-10-09-150134
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9J2Y2L8WJR.jpg)

クライアントで
PowerShellを使ってみて
Write by 松井敏
第 6 回 PowerShell 勉強会
2016-04-09


# Page. 2

![Page Image](https://bcdn.docswell.com/page/DEYGYQ69EM.jpg)

Myself
名前:松井 敏 a.k.a 森理 麟
所属:株式会社Codeer
著書: Unity5 3Dゲーム開発講座
表彰:Microsoft MVP
サイト: http://karaage.click
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJNGPKZD78.jpg)

今日話すこと
そもそもやりたかったこと
ま、作ってみる
が、クライアント環境ならで
はの問題点
で、理想の環境設定
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YE9W3VZ8E3.jpg)

そもそもやりたかっ
たこと
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GE8NMP1Z7D.jpg)

当時、僕の仕事は環境整備
やりたかった
こと
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LELP31Q17R.jpg)

CIやCDを駆使して大分環境を
自動化していた
やりたかった
こと
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JM4DW157W.jpg)

ただ今まで環境がなかったデ
ザイナなどの設定するため、
事前準備が結構あった。
やりたかった
こと
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PJRW4YLZ79.jpg)

僕自身が設定したり、同じ説
明を繰り返したりするのが手
間だし時間がかかる
やりたかった
こと
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/PEXP2GW17X.jpg)

やりたかった
こと
スタジオ全体だったので、新
人が入ったり、パソコンの入
れ替えがあったりと年単位で
見ても結構回数もあった
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/3EKDM4VMJD.jpg)

マニュアルも書いたりもして、
これやっといてーとしたけれ
ど、トラブルことも多かった
やりたかった
こと
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L73RYLM2J5.jpg)

じゃどうすれば楽になるの
か？
やりたかった
こと
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/87DY5N667G.jpg)

バッチを一つ用意して、これ
を叩いたら環境設定全部終わ
るよーが理想
やりたかった
こと
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJP6GNZZE8.jpg)

Bootstrap.batを作る！
やりたかった
こと
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/2EV36KWM7Q.jpg)

ま、作ってみる
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/57G3NQDXJL.jpg)

というわけで作ってみようと
思った
で、作ってみ
る
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EQ5QK15JP.jpg)

で、作ってみ
る
ツール、 Gitとかrubyとかの自
動インストール
環境変数の設定
バージョン管理の自動ダウン
ロード
バッチとか叩く。コピーとか
半日とかかかるので終了連絡
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/KJ49NPRV71.jpg)

で、作ってみ
る
バッチで出来ることも限られ
ているなー。出来るかもしれ
ないけれどできないかもしれ
ない。
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE1K59Q4JG.jpg)

そんな時にちょっと興味を持
ち始めていたのがPowerShell。
で、作ってみ
る
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GEWD5QMZJ2.jpg)

じゃあPowerShellで作って見よ
うかなと
で、作ってみ
る
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/47ZGNWQLE3.jpg)

で、作ってみ
る
インストールはmsiを叩くだけ
で意外といけた
環境変数も出来る君
バッチとかは勿論叩けた
メールも意外とサクッと
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/YJ6Y8G6M7V.jpg)

でけた。でけた。
で、作ってみ
る
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJ5G9V6QJ4.jpg)

最終的にはbootstrap.batにし
て、これを叩いたらインス
トール完成！な感じ
で、作ってみ
る
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9E2Y23MWER.jpg)

さらにchocolateyを知る。め
ちゃ便利
で、作ってみ
る
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/D7YGY1X97M.jpg)

Choco install git
Choco install ruby
で、作ってみ
る
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VENGP21DJ8.jpg)

で、作ってみ
る
これだけ
インストールの環境設定は
powershellなら行けるなーとい
う感触
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/Y79W315873.jpg)

が、クライアント環
境ならではの問題点
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G78NM4YZJD.jpg)

実験では意外と上手くいって
いたけれど、問題点がそれは
それは一杯あった
が、クライア
ント環境なら
ではの問題点
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/L7LP3641JR.jpg)

そもそもbatが動かないケース
もある
が、クライア
ント環境なら
ではの問題点
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/4EM4D5K5JW.jpg)

ユーザーアカウント制御とか
で、一行目でアウト！
が、クライア
ント環境なら
ではの問題点
powershell Set-ExecutionPolicy
RemoteSigned
powershell .\main.ps1 powershell
Set-ExecutionPolicy Restricted
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/PERW43XZJ9.jpg)

「管理者権限で実行して
ねー」は意外と口頭では伝わ
らない
が、クライア
ント環境なら
ではの問題点
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/P7XP2461JX.jpg)

インストールが途中で失敗す
ることもある
が、クライア
ント環境なら
ではの問題点
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/37KDMZ1MED.jpg)

新しいrubyと古いrubyが両方
入っていたり
が、クライア
ント環境なら
ではの問題点
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LJ3RYDQ2E5.jpg)

が、クライア
ント環境なら
ではの問題点
サイレントインストールだと
パスが書かれてなかったり、
新バージョンでパスが変わっ
たり
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/8JDY5P96JG.jpg)

パス文字列が2048文字超えた
り
が、クライア
ント環境なら
ではの問題点
34


# Page. 35

![Page Image](https://bcdn.docswell.com/page/VEP6GN9Z78.jpg)

バージョンアップしたらサイ
レントインストールが動かな
くなったり
が、クライア
ント環境なら
ではの問題点
35


# Page. 36

![Page Image](https://bcdn.docswell.com/page/27V36KMMJQ.jpg)

そういうエラー検地がまた難
しい
が、クライア
ント環境なら
ではの問題点
36


# Page. 37

![Page Image](https://bcdn.docswell.com/page/5JG3NQGXEL.jpg)

メールが届かなったり
が、クライア
ント環境なら
ではの問題点
37


# Page. 38

![Page Image](https://bcdn.docswell.com/page/47Q5QKX5EP.jpg)

メールが届きすぎたり
が、クライア
ント環境なら
ではの問題点
38


# Page. 39

![Page Image](https://bcdn.docswell.com/page/KE49NP6VJ1.jpg)

メール爆弾を作ってしまった
り
が、クライア
ント環境なら
ではの問題点
39


# Page. 40

![Page Image](https://bcdn.docswell.com/page/L71K59V4EG.jpg)

が、クライア
ント環境なら
ではの問題点
Gitのcheckoutがちゃんと動か
なかったり。
これは色々問題があって、全
消しが理想
でも時間はかかりすぎる
40


# Page. 41

![Page Image](https://bcdn.docswell.com/page/G7WD5QLZE2.jpg)

が、クライア
ント環境なら
ではの問題点
アンインストールも同様。で
もアンインストールは実はと
ても難しい。
冪統性がなさ過ぎて泣ける
41


# Page. 42

![Page Image](https://bcdn.docswell.com/page/4JZGNWML73.jpg)

が、クライア
ント環境なら
ではの問題点
冪統性
クライアントでの一番の問題
点は、この冪統性がとれない
こと
そしてクライアントで冪統性
を取ることは究極に難しいと
思う
42


# Page. 43

![Page Image](https://bcdn.docswell.com/page/YE6Y8GNMJV.jpg)

が、クライア
ント環境なら
ではの問題点
何故なら、毎日使っているパ
ソコンの環境は日々変わる
会社のような制限されている
環境ですら、隣の人と設定は
色々違うはず
究極にいえばクライアントに
同じパソコンなんてない
43


# Page. 44

![Page Image](https://bcdn.docswell.com/page/GE5G9V5QE4.jpg)

が、クライア
ント環境なら
ではの問題点
加えてアンインストールシス
テムに冪統性がなさすぎる。
完全な設定をするなら本来全
部更地にするのが一番
そうであればゴミが残ってい
てぶつかったり、他との依存
が解消できる
時間もかかりすぎるし現実的
にはほぼ不可能
44


# Page. 45

![Page Image](https://bcdn.docswell.com/page/972Y23NW7R.jpg)

が、クライア
ント環境なら
ではの問題点
もう一つ問題としてバージョ
ンアップの対応
もう1回bootstrap.bat叩いて
よーが理想
ところが消す処理が入ってい
ると再度やり直しで時間がか
かる
消さないとうまく入らないも
のもある
45


# Page. 46

![Page Image](https://bcdn.docswell.com/page/DJYGY1P9JM.jpg)

が、クライア
ント環境なら
ではの問題点
結局bootstrap.batの成功率は7
割ぐらい。その都度問題点も
違ったり、手動で再度やった
り再現しなかったりでなかな
か完全に潰すことはできず
46


# Page. 47

![Page Image](https://bcdn.docswell.com/page/V7NGP25DE8.jpg)

で、理想の環境設定
47


# Page. 48

![Page Image](https://bcdn.docswell.com/page/YJ9W31Y8J3.jpg)

色々話した結果、完全な
bootstrap.batを作るのはなか
なかになかなか
で、理想の環
境設定
48


# Page. 49

![Page Image](https://bcdn.docswell.com/page/GJ8NM46ZED.jpg)

でも、現状ではサーバーで理
想の方法が提案されている
で、理想の環
境設定
49


# Page. 50

![Page Image](https://bcdn.docswell.com/page/LJLP3691ER.jpg)

それがImmutable Infrastructure
で、理想の環
境設定
50


# Page. 51

![Page Image](https://bcdn.docswell.com/page/47M4D5Z5EW.jpg)

でも現実問題としてクライア
ント環境で全部消せば良い
じゃんはほぼ無理ゲー
で、理想の環
境設定
51


# Page. 52

![Page Image](https://bcdn.docswell.com/page/P7RW436ZE9.jpg)

で、理想の環
境設定
そうなると、これが現実的か
はまだ分からないけれど、や
はり仮想環境での新規設定が
一番良いかもしれない
52


# Page. 53

![Page Image](https://bcdn.docswell.com/page/PJXP24M1EX.jpg)

で、理想の環
境設定
サービスでもMVPとミニマム
で作ることこそが正義。だっ
たら開発環境もミニマムが一
番。
53


# Page. 54

![Page Image](https://bcdn.docswell.com/page/3JKDMZGM7D.jpg)

で、理想の環
境設定
実際問題1台のパソコンに2環
境を同時に整備することはと
てもハードルが高い。例えば
必要なソフトのバージョンが
違ったり
54


# Page. 55

![Page Image](https://bcdn.docswell.com/page/LE3RYDN275.jpg)

そうなると必要な環境毎に切
り分けられるしやはりミニマ
ムは強い。
で、理想の環
境設定
55


# Page. 56

![Page Image](https://bcdn.docswell.com/page/8EDY5PW6EG.jpg)

あ、Windows10でマルチデス
クトップとかそれが出来るか
と思ったけれど酷すぎた。。。
で、理想の環
境設定
56


# Page. 57

![Page Image](https://bcdn.docswell.com/page/V7P6GNXZJ8.jpg)

で、理想の環
境設定
ミニマムで作っておけばフ
リーズドライも出来る。おそ
らく昔の環境をバックアップ
したものは動かないと思う
57


# Page. 58

![Page Image](https://bcdn.docswell.com/page/2JV36KLMEQ.jpg)

で、理想の環
境設定
というわけで結論！
クライアントの完璧な環境設
定はかなりハードルが高い
これを実現するのであれば
Immutable Infrastructureしかな
いかな？
58


# Page. 59

![Page Image](https://bcdn.docswell.com/page/5EG3NQXX7L.jpg)

ご清聴ありがとうございまし
た
おわりに
59


