Requirements
- A Windows computer with Powershell 2.0 or newer
- VMware PowerCLI version 5.1 or newer
Instructions
ESXi-Customizer-PS is a Powershell script that you launch from within a Powershell or a PowerCLI console window. It accepts various command line options. One of them is -help that will display this help screen:
Basically the script has three different operating modes:
- Create an ESXi installation ISO or Offline Bundle from the VMware Online depot (standard mode)
- Create an ESXi installation ISO or Offline Bundle from a local ESXi Offline Bundle (-izip mode)
- Update a local ESXi Offline Bundle with an ESXi patch bundle from the VMware Online depot (-izip -update mode)
With all three modes you can optionally add bundles from the V-Front Online Depot, any other Online Depot (by URL) or locally stored Offline Bundles and VIB files (e.g. downloaded drivers or software packages).
a) The simplest use case: Create a vanilla ESXi installation ISO with the latest patch level
Calling the script without any parameters will create an ESXi installation ISO of the latest ESXi version (6.5 as of now) and its latest patch level. The ISO file will be created in the script directory. You can modify this behavior by using one or more of the following parameters:
b) Use an ESXi Offline Bundle as input (instead of the VMware Online depot):
ESXi Offline Bundles can be downloaded from the VMware Patch Download portal. Some hardware vendors (e.g. HP) also provide their customized ESXi version as Offline Bundles (these can be found on the vSphere download pages), and you could finally create your own customized ESXi Offline bundle using this script.
The command above will create an ESXi installaton ISO from the ESXi 6.0 GA Offline bundle. Again you can modify the behavior by using -outDir, -sip and/or -ozip like described under a).
.\ESXi -Customizer -PS -v2.6.0.ps1 |
- -v50 : Create the latest ESXi 5.0 ISO
- -v51 : Create the latest ESXi 5.1 ISO
- -v55 : Create the latest ESXi 5.5 ISO
- -v60 : Create the latest ESXi 6.0 ISO
- -v65 : Create the latest ESXi 6.5 ISO
- -v67 : Create the latest ESXi 6.7 ISO
- -outDir : Write the ISO file to a custom directory. If this switch is used then the script's log file will also be moved here and named after the Imageprofile name and timestamp.
- -sip : Do not automatically use the latest image profile (= patch level), but display all in a menu and let me select a specific one. The menu will be sorted by date starting with the latest one. It will also list the image profiles that contain only security fixes and/or no VMware Tools.
- -ozip : Do not output an installation ISO but an ESXi Offline Bundle that you can use for importing into Update Manager, command line patching with esxcli or as input for further customizations
b) Use an ESXi Offline Bundle as input (instead of the VMware Online depot):
.\ESXi -Customizer -PS -v2.6.0.ps1 -izip .\VMware -ESXi -6.0.0-2494585 -depot .zip |
The command above will create an ESXi installaton ISO from the ESXi 6.0 GA Offline bundle. Again you can modify the behavior by using -outDir, -sip and/or -ozip like described under a).
c) Adding additional packages from connected Online Depots
This script call will build the latest ESXi 5.5 installation ISO with the NIC drivers added that were dropped with ESXi 5.5. These packages are still in the VMware Online Depot, because they are part of all ESXi 5.0 and 5.1 image profiles, and the script just re-adds them to the latest ESXi 5.5 image profile.
Please note that this does not work for ESXi 6.0, because these drivers are blacklisted there. for details see my ultimate guide to upgrade your white box to ESXi 6.0
d) Connect the V-Front Online Depot and other depots
This will make the script connect to the V-Front Online Depot and add the sata-xahci and net55-r8168 packages from there to the latest ESXi 6.0 Imageprofile.
e) Adding local Offline Bundles and/or VIB files
This command will add all Offline bundles and VIB files that are stored in the directory C:\temp\pkg. This way you can add 3rd party or community supported device drivers and software packages.
f) Updating an ESXi Offline bundle from the VMware Online depot
With this script call you update a local ESXi Offline bundle (in this example: the HP customized version of ESXi 6.0 GA) with the latest ESXi 6.0 patch from the VMware Online depot. When using -update please also specify the ESXi version that matches the one of the local Offline bundle (-v65, -v60, -v55, -v51 or -v50).
g) Advanced options
For the sake of completeness here are the remaining optional parameters:
-log: Specify a custom log file (the default is in %TEMP% or in outDir if specified)
.\ESXi -Customizer -PS -v2.6.0.ps1 -v55 -load net-r8168,net-r8169,net-sky2 |
Please note that this does not work for ESXi 6.0, because these drivers are blacklisted there. for details see my ultimate guide to upgrade your white box to ESXi 6.0
d) Connect the V-Front Online Depot and other depots
.\ESXi -Customizer -PS -v2.6.0.ps1 -v60 -vft -load sata -xahci ,net55-r8168 |
e) Adding local Offline Bundles and/or VIB files
.\ESXi -Customizer -PS -v2.6.0.ps1 -pkgDir C:\temp\pkg |
f) Updating an ESXi Offline bundle from the VMware Online depot
.\ESXi -Customizer -PS -v2.6.0.ps1 -v60 -izip .\VMware -ESXi -6.0.0-2494585 -HP -600.9.1.39-Mar2015 -depot .zip -update |
g) Advanced options
For the sake of completeness here are the remaining optional parameters:
-log: Specify a custom log file (the default is in %TEMP% or in outDir if specified)
-test : this is for testing the validity and effect of the specified parameters without actually building the output file. Can save a lot of time, because it also skips most downloads from the VMware Online depot.
-nsc : Use the -noSignatureCheck option with the export function. Try this if you get an error message like "Could not find trusted signer." because of packages with missing or invalid electronic signatures.
-ipname
-ipdesc
-ipvendor : Override the image profile's name, description and vendor attributes. By default the name and description are derived from the original image profile by adding the string "customized", and the vendor is kept as is.
-remove vib1[,...] : Remove one or more VIB packages from the custom Imageprofile
-nsc : Use the -noSignatureCheck option with the export function. Try this if you get an error message like "Could not find trusted signer." because of packages with missing or invalid electronic signatures.
-ipname
-ipdesc
-ipvendor : Override the image profile's name, description and vendor attributes. By default the name and description are derived from the original image profile by adding the string "customized", and the vendor is kept as is.
-remove vib1[,...] : Remove one or more VIB packages from the custom Imageprofile