Windows PEでPowerShell GUIを作成する方法【初心者向け解決ガイド】

パソコンパソコン・スマホ教室
スポンサーリンク

Windows PE(Preinstallation Environment)は、Windowsのインストールや修復、トラブルシューティングに使用される軽量なオペレーティングシステムです。通常、コマンドラインインターフェース(CLI)で操作されますが、PowerShellを利用してGUI(グラフィカルユーザーインターフェース)を作成することで、より直感的な操作が可能になります。この記事では、初心者の方でも理解できるように、Windows PEでPowerShell GUIを作成する方法をステップバイステップで解説します。

スポンサーリンク

Windows PEにPowerShellを追加する方法

Windowsのイメージ

Windowsのイメージ

Windows PEにPowerShellを追加するためには、以下の手順を実行します

  1. Windows Assessment and Deployment Kit(ADK)とWinPEアドオンをダウンロードしてインストールします。
  2. Deployment and Imaging Tools Environmentを管理者として起動します。
  3. 以下のコマンドを実行して、WinPEの作業コピーを作成します
    copype amd64 C:\WinPE_amd64_PS
  4. 作成したWinPEイメージをマウントします
    Dism /Mount-Image /ImageFile:"C:\WinPE_amd64_PS\media\sources\boot.wim" /Index:1 /MountDir:"C:\WinPE_amd64_PS\mount"
  5. PowerShellに必要なオプションコンポーネントを追加します
        Dism /Add-Package /Image:"C:\WinPE_amd64_PS\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
        Dism /Add-Package /Image:"C:\WinPE_amd64_PS\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab"
        Dism /Add-Package /Image:"C:\WinPE_amd64_PS\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab"
        Dism /Add-Package /Image:"C:\WinPE_amd64_PS\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab"
        
  6. 変更をコミットしてイメージをアンマウントします
    Dism /Unmount-Image /MountDir:C:\WinPE_amd64_PS\mount /Commit
  7. USBドライブにブータブルメディアを作成します
    MakeWinPEMedia /UFD C:\WinPE_amd64_PS F:

これで、PowerShellが利用可能なWindows PE環境が整いました。

PowerShell GUIの作成方法

PowerShellを使用してGUIを作成するには、以下の手順を実行します

  1. PowerShellスクリプトを作成します。以下は、コンピュータ名を入力するフォームの例です
        Add-Type -AssemblyName System.Windows.Forms
        $form = New-Object System.Windows.Forms.Form
        $form.Text = "コンピュータ名の入力"
        $form.Size = New-Object System.Drawing.Size(300, 170)
        $form.FormBorderStyle = 'FixedDialog'
        $form.StartPosition = 'CenterScreen'
        $form.TopMost = $true
        $label = New-Object System.Windows.Forms.Label
        $label.Location = New-Object System.Drawing.Point(20, 20)
        $label.Size = New-Object System.Drawing.Size(260, 20)
        $label.Text = "コンピュータ名"
        $form.Controls.Add($label)
        $textBox = New-Object System.Windows.Forms.TextBox
        $textBox.Location = New-Object System.Drawing.Point(20, 50)
        $textBox.Size = New-Object System.Drawing.Size(260, 20)
        $form.Controls.Add($textBox)
        $okButton = New-Object System.Windows.Forms.Button
        $okButton.Location = New-Object System.Drawing.Point(100, 90)
        $okButton.Size = New-Object System.Drawing.Size(100, 30)
        $okButton.Text = "OK"
        $okButton.Enabled = $false
        $okButton.Add_Click({
          $computerName = $textBox.Text
          $tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment
          $tsenv.Value("OSDComputerName") = $computerName
          $form.Close()
        })
        $form.AcceptButton = $okButton
        $form.Controls.Add($okButton)
        $textBox.Add_TextChanged({
          if ($textBox.Text.Trim() -ne '') {
            $okButton.Enabled = $true
          } else {
            $okButton.Enabled = $false
          }
        })
        $form.Add_Shown({ $textBox.Select() })
        $result = $form.ShowDialog()
        if ($result -eq ::OK) {
          Write-Host "コンピュータ名$computerName"
        }
        
  2. スクリプトを実行して、GUIが正しく表示されるか確認します。
  3. 必要に応じて、GUIのデザインや機能をカスタマイズします。

注意点とトラブルシューティング

PowerShell GUIをWindows PEで使用する際の注意点と解決策は以下の通りです

  • ServiceUIの使用タスクシーケンス中にGUIを表示するには、ServiceUI.exeを使用する必要があります。これにより、GUIが正しく表示されるようになります。
  • 依存関係の確認GUIで使用するコントロール(例OpenFileDialog)は、Windows PEでは利用できない場合があります。これらのコントロールを使用する場合は、AutoUpgradeEnabledプロパティをfalseに設定する必要があります。
  • スクリプトのテスト作成したスクリプトは、Windows PE環境で実行する前に、通常のWindows環境で動作確認を行うことをおすすめします。

よくある質問や疑問

Q1: Windows PEでPowerShell GUIを使用するメリットは何ですか?

Windows PEでPowerShell GUIを使用することで、コマンドライン操作に不安がある方でも、直感的に操作できるようになります。これにより、システムのインストールや修復作業が効率化されます。

Q2: GUIを作成する際に必要なスキルは何ですか?

PowerShellの基本的な知識と、Windows Formsの基本的な理解が必要です。GUIのデザインやイベント処理については、公式ドキュメントやオンラインリソースを参照すると良いでしょう。

Q3: 作成したGUIを他のPCで使用するにはどうすれば良いですか?

作成したGUIを含むスクリプトをWinPE環境に組み込み、ブータブルメディアを作成することで、他のPCでも使用できるようになります。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Windows PEでPowerShell GUIを作成することで、システム管理作業がより効率的かつ直感的に行えるようになります。初心者の方でも、上記の手順を参考にして、独自のGUIを作成してみてください。操作に不安がある場合は、専門家に相談することも検討してみてください。

他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

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