Windows Embedded Standard Partial Updates with IGEL Thin Clients

Assemble your tools:

  1. Download the Partial Update manual, the LUNA Reference Guide, and the catalog sample from the Manuals.
  2. Download samples from the Hotfixes and Samples pages.
  3. If you don’t have a suitable text editor, try Notepad++, which has syntax highlighting for Lua scripts.  Lua for Windows (below) includes the IDE SciTE, as well [and switch it to a monospace font...].
  4. Visit the Lua scripting language main website and download Lua for Windows.
  5. Order “Programming in Lua (2nd Edition).”  It may be overkill, but there’s no sense being half-assed about it.
  6. Download OpenSSL for Windows to compute your MD5 hashes required for file copies.

Example script to install Flash 10.1, slightly modified from sample scripts:

-- IGEL WES partial update to install Flash 10.1.53.64

-- Check OS-Version [OS_CHECK]
product_version = setup.get("product.version")
if product_version == nil then
 error("Cannot get product version")
end

os_version = string.sub(product_version, 1, 2)

if os_version ~= "2." and os_version ~= "02" then
 error("Update cannot be applied. OS-Version must be WES")
end

-- Create the Filetable [CF]
files = {
{src="install_flash_player_10_active_x.msi",
dest="C:\\Temp\\Flash_10_1_53_64\\install_flash_player_10_active_x.msi",
digest="9f1c0833befc49cdf7d4f3156a56d1bf",
size=3574}}

-- Check if Partial Update Package matches to the Thin-Client space at all [SP]
NeededSize = fs.usage(files)
AvailableSize = sys.diskfree("C:")
if AvailableSize < NeededSize then
 error("Not enough space on CF to install Partial Update: Flash_10_1_53_64")
end

-- Install the files from the table [IF]
for FilePos, t in ipairs(files) do
 PKG:install(t.src, t.dest, t.digest)
end

-- Silent install of MSI-File [MSI]
sys.exec("C:\\Windows\\System32\\msiexec.exe /i C:\\Temp\\Flash_10_1_53_64\\install_flash_player_10_active_x.msi /passive")
fs.remove("C:\\Temp\\Flash_10_1_53_64")

-- If demanded, force a reboot [FRB]
if fs.pending() then
 sys.reboot()
end