製造業の情シス部門に配属された皆さん、そしてPCセットアップの山を前に途方に暮れている皆さん、こんにちは。
以前の投稿では、「PCセットアップ(キッティング)とは何か」という概念についてお話ししました。今回は、その作業を「手作業のGUIポチポチ」から「無人化・自動化」へと昇華させるための第一歩、WindowsバッチファイルとPowerShellの基礎知識について解説します。
「たかがスクリプト」と侮るなかれ。ここには、情シスエンジニアとして一生モノのスキルが詰まっています。
なぜ、「スクリプト」で自動化すべきなのか?
「数台くらいなら手で設定したほうが早い」——そう思うかもしれません。しかし、現場のITを支える立場として、スクリプト化には単純な「時短」を遥かに超える、2つの重要な意味があります。
① 「楽」で「確実」だから
人間は必ずミスをします。IPアドレスの打ち間違い、特定ソフトウェアのインストール忘れ……。1台ならすぐリカバリできても、10台、50台となったとき、手作業は「負債」に変わります。スクリプトは、一度正しく書きさえすれば、何度でも100%同じ結果を叩き出してくれます。
② 【最重要】利用者に「確実な作業」をしてもらうため
これが現場のリアルです。情シスがすべてのPCを直接セットアップできるとは限りません。工場内の特定ラインや遠方の事業所など、各部門の利用者に「このソフトをインストールしておいてください」とお願いするケースは多々あります。
しかし、画面キャプチャだらけの複雑な手順書を渡して「自己責任でやってね」とお願いしても、手順飛ばしや「次へ」の押し間違いが必ず発生します。結局、動かなくて情シスが呼び出され、本来の業務が止まってしまうのです。
「このファイルをダブルクリックして、画面が消えるまで待つだけで終わります」
この状態を作ることこそが、ITリテラシーの異なる利用者を守り、同時に我々情シス自身を救う最大の防御策なのです。
武器を知る:バッチファイルとPowerShellの違い
Windowsには、自動化のための武器が主に2つ用意されています。
バッチファイル(.bat / .cmd): 古くからある技術で、コマンドプロンプトの操作を上から順番に実行してくれます。ファイルのコピーなど、シンプルで直線的な処理が得意です。「どのWindows環境でも、ダブルクリックで確実に動く」のが最大の強みです。
PowerShell(.ps1): 現代のWindows管理の主役です。単なるテキストではなく、OSの深い部分(ネットワーク設定やレジストリなど)を「オブジェクト」として細かく・強力に制御できます。
学習のステップとしては、まず直感的なバッチファイルでファイル操作の基礎を固め、高度な設定が必要になったらPowerShellを組み合わせる「ハイブリッド運用」を目指します。
【実践ステップ1】バッチファイルの基礎(ファイル操作)
自動化の第一歩は、ファイルのコピーや配置です。業務で使う共通のショートカットや設定ファイルを、所定のフォルダに配る処理を書いてみましょう。
▼実行するコード▼ copy /Y “.\config\setting.ini” “C:\AppConfig”
・使用例の解説: カレントディレクトリ(実行場所)の config フォルダにある setting.ini を、Cドライブの AppConfig フォルダにコピーします。 ・重要なポイント: 末尾の /Y は「同名のファイルがすでに存在していても、確認メッセージを出さずに上書きする」という命令です。自動化において「ユーザーにYes/Noを選択させる画面を出さない」ことは鉄則です。
【実践ステップ2】「スイッチ」という魔法の概念
ソフトウェアをインストールする際、通常はインストーラーを起動して「次へ」を何度もクリックします。しかし、多くのインストーラーには、画面を出さずにインストールを完了させる「スイッチ(引数)」という隠しコマンドが存在します。
スイッチとは、プログラムに対して「こういう動作をしてね」と指示を与えるための、/ や – で始まる文字列のことです。
▼実行するコード▼ start /wait .\setup.exe /S
・使用例の解説: setup.exe を画面表示なし(サイレント)で実行し、インストールが完全に終わるまで次の処理に進まずに待機します。 ・重要なポイント: setup.exe の後ろにある /S が「サイレントインストール」を指示するスイッチです。また、キッティングでは複数のソフトを連続で入れるため、start /wait を付けて「前のインストールが終わるまで待つ」ように制御しないと、処理が衝突してエラーになります。
現場の知恵:スイッチの見つけ方 スイッチの文字はソフトウェアによって異なります(/S, /q, /qn, /silent など)。コマンドプロンプトを開き、インストーラーに対して setup.exe /? や setup.exe –help と入力して実行すると、使えるスイッチの一覧が表示されることが多いので、まずは調べてみる癖をつけましょう。
【実践ステップ3】バッチからPowerShellへの橋渡し
ネットワーク設定の変更やPC名の変更など、バッチでは力不足な場面でPowerShellの出番となります。しかしここで壁にぶつかります。PowerShellのスクリプトファイル(.ps1)は、セキュリティの制限(実行ポリシー)により、標準状態ではダブルクリックで実行できません。
そこで、「バッチファイルの得意技を使って、一時的に制限を突破してPowerShellを呼び出す」というテクニックを使います。ここからバッチファイルは「最強のランチャー(起動係)」として活躍します。
▼実行するコード▼ powershell -ExecutionPolicy Bypass -File .\setup.ps1
・使用例の解説: セキュリティ制限(ExecutionPolicy)を「Bypass(一時的に無視)」して、同じフォルダにある setup.ps1 を実行します。 ・重要なポイント: この1行を書いたバッチファイル(launcher.bat など)を用意し、ユーザーには「このバッチをダブルクリックしてね」と伝えます。これで、裏側では強力なPowerShellがエラーなく起動します。
【実践ステップ4】PowerShellでの初期設定(ホスト名・ネットワーク)
バッチから呼び出されたPowerShellで、実際にOSの設定をいじってみましょう。GUI(設定画面)を開いて手入力するとミスが多発する「コンピューター名の変更」や「IPアドレスの固定」も、PowerShellなら確実に処理できます。
▼コンピューター名を変更するコード▼ Rename-Computer -NewName “FACTORY-PC01” -Force
・使用例の解説: コンピューター名を「FACTORY-PC01」に変更し、-Force スイッチで確認画面を出さずに強制適用します。
▼固定IPアドレスを設定するコード▼ New-NetIPAddress -InterfaceAlias “イーサネット” -IPAddress “192.168.1.100” -PrefixLength 24 -DefaultGateway “192.168.1.1”
・使用例の解説: 「イーサネット」という名前のネットワーク接続に対して、指定したIPアドレス、サブネットマスク(PrefixLength 24 は 255.255.255.0 の意味)、デフォルトゲートウェイを一発で設定します。手打ちによる第4オクテットのミスなどを完全に防げます。
前編のまとめ
今回は、自動化が必要な真の背景と、バッチファイル・PowerShellの基礎、そして「スイッチ」の概念について解説しました。
・スクリプトは、利用者に確実な作業をしてもらうための「思いやり」である。 ・バッチは「ランチャーとファイル操作」、PowerShellは「OSの精密な設定」に使う。 ・/S や -Wait など、コマンドの挙動を操る「スイッチ」を使いこなす。
これらができるようになるだけで、情シスのキッティング業務は劇的にスマートになります。まずは手元の検証用PCで、バッチファイルからPowerShellを呼び出すところから始めてみてください。
さて、次回の【後編】では、さらにプロの領域に踏み込みます。 数十台規模の展開でもエラーを見逃さない「ログ出力の仕組み」や、再起動を跨いでも自動で続きが始まる「完全無人化(RunOnceとAutoLogon)」のテクニックを伝授します。
お楽しみに!


コメント