Engineer image: upload the Engineering Layer from the web app
New Engineering Layer tab on the engineer image page. A site uploads Engineering_Install_v<ver>.exe (keeps prereqs) or a .zip of the whole extra_engineering payload. The upload is streamed to disk, checked (MZ header, no unsafe zip paths) and swapped in; the replaced payload is archived (two kept) with a Restore button. Install-EngineeringLayer.ps1 stays repo-owned and now installs the newest Engineering_Install_v*.exe. KB: Part 4 becomes Site Content (enrollment package, Engineering Layer, Blancco site settings, Shop Floor apps) plus a new Adding Shop Floor Apps section for preinstall.json/postppkg.json. WJ examples removed.
This commit is contained in:
@@ -41,7 +41,10 @@ param(
|
||||
# imaging - the unattend installs PowerShell 7 from C:\PreInstall\installers.
|
||||
[string]$StagingRoot = 'C:\PreInstall\engineering',
|
||||
[string]$LogDir = 'C:\Logs\Engineering',
|
||||
[string]$Installer = 'engineering_layer\Engineering_Install_v3.1.exe',
|
||||
# Relative to StagingRoot. Empty: the newest
|
||||
# engineering_layer\Engineering_Install_v<version>.exe (uploaded on the
|
||||
# PXE webapp, engineer image > Engineering Layer).
|
||||
[string]$Installer = '',
|
||||
[switch]$StageOnly
|
||||
)
|
||||
|
||||
@@ -117,6 +120,18 @@ if (Test-Path -LiteralPath $marker) {
|
||||
}
|
||||
|
||||
# --- stage the payload out of C:\Deploy -------------------------------------
|
||||
function Find-Installer([string]$Dir) {
|
||||
Get-ChildItem -LiteralPath (Join-Path $Dir 'engineering_layer') -Filter 'Engineering_Install_v*.exe' -File -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.Name -match '^Engineering_Install_v(\d+(\.\d+)*)\.exe$' } |
|
||||
Sort-Object { $v = ($_.Name -replace '^Engineering_Install_v', '') -replace '\.exe$', ''; if ($v -notmatch '\.') { $v += '.0' }; [version]$v } -Descending |
|
||||
Select-Object -First 1
|
||||
}
|
||||
if (-not $Installer) {
|
||||
$found = Find-Installer $StagingRoot
|
||||
if (-not $found) { $found = Find-Installer $Source }
|
||||
$Installer = if ($found) { 'engineering_layer\' + $found.Name } else { 'engineering_layer\Engineering_Install_v3.1.exe' }
|
||||
}
|
||||
Write-EngLog "Installer: $Installer"
|
||||
$stagedExe = Join-Path $StagingRoot $Installer
|
||||
|
||||
if (Test-Path -LiteralPath $stagedExe) {
|
||||
|
||||
Reference in New Issue
Block a user