diff --git a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 index 8e14826..adde916 100644 --- a/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 +++ b/playbook/shopfloor-setup/gea-shopfloor-cmm/scripts/Backup-CMM.ps1 @@ -63,6 +63,30 @@ foreach ($s in 'Backup-goCMMSettings.ps1','Backup-PCDMISSettings.ps1') { catch { Log " ERROR in $s : $($_.Exception.Message)" } } +# --- C:\Program Files\WAI (+ x86): whole vendor tree, captured complete. +# Holds machine/controller content beyond what the per-version PC-DMIS backup +# grabs. NOTE: can be multi-GB if WAI contains the full PC-DMIS 2016 install. --- +$waiRoots = @("$env:ProgramFiles\WAI", "${env:ProgramFiles(x86)}\WAI") +$waiPresent = @($waiRoots | Where-Object { Test-Path $_ }) +if ($waiPresent.Count -gt 0) { + Log "---- capturing WAI tree (whole) ----" + $waiStage = Join-Path $env:TEMP "wai-bk-$ts" + New-Item -ItemType Directory -Path $waiStage -Force | Out-Null + foreach ($wr in $waiPresent) { + $label = if ($wr -like '*(x86)*') { 'WAI-x86' } else { 'WAI' } + robocopy $wr (Join-Path $waiStage $label) /E /R:1 /W:1 /NFL /NDL /NJH /NJS | Out-Null + Log " copied $wr -> $label" + } + $waiZip = Join-Path $dest "wai_backup_${env:COMPUTERNAME}_$ts.zip" + if (Test-Path $waiZip) { Remove-Item $waiZip -Force } + Add-Type -AssemblyName System.IO.Compression.FileSystem + [System.IO.Compression.ZipFile]::CreateFromDirectory($waiStage, $waiZip) + Remove-Item $waiStage -Recurse -Force -EA SilentlyContinue + Log " WAI backup: $waiZip ($([math]::Round((Get-Item $waiZip).Length/1MB)) MB)" +} else { + Log "No C:\Program Files\WAI (or x86) - skipping WAI backup" +} + # index of what we captured $zips = Get-ChildItem $dest -Filter '*.zip' -File -ErrorAction SilentlyContinue [pscustomobject]@{ @@ -71,6 +95,7 @@ $zips = Get-ChildItem $dest -Filter '*.zip' -File -ErrorAction SilentlyContinue Timestamp = (Get-Date -Format o) goCMM = @($zips | Where-Object { $_.Name -like 'gocmm_backup_*' } | Select-Object -Expand Name) PCDMIS = @($zips | Where-Object { $_.Name -like 'pcdmis_backup_*' } | Select-Object -Expand Name) + WAI = @($zips | Where-Object { $_.Name -like 'wai_backup_*' } | Select-Object -Expand Name) } | ConvertTo-Json | Out-File (Join-Path $dest 'cmm-backup-index.json') -Encoding ascii Log "================ DONE ================"