GUIポチポチは卒業!Windowsキッティング自動化スクリプト入門【前編】

PC

製造業の情シス部門に配属された皆さん、そして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)」のテクニックを伝授します。

お楽しみに!

コメント

タイトルとURLをコピーしました